From face1d0f64aa003ef4b0e6d0ba0c19a20f729dac Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 9 Dec 2019 21:53:57 +0200 Subject: [PATCH 01/36] - some fixes on the app.jump_to() method - made sure that the ToolFilm will not start saving a file if there are no objects loaded --- FlatCAMApp.py | 6 +++++- README.md | 4 +++- flatcamGUI/VisPyCanvas.py | 7 +++++++ flatcamTools/ToolFilm.py | 4 ++++ requirements.txt | 8 ++++---- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index b2f9475a..77f501d3 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -7346,7 +7346,11 @@ class App(QtCore.QObject): canvas_origin = self.plotcanvas.native.mapToGlobal(QtCore.QPoint(0, 0)) jump_loc = self.plotcanvas.translate_coords_2((cal_location[0], cal_location[1])) - j_pos = (canvas_origin.x() + jump_loc[0], (canvas_origin.y() + jump_loc[1])) + + j_pos = ( + int(canvas_origin.x() + round(jump_loc[0])), + int(canvas_origin.y() + round(jump_loc[1])) + ) cursor.setPos(j_pos[0], j_pos[1]) else: # find the canvas origin which is in the top left corner diff --git a/README.md b/README.md index 8e7730d3..d1c32a14 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,15 @@ CAD program, and create G-Code for Isolation routing. - Calibration Tool - added preferences values - Calibration Tool - more work on it - reverted this change: "selected object in Project used to ask twice for UI build" because it will not build the UI when a tab is closed for Document object and the object is selected -- fixed issue after Geometry object edit; the GCode made from and edited object did not reflect the changes in the object +- fixed issue after Geometry object edit; the GCode made from an edited object did not reflect the changes in the object - in Object UI, the Scale FCDoubleSpinner will no longer work for Return key press due of issues of unwanted scaling on focusOut event - in FlatCAMGeometry fixed the scale and offset methods to always process the self.solid_geometry - Calibration Tool - finished the calibrated object creation method - updated the POT file - fixed an error in the German PO file - updated the languages PO files +- some fixes on the app.jump_to() method +- made sure that the ToolFilm will not start saving a file if there are no objects loaded 8.12.2019 diff --git a/flatcamGUI/VisPyCanvas.py b/flatcamGUI/VisPyCanvas.py index cd7a41a1..cc9aab7d 100644 --- a/flatcamGUI/VisPyCanvas.py +++ b/flatcamGUI/VisPyCanvas.py @@ -108,10 +108,17 @@ class VisPyCanvas(scene.SceneCanvas): # self.measure_fps() def translate_coords(self, pos): + """ + Translate pixels to FlatCAM units. + + """ tr = self.grid.get_transform('canvas', 'visual') return tr.map(pos) def translate_coords_2(self, pos): + """ + Translate FlatCAM units to pixels. + """ tr = self.grid.get_transform('visual', 'document') return tr.map(pos) diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index dadd4d39..c26656b1 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -669,6 +669,10 @@ class Film(FlatCAMTool): _("No FlatCAM object selected. Load an object for Box and retry.")) return + if name == '' or boxname == '': + self.app.inform.emit('[ERROR_NOTCL] %s' % _("No FlatCAM object selected.")) + return + scale_stroke_width = float(self.film_scale_stroke_entry.get_value()) source = self.source_punch.get_value() file_type = self.file_type_radio.get_value() diff --git a/requirements.txt b/requirements.txt index 8407fc7c..259ef455 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ # This file contains python only requirements to be installed with pip # Python packages that cannot be installed with pip (e.g. PyQt5, GDAL) are not included. # Usage: pip3 install -r requirements.txt -numpy>=1.16 +numpy >=1.16 matplotlib>=3.1 cycler>=0.10 python-dateutil>=2.1 -kiwisolver>=1.0.1 +kiwisolver>=1.1 six setuptools dill @@ -21,6 +21,6 @@ fontTools rasterio lxml ezdxf -qrcode>=6.0 -reportlab>=3.0 +qrcode>=6.1 +reportlab>=3.5 svglib \ No newline at end of file From b771cbd110f9d6ecec136e7b149baf77b87e06f9 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 9 Dec 2019 22:25:05 +0200 Subject: [PATCH 02/36] - some fixes on the app.jump_to() method for the Legacy(2D) graphic mode --- FlatCAMApp.py | 9 +++++++-- README.md | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 77f501d3..591a2088 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -7362,10 +7362,15 @@ class App(QtCore.QObject): # in pixels where the origin 0,0 is in the lowest left point of the display window (in our case is the # canvas) and the point (width, height) is in the top-right location loc = self.plotcanvas.axes.transData.transform_point(location) - j_pos = (x0 + loc[0], y0 - loc[1]) + j_pos = ( + int(x0 + loc[0]), + int(y0 - loc[1]) + ) cursor.setPos(j_pos[0], j_pos[1]) + self.plotcanvas.mouse = [location[0], location[1]] + self.plotcanvas.draw_cursor(x_pos=location[0], y_pos=location[1]) - if self.grid_status() == True: + if self.grid_status(): # Update cursor self.app_cursor.set_data(np.asarray([(location[0], location[1])]), symbol='++', edge_color=self.cursor_color_3D, diff --git a/README.md b/README.md index d1c32a14..80de4179 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ CAD program, and create G-Code for Isolation routing. - updated the languages PO files - some fixes on the app.jump_to() method - made sure that the ToolFilm will not start saving a file if there are no objects loaded +- some fixes on the app.jump_to() method for the Legacy(2D) graphic mode 8.12.2019 From 5d430416a307336d38601c5bd90dea16adaa3122 Mon Sep 17 00:00:00 2001 From: cmstein Date: Mon, 9 Dec 2019 17:28:26 -0300 Subject: [PATCH 03/36] Update in pt_BR translation --- locale/pt_BR/LC_MESSAGES/strings.po | 1119 +++++++++++---------------- 1 file changed, 457 insertions(+), 662 deletions(-) diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po index ac2f8617..d3901014 100644 --- a/locale/pt_BR/LC_MESSAGES/strings.po +++ b/locale/pt_BR/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-12-09 16:52+0200\n" -"PO-Revision-Date: 2019-12-09 16:52+0200\n" +"POT-Creation-Date: 2019-12-09 13:38-0300\n" +"PO-Revision-Date: 2019-12-09 17:22-0300\n" "Last-Translator: Carlos Stein \n" "Language-Team: \n" "Language: pt_BR\n" @@ -248,15 +248,15 @@ msgstr "Convertendo unidades para " #: FlatCAMApp.py:4249 msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "" +msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL" #: FlatCAMApp.py:4250 msgid "TCL Tutorial is here" -msgstr "" +msgstr "Tutorial TCL está aqui" #: FlatCAMApp.py:4252 msgid "FlatCAM commands list" -msgstr "" +msgstr "Lista de comandos FlatCAM" #: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 #: FlatCAMApp.py:4312 FlatCAMApp.py:4315 @@ -301,7 +301,7 @@ msgstr "Fechar" #: FlatCAMApp.py:4439 msgid "Licensed under the MIT license" -msgstr "" +msgstr "Licenciado sob licença do MIT" #: FlatCAMApp.py:4448 #, fuzzy @@ -434,10 +434,8 @@ msgid "E-mail" msgstr "E-mail" #: FlatCAMApp.py:4558 -#, fuzzy -#| msgid "Maintainer >= 2019" msgid "BETA Maintainer >= 2019" -msgstr "Mantenedor >= 2019" +msgstr "Mantenedor BETA >= 2019" #: FlatCAMApp.py:4618 msgid "Language" @@ -555,36 +553,28 @@ msgstr "" "Verifique o G-CODE gerado." #: FlatCAMApp.py:5457 -#, fuzzy -#| msgid "Done. Gerber editing finished." msgid "Multigeo. Geometry merging finished" -msgstr "Edição de Gerber concluída." +msgstr "Multigeo. Fusão de geometria concluída" #: FlatCAMApp.py:5466 -#, fuzzy -#| msgid "G-Code parsing finished..." msgid "Geometry merging finished" -msgstr "Análise do G-Code finalisada..." +msgstr "Fusão de geometria concluída" #: FlatCAMApp.py:5488 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Falha. A união de Excellon funciona apenas em objetos Excellon." #: FlatCAMApp.py:5498 -#, fuzzy -#| msgid "Excellon editing finished." msgid "Excellon merging finished" -msgstr "Edição de Excellon concluída." +msgstr "Fusão de Excellon concluída" #: FlatCAMApp.py:5516 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Falha. A união de Gerber funciona apenas em objetos Gerber." #: FlatCAMApp.py:5526 -#, fuzzy -#| msgid "Done. Gerber editing finished." msgid "Gerber merging finished" -msgstr "Edição de Gerber concluída." +msgstr "Fusão de Gerber concluída" #: FlatCAMApp.py:5546 FlatCAMApp.py:5581 msgid "Failed. Select a Geometry Object and try again." @@ -607,20 +597,16 @@ msgid "Toggle Units" msgstr "Alternar Unidades" #: FlatCAMApp.py:5799 -#, fuzzy -#| msgid "" -#| "Changing the units of the project causes all geometrical properties of " -#| "all objects to be scaled accordingly.\n" -#| "Continue?" msgid "" "Changing the units of the project\n" "will scale all objects.\n" "\n" "Do you want to continue?" msgstr "" -"Alterar as unidades do projeto fará com que todas as propriedades " -"geométricas de todos os objetos sejam redimensionadas.\n" -"Continuar?" +"Alterar as unidades do projeto\n" +"redimensionará todos os objetos.\n" +"\n" +"Você quer continuar?" #: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 #: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 @@ -647,16 +633,12 @@ msgid "Preferences" msgstr "Preferências" #: FlatCAMApp.py:6960 -#, fuzzy -#| msgid "Preferences saved." msgid "Preferences applied." -msgstr "Preferências salvas." +msgstr "Preferências aplicadas." #: FlatCAMApp.py:7009 -#, fuzzy -#| msgid "Preferences edited but not saved." msgid "Preferences closed without saving." -msgstr "Preferências editadas, mas não salvas." +msgstr "Preferências fechadas sem salvar." #: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 #: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 @@ -771,26 +753,20 @@ msgstr "Preferências editadas, mas não salvas." #: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 #: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 #: FlatCAMObj.py:4107 -#, fuzzy -#| msgid "Tool Data" msgid "Tools Database" -msgstr "Dados" +msgstr "Banco de Dados de Ferramentas" #: FlatCAMApp.py:7752 -#, fuzzy -#| msgid "Preferences edited but not saved." msgid "Tools in Tools Database edited but not saved." -msgstr "Preferências editadas, mas não salvas." +msgstr "Ferramenta editada, mas não salva." #: FlatCAMApp.py:7776 -#, fuzzy -#| msgid "Tool added in Tool Table." msgid "Tool from DB added in Tool Table." -msgstr "Ferramenta adicionada na Tabela de Ferramentas." +msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas." #: FlatCAMApp.py:7778 msgid "Adding tool from DB is not allowed for this object." -msgstr "" +msgstr "Adição de ferramenta do Banco de Dados não permitida para este objeto." #: FlatCAMApp.py:7812 msgid "" @@ -805,22 +781,16 @@ msgid "Save Preferences" msgstr "Salvar Preferências" #: FlatCAMApp.py:7838 -#, fuzzy -#| msgid "" -#| "One or more values are changed.\n" -#| "Do you want to save the Preferences?" msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" msgstr "" -"Um ou mais valores foram alterados.\n" -"Você deseja salvar as preferências?" +"Um ou mais Ferramentas foram editadas.\n" +"Você deseja salvar o Banco de Dados de Ferramentas?" #: FlatCAMApp.py:7840 -#, fuzzy -#| msgid "Tool Data" msgid "Save Tools Database" -msgstr "Dados" +msgstr "Salvar Banco de Dados" #: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 msgid "Code Editor" @@ -1295,6 +1265,8 @@ msgstr "Arquivo SVG exportado para" 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." #: FlatCAMApp.py:10383 msgid "Excellon file exported to" @@ -1746,40 +1718,31 @@ msgstr "Importar Lista" #: FlatCAMCommon.py:260 msgid "Title entry is empty." -msgstr "" +msgstr "A entrada do título está vazia." #: FlatCAMCommon.py:269 msgid "Web link entry is empty." -msgstr "" +msgstr "A entrada do link da Web está vazia." #: FlatCAMCommon.py:277 -#, fuzzy -#| msgid "Edit cancelled. New diameter value is already in the Tool Table." msgid "Either the Title or the Weblink already in the table." -msgstr "" -"Editar cancelado. O novo valor de diâmetro já está na tabela de ferramentas." +msgstr "O título ou o link da Web já está na tabela." #: FlatCAMCommon.py:297 -#, fuzzy -#| msgid "Bookmarks Manager" msgid "Bookmark added." -msgstr "Gerenciados de Favoritos" +msgstr "Favorito adicionado." #: FlatCAMCommon.py:314 msgid "This bookmark can not be removed" msgstr "Este favorito não pode ser removido" #: FlatCAMCommon.py:345 -#, fuzzy -#| msgid "Bookmarks limit" msgid "Bookmark removed." -msgstr "Limite de favoritos" +msgstr "Favorito removido." #: FlatCAMCommon.py:360 -#, fuzzy -#| msgid "Import FlatCAM Bookmarks" msgid "Export FlatCAM Bookmarks" -msgstr "Importar Favoritos do FlatCAM" +msgstr "Exportar Favoritos do FlatCAM" #: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 msgid "Bookmarks" @@ -1828,10 +1791,8 @@ msgid "Finish" msgstr "Acabamento" #: FlatCAMCommon.py:513 -#, fuzzy -#| msgid "Tool Number" msgid "Tool Name" -msgstr "Número da Ferramenta" +msgstr "Nome da Ferramenta" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 #: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 @@ -1844,10 +1805,8 @@ msgid "Tool Offset" msgstr "Deslocamento" #: FlatCAMCommon.py:516 -#, fuzzy -#| msgid "Tool Offset" msgid "Custom Offset" -msgstr "Deslocamento" +msgstr "Deslocamento Personalizado" #: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 #: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 @@ -1856,10 +1815,8 @@ msgid "Tool Type" msgstr "Tipo de Ferramenta" #: FlatCAMCommon.py:518 -#, fuzzy -#| msgid "Tool change" msgid "Tool Shape" -msgstr "Troca de Ferramentas" +msgstr "Formato" #: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 #: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 @@ -1878,11 +1835,11 @@ msgstr "Multi-Profundidade" #: FlatCAMCommon.py:521 msgid "DPP" -msgstr "" +msgstr "PPP" #: FlatCAMCommon.py:522 msgid "V-Dia" -msgstr "" +msgstr "Dia-V" #: FlatCAMCommon.py:523 #, fuzzy @@ -1898,17 +1855,15 @@ msgstr "Altura do Deslocamento" #: FlatCAMCommon.py:525 msgid "FR" -msgstr "" +msgstr "VA" #: FlatCAMCommon.py:526 msgid "FR Z" -msgstr "" +msgstr "VA Z" #: FlatCAMCommon.py:527 -#, fuzzy -#| msgid "Feed Rate Rapids" msgid "FR Rapids" -msgstr "Taxa de Avanço Rápido" +msgstr "VA Rápida" #: FlatCAMCommon.py:528 flatcamGUI/PreferencesUI.py:2427 msgid "Spindle Speed" @@ -1920,19 +1875,17 @@ msgid "Dwell" msgstr "Esperar Velocidade" #: FlatCAMCommon.py:530 -#, fuzzy -#| msgid "Dwell" msgid "Dwelltime" -msgstr "Esperar Velocidade" +msgstr "Tempo de Espera" #: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 #: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 msgid "Preprocessor" -msgstr "Pós-processador" +msgstr "Pré-processador" #: FlatCAMCommon.py:532 msgid "ExtraCut" -msgstr "" +msgstr "Corte Extra" #: FlatCAMCommon.py:533 #, fuzzy @@ -1941,34 +1894,26 @@ msgid "Toolchange" msgstr "Troca de Ferramentas" #: FlatCAMCommon.py:534 -#, fuzzy -#| msgid "Toolchange X,Y" msgid "Toolchange XY" -msgstr "Troca de ferramenta X,Y" +msgstr "Troca de ferramenta XY" #: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 #: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 #: flatcamTools/ToolCalibration.py:332 msgid "Toolchange Z" -msgstr "Altura para a Troca" +msgstr "Altura da Troca" #: FlatCAMCommon.py:536 -#, fuzzy -#| msgid "Start" msgid "Start Z" -msgstr "Início" +msgstr "Z Inicial" #: FlatCAMCommon.py:537 -#, fuzzy -#| msgid "End move Z" msgid "End Z" -msgstr "Altura Z Final" +msgstr "Z Final" #: FlatCAMCommon.py:541 -#, fuzzy -#| msgid "Tool order" msgid "Tool Index." -msgstr "Ordem das Ferramentas" +msgstr "Índice da Ferramenta." #: FlatCAMCommon.py:543 msgid "" @@ -1976,12 +1921,13 @@ msgid "" "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." #: FlatCAMCommon.py:547 -#, fuzzy -#| msgid "Tool Diameter" msgid "Tool Diameter." -msgstr "Diâmetro" +msgstr "Diâmetro." #: FlatCAMCommon.py:549 msgid "" @@ -1992,12 +1938,21 @@ msgid "" "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" #: FlatCAMCommon.py:556 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." #: FlatCAMCommon.py:559 msgid "" @@ -2007,6 +1962,11 @@ msgid "" "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" #: FlatCAMCommon.py:565 msgid "" @@ -2016,12 +1976,19 @@ msgid "" "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" #: FlatCAMCommon.py:571 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." msgstr "" +"Profundidade de corte.\n" +"A profundidade para cortar o material." #: FlatCAMCommon.py:574 msgid "" @@ -2029,26 +1996,33 @@ msgid "" "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." #: FlatCAMCommon.py:578 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." #: FlatCAMCommon.py:581 -#, fuzzy -#| msgid "Diameter of the drill for the alignment holes." msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." -msgstr "Diâmetro da broca para os furos de alinhamento." +msgstr "" +"Dia-V.\n" +"Diâmetro da ponta das ferramentas em forma de V." #: FlatCAMCommon.py:584 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." #: FlatCAMCommon.py:587 msgid "" @@ -2056,18 +2030,25 @@ msgid "" "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." #: FlatCAMCommon.py:591 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." #: FlatCAMCommon.py:594 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." #: FlatCAMCommon.py:597 msgid "" @@ -2076,6 +2057,10 @@ msgid "" "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." #: FlatCAMCommon.py:602 msgid "" @@ -2083,23 +2068,27 @@ msgid "" "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." #: FlatCAMCommon.py:606 -#, fuzzy -#| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." -msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM" +msgstr "" +"Esperar Velocidade.\n" +"Marque se é necessário um atraso para permitir\n" +"o motor do spindle atingir a velocidade definida." #: FlatCAMCommon.py:610 -#, fuzzy -#| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." -msgstr "dwelltime = tempo de espera para o spindle atingir sua vel. RPM" +msgstr "" +"Tempo de espera.\n" +"Atraso usado para permitir que o spindle atinja a velocidade definida." #: FlatCAMCommon.py:613 msgid "" @@ -2107,6 +2096,9 @@ msgid "" "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 código G gerado\n" +"para caber em vários casos de uso." #: FlatCAMCommon.py:617 msgid "" @@ -2116,6 +2108,10 @@ msgid "" "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." #: FlatCAMCommon.py:623 msgid "" @@ -2124,6 +2120,10 @@ msgid "" "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." #: FlatCAMCommon.py:628 msgid "" @@ -2132,12 +2132,18 @@ msgid "" "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." #: FlatCAMCommon.py:633 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." #: FlatCAMCommon.py:636 msgid "" @@ -2145,175 +2151,138 @@ msgid "" "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." #: FlatCAMCommon.py:640 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." #: FlatCAMCommon.py:661 -#, fuzzy -#| msgid "Add Text Tool" msgid "Add Tool to Tools DB" -msgstr "Ferramenta de Texto" +msgstr "Adicionar Ferramenta ao Banco de Dados" #: FlatCAMCommon.py:663 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." msgstr "" -"Adicione uma nova ferramenta à Tabela de Ferramentas\n" -"com o diâmetro especificado." +"Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n" +"Você pode editar após a adição." #: FlatCAMCommon.py:666 msgid "Remove Tool from Tools DB" -msgstr "" +msgstr "Remover Ferramenta do Banco de Dados" #: FlatCAMCommon.py:668 -#, fuzzy -#| msgid "No selected tools in Tool Table." msgid "Remove a selection of tools in the Tools Database." -msgstr "Nenhuma ferramenta selecionada na Tabela." +msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas." #: FlatCAMCommon.py:670 -#, fuzzy -#| msgid "Export DXF" msgid "Export Tool DB" -msgstr "Exportar DXF" +msgstr "Exportar o BD de Ferramentas" #: FlatCAMCommon.py:672 msgid "Save the Tools Database to a custom text file." msgstr "" +"Salva o banco de dados de ferramentas em um arquivo de texto personalizado." #: FlatCAMCommon.py:674 -#, fuzzy -#| msgid "PDF Import Tool" msgid "Import Tool DB" -msgstr "Ferramenta de Importação de PDF" +msgstr "Importar o BD de Ferramentas" #: FlatCAMCommon.py:676 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." #: FlatCAMCommon.py:686 msgid "Add Tool from Tools DB" -msgstr "" +msgstr "Adiciona Ferramenta do BD de Ferramentas" #: FlatCAMCommon.py:688 -#, fuzzy -#| msgid "" -#| "Copy a selection of tools in the Tool Table\n" -#| "by first selecting a row in the Tool Table." 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 "" -"Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando " -"primeiro uma linha na Tabela de Ferramentas." +"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." #: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 -#, fuzzy -#| msgid "Could not load bookmarks file." msgid "Could not load Tools DB file." -msgstr "Não foi possível carregar o arquivo com os favoritos." +msgstr "Não foi possível carregar o arquivo com o banco de dados." #: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 -#, fuzzy -#| msgid "Failed to parse defaults file." msgid "Failed to parse Tools DB file." -msgstr "Falha ao analisar o arquivo com os padrões." +msgstr "Falha ao analisar o arquivo com o banco de dados." #: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 msgid "Loaded FlatCAM Tools DB from" -msgstr "" +msgstr "Carregado o BD de Ferramentas FlatCAM de" #: FlatCAMCommon.py:744 msgid "Add to DB" -msgstr "" +msgstr "Adicionar ao BD" #: FlatCAMCommon.py:746 -#, fuzzy -#| msgid "Copy Geom\tC" msgid "Copy from DB" -msgstr "Copiar Geom\tC" +msgstr "Copiar do BD" #: FlatCAMCommon.py:748 -#, fuzzy -#| msgid "Delete Tool" msgid "Delete from DB" -msgstr "Excluir Ferramenta" +msgstr "Excluir do BD" #: FlatCAMCommon.py:998 -#, fuzzy -#| msgid "Tool added in Tool Table." msgid "Tool added to DB." -msgstr "Ferramenta adicionada na Tabela de Ferramentas." +msgstr "Ferramenta adicionada ao BD." #: FlatCAMCommon.py:1019 -#, fuzzy -#| msgid "Tool was copied in Tool Table." msgid "Tool copied from Tools DB." -msgstr "A ferramenta foi copiada na tabela de ferramentas." +msgstr "A ferramenta foi copiada do BD." #: FlatCAMCommon.py:1037 -#, fuzzy -#| msgid "Tool(s) deleted from Tool Table." msgid "Tool removed from Tools DB." -msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas." +msgstr "Ferramenta(s) excluída(s) do BD." #: FlatCAMCommon.py:1048 -#, fuzzy -#| msgid "Tool Data" msgid "Export Tools Database" -msgstr "Dados" +msgstr "Exportar Banco de Dados de Ferramentas" #: FlatCAMCommon.py:1051 -#, fuzzy -#| msgid "Tool Data" msgid "Tools_Database" -msgstr "Dados" +msgstr "Tools_Database" #: FlatCAMCommon.py:1058 -#, fuzzy -#| msgid "FlatCAM bookmarks export cancelled." msgid "FlatCAM Tools DB export cancelled." -msgstr "Exportação de favoritos do FlatCAM cancelada." +msgstr "Exportação de BD do FlatCAM cancelada." #: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 -#, fuzzy -#| msgid "Failed to write bookmarks to file." msgid "Failed to write Tools DB to file." -msgstr "Falha ao gravar os favoritos no arquivo." +msgstr "Falha ao gravar no arquivo." #: FlatCAMCommon.py:1094 -#, fuzzy -#| msgid "Exported bookmarks to" msgid "Exported Tools DB to" -msgstr "Favoritos exportados para" +msgstr "Banco de Dados exportado para" #: FlatCAMCommon.py:1101 -#, fuzzy -#| msgid "Import FlatCAM Bookmarks" msgid "Import FlatCAM Tools DB" -msgstr "Importar Favoritos do FlatCAM" +msgstr "Importar Banco de Dados de Ferramentas do FlatCAM" #: FlatCAMCommon.py:1104 -#, fuzzy -#| msgid "FlatCAM bookmarks import cancelled." msgid "FlatCAM Tools DB import cancelled." -msgstr "Importação de favoritos do FlatCAM cancelada." +msgstr "Importação de BD do FlatCAM cancelada." #: FlatCAMCommon.py:1147 -#, fuzzy -#| msgid "Scale Tool" msgid "Saved Tools DB." -msgstr "Ferramenta de Escala" +msgstr "BD de Ferramentas Salvo." #: FlatCAMCommon.py:1293 #, fuzzy @@ -2323,7 +2292,7 @@ msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..." #: FlatCAMCommon.py:1311 msgid "Cancelled adding tool from DB." -msgstr "" +msgstr "Adição de ferramenta do BD cancelada." #: FlatCAMObj.py:248 msgid "Name changed from" @@ -2381,48 +2350,36 @@ msgid "Isolating..." msgstr "Isolando..." #: FlatCAMObj.py:1063 -#, fuzzy -#| msgid "Click on Stop point to complete ..." msgid "Click on a polygon to isolate it." -msgstr "Clique no ponto de parada para completar ..." +msgstr "Clique em um polígono para isolá-lo." #: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 -#, fuzzy -#| msgid "Add Polygon" msgid "Added polygon" -msgstr "Adicionar Polígono" +msgstr "Polígono adicionado" #: FlatCAMObj.py:1097 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add next polygon or right click to start isolation." msgstr "" -"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " -"o botão direito para terminar." +"Clique para adicionar o próximo polígono ou clique com o botão direito do " +"mouse para iniciar a isolação." #: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 -#, fuzzy -#| msgid "Add Polygon" msgid "Removed polygon" -msgstr "Adicionar Polígono" +msgstr "Polígono removido" #: FlatCAMObj.py:1110 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add/remove next polygon or right click to start isolation." msgstr "" -"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " -"o botão direito para terminar." +"Clique para adicionar/remover o próximo polígono ou clique com o botão " +"direito do mouse para iniciar a isolação." #: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 msgid "No polygon detected under click position." -msgstr "" +msgstr "Nenhum polígono detectado na posição do clique." #: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 msgid "List of single polygons is empty. Aborting." -msgstr "" +msgstr "A lista de polígonos únicos está vazia. Abortando." #: FlatCAMObj.py:1211 FlatCAMObj.py:1339 #: flatcamTools/ToolNonCopperClear.py:1656 @@ -2521,10 +2478,8 @@ msgstr "" "Agora existe apenas um valor, não dois. " #: FlatCAMObj.py:3794 -#, fuzzy -#| msgid "Add Tool" msgid "Add from Tool DB" -msgstr "Adicionar Ferramenta" +msgstr "Adicionar Ferramenta do BD" #: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 #: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 @@ -2586,10 +2541,8 @@ msgid "Tool was deleted in Tool Table." msgstr "A ferramenta foi eliminada da Tabela de Ferramentas." #: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 -#, fuzzy -#| msgid "Parameters" msgid "Parameters for" -msgstr "Parâmetros" +msgstr "Parâmetros para" #: FlatCAMObj.py:4815 msgid "This Geometry can't be processed because it is" @@ -3325,12 +3278,6 @@ msgstr "Passo = Distância entre os elementos da matriz." #: flatcamEditors/FlatCAMExcEditor.py:1691 #: flatcamEditors/FlatCAMExcEditor.py:1907 -#, fuzzy -#| 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." msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -3339,7 +3286,7 @@ msgid "" 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ínimo: -360.00 graus.\n" "Valor máximo: 360.00 graus." #: flatcamEditors/FlatCAMExcEditor.py:1712 @@ -3410,12 +3357,6 @@ msgstr "" "- 'Angle' - um ângulo personalizado para a inclinação da ranhura" #: flatcamEditors/FlatCAMExcEditor.py:1800 -#, fuzzy -#| 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." msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -3424,7 +3365,7 @@ msgid "" 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ínimo: -360.00 graus.\n" "Valor máximo: 360.00 graus." #: flatcamEditors/FlatCAMExcEditor.py:1833 @@ -3607,18 +3548,7 @@ msgid "Overlap Rate" msgstr "Taxa de Sobreposição" #: flatcamEditors/FlatCAMGeoEditor.py:457 -#, fuzzy, python-format -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." +#, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" @@ -3638,7 +3568,7 @@ msgstr "" "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 PCB. \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." @@ -5047,26 +4977,20 @@ msgid "Deleted aperture with code" msgstr "Abertura excluída com código" #: flatcamEditors/FlatCAMGrbEditor.py:3847 -#, fuzzy -#| msgid "Gerber Editor" msgid "Loading Gerber into Editor" -msgstr "Editor Gerber" +msgstr "Lendo Gerber no Editor" #: flatcamEditors/FlatCAMGrbEditor.py:3957 msgid "Setting up the UI" -msgstr "" +msgstr "Configurando a interface do usuário" #: flatcamEditors/FlatCAMGrbEditor.py:3958 -#, fuzzy -#| msgid "Adding geometry for aperture" msgid "Adding geometry finished. Preparing the GUI" -msgstr "Adicionando geometria na abertura" +msgstr "Geometria adicionada. Preparando a GUI" #: flatcamEditors/FlatCAMGrbEditor.py:3967 -#, fuzzy -#| msgid "One or more of the Gerber objects is not valid." msgid "Finished loading the Gerber object into the editor." -msgstr "Um ou mais dos objetos Gerber não são válidos." +msgstr "Carregamento do objeto Gerber no editor concluído." #: flatcamEditors/FlatCAMGrbEditor.py:4107 msgid "" @@ -5625,10 +5549,8 @@ msgid "View source\tALT+S" msgstr "Ver fonte\tALT+S" #: flatcamGUI/FlatCAMGUI.py:369 -#, fuzzy -#| msgid "Tool Data" msgid "Tools DataBase\tCTRL+D" -msgstr "Dados" +msgstr "Banco de Dados de Ferramentas\tCTRL+D" #: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 msgid "View" @@ -6067,25 +5989,19 @@ msgstr "Calculadoras" #: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 #: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 -#, fuzzy -#| msgid "Rules Tool" msgid "QRCode Tool" -msgstr "Ferramenta de Regras" +msgstr "Ferramenta de QRCode" #: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool" -msgstr "Área Sem Cobre (NCC)" +msgstr "Ferramenta de Retirada de Cobre" #: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 #: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 -#, fuzzy -#| msgid "Film Tool" msgid "Fiducials Tool" -msgstr "Ferramenta de Filme" +msgstr "Ferramenta de Fiduciais" #: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 #: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 @@ -6364,7 +6280,7 @@ msgstr "Aplicar" #: flatcamGUI/FlatCAMGUI.py:1093 msgid "Apply the current preferences without saving to a file." -msgstr "" +msgstr "Aplica as preferências atuais sem salvar em um arquivo." #: flatcamGUI/FlatCAMGUI.py:1100 msgid "" @@ -6376,7 +6292,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:1108 msgid "Will not save the changes and will close the preferences window." -msgstr "" +msgstr "Não salvará as alterações e fechará a janela de preferências." #: flatcamGUI/FlatCAMGUI.py:1444 msgid "SHOW SHORTCUT LIST" @@ -6454,10 +6370,8 @@ msgid "Copy Obj" msgstr "Copiar Obj" #: flatcamGUI/FlatCAMGUI.py:1453 -#, fuzzy -#| msgid "Tool Data" msgid "Open Tools Database" -msgstr "Dados" +msgstr "Abre Banco de Dados de Ferramentas" #: flatcamGUI/FlatCAMGUI.py:1454 msgid "Open Excellon File" @@ -7262,6 +7176,8 @@ msgstr "Sobreposição" #: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "" +"Quanto (fração) da largura da ferramenta é sobreposta a cada passagem da " +"ferramenta." #: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 #: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 @@ -7288,16 +7204,12 @@ msgid "Climb" msgstr "Subida" #: flatcamGUI/ObjectUI.py:394 -#, fuzzy -#| msgid "Conversion" msgid "Conventional" -msgstr "Conversão" +msgstr "Convencional" #: flatcamGUI/ObjectUI.py:399 -#, fuzzy -#| msgid "Combine Passes" msgid "Combine" -msgstr "Combinar Passes" +msgstr "Combinar" #: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" @@ -7361,7 +7273,7 @@ msgstr "Objeto cuja área será removida da geometria de isolação." #: flatcamGUI/ObjectUI.py:460 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" -msgstr "" +msgstr "Escopo" #: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 msgid "" @@ -7369,6 +7281,9 @@ msgid "" "- '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:467 flatcamGUI/PreferencesUI.py:1495 #: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 @@ -7376,10 +7291,8 @@ msgid "Selection" msgstr "Seleção" #: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 -#, fuzzy -#| msgid "Isolation Routing" msgid "Isolation Type" -msgstr "Roteamento de Isolação" +msgstr "Tipo de Isolação" #: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 msgid "" @@ -7392,23 +7305,27 @@ msgid "" "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:486 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" -msgstr "Completo" +msgstr "Completa" #: flatcamGUI/ObjectUI.py:487 -#, fuzzy -#| msgid "Exit" msgid "Ext" -msgstr "Sair" +msgstr "Ext" #: flatcamGUI/ObjectUI.py:488 -#, fuzzy -#| msgid "Int Geo" msgid "Int" -msgstr "Geo Int" +msgstr "Int" #: flatcamGUI/ObjectUI.py:493 msgid "Generate Isolation Geometry" @@ -7848,16 +7765,12 @@ msgid "Mill Holes" msgstr "Furação" #: flatcamGUI/ObjectUI.py:1019 -#, fuzzy -#| msgid "" -#| "Select from the Tools Table above\n" -#| "the hole dias that are to be milled.\n" -#| "Use the # column to make the selection." 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." @@ -8068,32 +7981,24 @@ msgstr "" "e negativo para corte 'por dentro'." #: flatcamGUI/ObjectUI.py:1230 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." msgstr "" -"Adicione uma nova ferramenta à Tabela de Ferramentas\n" +"Adiciona uma nova ferramenta à Tabela de Ferramentas\n" "com o diâmetro especificado." #: flatcamGUI/ObjectUI.py:1238 msgid "Add Tool from DataBase" -msgstr "" +msgstr "Adiciona Ferramenta do Banco de Dados" #: flatcamGUI/ObjectUI.py:1240 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." msgstr "" -"Adicione uma nova ferramenta à Tabela de Ferramentas\n" -"com o diâmetro especificado." +"Adiciona uma nova ferramenta à Tabela de Ferramentas\n" +"do Banco de Dados de Ferramentas." #: flatcamGUI/ObjectUI.py:1250 msgid "" @@ -8228,13 +8133,15 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1598 msgid "Apply parameters to all tools" -msgstr "" +msgstr "Aplicar parâmetros a todas as ferramentas" #: flatcamGUI/ObjectUI.py:1600 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:1609 msgid "" @@ -8398,19 +8305,15 @@ msgid "" "like to add at the beginning of the G-Code file." msgstr "" "Digite aqui os comandos G-Code que você gostaria\n" -"de adicionar no início do arquivo G-Code gerado." +"de adicionar ao início do arquivo G-Code gerado." #: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to add at the beginning of the G-Code file." 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\n" -"de adicionar no início do arquivo G-Code gerado." +"Digite aqui os comandos G-Code que você gostaria de adicionar ao início do " +"arquivo G-Code." #: flatcamGUI/ObjectUI.py:1829 msgid "Append to CNC Code" @@ -8423,22 +8326,16 @@ msgid "" "I.e.: M2 (End of program)" msgstr "" "Digite aqui os comandos G-Code que você gostaria\n" -"de adicionar no final do arquivo G-Code gerado.\n" +"de adicionar ao final do arquivo G-Code gerado.\n" "M2 (Fim do programa)" #: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to append to the generated file.\n" -#| "I.e.: M2 (End of program)" msgid "" "Type here any G-Code commands you would like to append to the generated " "file. I.e.: M2 (End of program)" msgstr "" -"Digite aqui os comandos G-Code que você gostaria\n" -"de adicionar no final do arquivo G-Code gerado.\n" -"M2 (Fim do programa)" +"Digite aqui os comandos G-Code que você gostaria de adicionar ao final do " +"arquivo gerado. M2 (Fim do programa)" #: flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3809 msgid "Toolchange G-Code" @@ -8468,17 +8365,6 @@ msgstr "" "ferramentas'." #: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 -#, fuzzy -#| 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." msgid "" "Type here any G-Code commands you would like to be executed when Toolchange " "event is encountered. This will constitute a Custom Toolchange GCode, or a " @@ -8486,16 +8372,12 @@ msgid "" "WARNING: it can be used only with a preprocessor file that has " "'toolchange_custom' in it's name." msgstr "" -"Digite aqui os comandos do G-Code G que você gostaria de executar quando o " +"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'." +"Este será um G-Code personalizado ou uma Macro para Troca de Ferramenta. As " +"variáveis do FlatCAM são circundadas pelo símbolo '%'.\n" +"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento que tenha " +"'toolchange_custom' em seu nome." #: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 msgid "Use Toolchange Macro" @@ -8721,10 +8603,8 @@ msgstr "" "O objetivo é ilustrar os limites do nosso trabalho." #: flatcamGUI/PreferencesUI.py:359 -#, fuzzy -#| msgid "Seg. X size" msgid "Wk. size" -msgstr "Tamanho do Segmento X" +msgstr "Tamanho do Wk" #: flatcamGUI/PreferencesUI.py:361 msgid "" @@ -8736,7 +8616,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:429 msgid "Wk. Orientation" -msgstr "" +msgstr "Orientação" #: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 msgid "" @@ -8744,16 +8624,19 @@ msgid "" "- Portrait\n" "- Landscape" msgstr "" +"Pode ser:\n" +"- Retrato\n" +"- Paisagem" #: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" -msgstr "" +msgstr "Retrato" #: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" -msgstr "" +msgstr "Paisagem" #: flatcamGUI/PreferencesUI.py:447 msgid "Plot Fill" @@ -9176,10 +9059,8 @@ msgid "IN" msgstr "in" #: flatcamGUI/PreferencesUI.py:1074 -#, fuzzy -#| msgid "Precision" msgid "Precision MM" -msgstr "Precisão" +msgstr "Precisão mm" #: flatcamGUI/PreferencesUI.py:1076 msgid "" @@ -9187,12 +9068,13 @@ msgid "" "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/PreferencesUI.py:1088 -#, fuzzy -#| msgid "Precision" msgid "Precision INCH" -msgstr "Precisão" +msgstr "Precisão in" #: flatcamGUI/PreferencesUI.py:1090 msgid "" @@ -9200,6 +9082,9 @@ msgid "" "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/PreferencesUI.py:1102 msgid "Graphic Engine" @@ -9463,7 +9348,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1310 msgid "Allow Machinist Unsafe Settings" -msgstr "" +msgstr "Permitir configurações inseguras de operador" #: flatcamGUI/PreferencesUI.py:1312 msgid "" @@ -9473,6 +9358,12 @@ msgid "" "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/PreferencesUI.py:1333 msgid "Gerber General" @@ -9592,16 +9483,12 @@ msgstr "" "que estão desenhadas na tela." #: flatcamGUI/PreferencesUI.py:1693 -#, fuzzy -#| msgid "Get Exteriors" msgid "Exterior" -msgstr "Obter Exterior" +msgstr "Exterior" #: flatcamGUI/PreferencesUI.py:1694 -#, fuzzy -#| msgid "Get Interiors" msgid "Interior" -msgstr "Obter Interior" +msgstr "Interior" #: flatcamGUI/PreferencesUI.py:1702 msgid "" @@ -10449,13 +10336,15 @@ msgstr "Incremental G91" #: flatcamGUI/PreferencesUI.py:3720 msgid "Force Windows style line-ending" -msgstr "" +msgstr "Forçar final de linha no estilo Windows" #: flatcamGUI/PreferencesUI.py:3722 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/PreferencesUI.py:3736 msgid "CNC Job Options" @@ -10540,10 +10429,8 @@ msgstr "" "Em unidades FlatCAM." #: flatcamGUI/PreferencesUI.py:4039 -#, fuzzy -#| msgid "Diameter for the new tool to add in the Tool Table" msgid "The new tool diameter (cut width) to add in the tool table." -msgstr "Diâmetro da nova ferramenta a ser adicionada na tabela de ferramentas" +msgstr "Diâmetro da nova ferramenta a ser adicionada na tabela de ferramentas." #: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 #: flatcamTools/ToolNonCopperClear.py:164 @@ -10597,18 +10484,6 @@ msgid "Reverse" msgstr "Decrescente" #: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be cleared are still \n" -#| "not cleared.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10620,12 +10495,9 @@ msgid "" msgstr "" "Quanto da largura da ferramenta (fração) é sobreposto em cada passagem da " "ferramenta.\n" -"Exemplo:\n" -"Um valor de 0.25 significa uma sobreposição de 25%% do diâmetro 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 PCB. \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." @@ -10696,12 +10568,6 @@ msgid "Offset value" msgstr "Valor do deslocamento" #: flatcamGUI/PreferencesUI.py:4192 -#, fuzzy -#| 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." msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10710,7 +10576,7 @@ msgid "" 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." +"O valor pode estar entre 0 e 9999.9 unidades FlatCAM." #: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 #: flatcamTools/ToolCopperThieving.py:125 @@ -10933,18 +10799,6 @@ msgid "Parameters:" msgstr "Parâmetros:" #: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10956,28 +10810,14 @@ msgid "" msgstr "" "Quanto da largura da ferramenta (fração) é sobreposto em cada passagem da " "ferramenta.\n" -"Exemplo:\n" -"Um valor de 0.25 significa uma sobreposição de 25%% do diâmetro 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 PCB. \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." #: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 -#, fuzzy -#| msgid "" -#| "How to select Polygons to be painted.\n" -#| "\n" -#| "- 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'All Polygons' - the Paint will start after click.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "How to select Polygons to be painted.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be " @@ -10991,7 +10831,8 @@ msgid "" "specified by another object." msgstr "" "Como selecionar polígonos a serem pintados.\n" -"\n" +"- 'Seleção de polígonos' - clique com o botão esquerdo do mouse para " +"adicionar/remover polígonos a serem pintados.\n" "- '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 " @@ -11000,10 +10841,8 @@ msgstr "" "- 'Objeto de Referência' - pintará dentro da área do objeto especificado." #: flatcamGUI/PreferencesUI.py:4596 -#, fuzzy -#| msgid "Select" msgid "Sel" -msgstr "Selecionar" +msgstr "Seleção" #: flatcamGUI/PreferencesUI.py:4607 msgid "Paint Plotting" @@ -11199,15 +11038,15 @@ msgstr "Espelhar eixo" #: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 msgid "SVG" -msgstr "" +msgstr "SVG" #: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 msgid "PNG" -msgstr "" +msgstr "PNG" #: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 msgid "PDF" -msgstr "" +msgstr "PDF" #: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 @@ -11221,10 +11060,14 @@ msgid "" "- '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/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" -msgstr "" +msgstr "Orientação da Página" #: flatcamGUI/PreferencesUI.py:4835 msgid "" @@ -11232,16 +11075,17 @@ msgid "" "- Portrait\n" "- Lanscape" msgstr "" +"Pode ser:\n" +"- Retrato\n" +"- Paisagem" #: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 -#, fuzzy -#| msgid "Trace Size" msgid "Page Size" -msgstr "Tamanho do Traçado" +msgstr "Tamanho da Página" #: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." -msgstr "" +msgstr "Uma seleção de tamanhos de página padrão ISO 216." #: flatcamGUI/PreferencesUI.py:4920 msgid "Panelize Tool Options" @@ -11932,34 +11776,32 @@ msgstr "" "Número de casas decimais para as distâncias e coordenadas nesta ferramenta." #: flatcamGUI/PreferencesUI.py:5855 -#, fuzzy -#| msgid "NCC Tool Options" msgid "QRCode Tool Options" -msgstr "Opções Área Sem Cobre (NCC)" +msgstr "Opções Ferramenta QRCode" #: flatcamGUI/PreferencesUI.py:5861 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/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 -#, fuzzy -#| msgid "Conversion" msgid "Version" -msgstr "Conversão" +msgstr "Versão" #: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 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/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 -#, fuzzy -#| msgid "Corrections" msgid "Error correction" -msgstr "Correções" +msgstr "Correção de erros" #: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 @@ -11971,48 +11813,51 @@ msgid "" "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/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 -#, fuzzy -#| msgid "Font Size" msgid "Box Size" -msgstr "Tamanho da Fonte" +msgstr "Tamanho da Caixa" #: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 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/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 -#, fuzzy -#| msgid "Border" msgid "Border Size" -msgstr "Borda" +msgstr "Tamanho da Borda" #: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 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/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 -#, fuzzy -#| msgid "Tool Data" msgid "QRCode Data" -msgstr "Dados" +msgstr "Dado QRCode" #: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "" +msgstr "Dado QRCode. Texto alfanumérico a ser codificado no QRCode." #: flatcamGUI/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." -msgstr "" +msgstr "Adicione aqui o texto a ser incluído no QRCode..." #: flatcamGUI/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 msgid "Polarity" -msgstr "" +msgstr "Polaridade" #: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 msgid "" @@ -12020,6 +11865,9 @@ msgid "" "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/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 @@ -12038,6 +11886,10 @@ msgid "" "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/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 #: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 @@ -12045,55 +11897,49 @@ 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/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 -#, fuzzy -#| msgid "Round" msgid "Rounded" -msgstr "Redondo" +msgstr "Arredondado" #: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 -#, fuzzy -#| msgid "Film Color" msgid "Fill Color" -msgstr "Cor do Filme" +msgstr "Cor de Preenchimento" #: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." -msgstr "" +msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)." #: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 -#, fuzzy -#| msgid "Font Color" msgid "Back Color" -msgstr "Cor da Fonte" +msgstr "Cor de Fundo" #: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." -msgstr "" +msgstr "Define a cor de fundo do QRCode." #: flatcamGUI/PreferencesUI.py:6043 -#, fuzzy -#| msgid "SolderPaste Tool Options" msgid "Copper Thieving Tool Options" -msgstr "Opções da Ferramenta Pasta de Solda" +msgstr "Opções da ferramenta Retirada de Cobre" #: flatcamGUI/PreferencesUI.py:6055 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." msgstr "" +"Uma ferramenta para gerar uma Retirada de cobre que pode ser adicionada\n" +"para um arquivo Gerber selecionado." #: flatcamGUI/PreferencesUI.py:6063 msgid "Number of steps (lines) used to interpolate circles." -msgstr "" +msgstr "Número de etapas (linhas) usadas para interpolar círculos." #: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 -#, fuzzy -#| msgid "Tolerance" msgid "Clearance" -msgstr "Tolerância" +msgstr "Espaço" #: flatcamGUI/PreferencesUI.py:6075 msgid "" @@ -12101,6 +11947,9 @@ msgid "" "(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 Retirada 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/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 @@ -12118,16 +11967,6 @@ msgid "Reference:" msgstr "Referência:" #: flatcamGUI/PreferencesUI.py:6108 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "- 'Itself' - the copper Thieving extent is based on the object that is " "copper cleared.\n" @@ -12137,10 +11976,8 @@ msgid "" "another object." msgstr "" "- 'Própria' - a retirada 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 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" "- 'Objeto de Referência' - retirará o cobre dentro da área do objeto " "especificado." @@ -12150,7 +11987,7 @@ msgstr "Retangular" #: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" -msgstr "" +msgstr "Mínima" #: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 @@ -12162,28 +11999,24 @@ 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/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" -msgstr "" +msgstr "Pontos" #: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 -#, fuzzy -#| msgid "Square" msgid "Squares Grid" -msgstr "Quadrado" +msgstr "Quadrados" #: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 -#, fuzzy -#| msgid "Linear" msgid "Lines Grid" -msgstr "Linear" +msgstr "Linhas" #: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 -#, fuzzy -#| msgid "Film Type:" msgid "Fill Type:" -msgstr "Tipo de Filme:" +msgstr "Tipo de Preenchimento:" #: flatcamGUI/PreferencesUI.py:6142 msgid "" @@ -12192,71 +12025,65 @@ msgid "" "- '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' - o cobre será retirado como 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/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 -#, fuzzy -#| msgid "Slot Parameters" msgid "Dots Grid Parameters" -msgstr "Parâmetros de Ranhura" +msgstr "Parâmetros dos Pontos" #: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 -#, fuzzy -#| msgid "Tool diameter in file units." msgid "Dot diameter in Dots Grid." -msgstr "Diâmetro da ferramenta em unidades de arquivo." +msgstr "Diâmetro dos Pontos." #: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 #: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 -#, fuzzy -#| msgid "Spacing cols" msgid "Spacing" -msgstr "Espaço entre Colunas" +msgstr "Espaçamento" #: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." -msgstr "" +msgstr "Distância entre dois pontos." #: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 -#, fuzzy -#| msgid "Slot Array Parameters" msgid "Squares Grid Parameters" -msgstr "Parâm. da matriz de ranhuras" +msgstr "Parâmetros dos Quadrados" #: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." -msgstr "" +msgstr "Lado do quadrado." #: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." -msgstr "" +msgstr "Distância entre dois quadrados." #: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 -#, fuzzy -#| msgid "Change Parameter" msgid "Lines Grid Parameters" -msgstr "Alterar Parâmetro" +msgstr "Parâmetros das Linhas" #: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." -msgstr "" +msgstr "Espessura das Linhas" #: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." -msgstr "" +msgstr "Distância entre duas linhas" #: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 -#, fuzzy -#| msgid "Slot Parameters" msgid "Robber Bar Parameters" -msgstr "Parâmetros de Ranhura" +msgstr "Parâmetros da Barra" #: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 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/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 #, fuzzy @@ -12266,38 +12093,36 @@ msgstr "Margem da caixa delimitadora." #: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" -msgstr "" +msgstr "Espessura" #: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." -msgstr "" +msgstr "Espessura da barra" #: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" -msgstr "" +msgstr "Máscara do Revestimento Padrão" #: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." -msgstr "" +msgstr "Gera uma máscara para o revestimento padrão." #: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 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 retirada de cobre\n" +"e/ou barra e as aberturas reais na máscara." #: flatcamGUI/PreferencesUI.py:6298 -#, fuzzy -#| msgid "Film Tool Options" msgid "Fiducials Tool Options" -msgstr "Opções da Ferramenta de Filme" +msgstr "Opções da Ferramenta de Fiduciais" #: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 -#, fuzzy -#| msgid "Diameter for the new tool." msgid "Parameters used for this tool." -msgstr "Diâmetro para a nova ferramenta." +msgstr "Parâmetros usados para esta ferramenta." #: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 msgid "" @@ -12305,20 +12130,21 @@ msgid "" "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/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 msgid "Auto" -msgstr "" +msgstr "Auto" #: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 -#, fuzzy -#| msgid "Manual Geo" msgid "Manual" -msgstr "Geo Manual" +msgstr "Manual" #: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 msgid "Mode:" -msgstr "" +msgstr "Modo:" #: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 msgid "" @@ -12326,18 +12152,21 @@ msgid "" "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/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 msgid "Up" -msgstr "" +msgstr "Acima" #: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 msgid "Down" -msgstr "" +msgstr "Abaixo" #: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" -msgstr "" +msgstr "Segundo fiducial" #: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 msgid "" @@ -12346,20 +12175,25 @@ msgid "" " - '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/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 msgid "Cross" -msgstr "" +msgstr "Cruz" #: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 msgid "Chess" -msgstr "" +msgstr "Xadrez" #: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 -#, fuzzy -#| msgid "Film Type" msgid "Fiducial Type" -msgstr "Tipo de Filme" +msgstr "Tipo de Fiducial" #: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 msgid "" @@ -12368,22 +12202,22 @@ msgid "" "- '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/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" -msgstr "" +msgstr "Espessura da linha" #: flatcamGUI/PreferencesUI.py:6414 -#, fuzzy -#| msgid "Calculators Tool Options" msgid "Calibration Tool Options" -msgstr "Opções das Calculadoras" +msgstr "Opções da Ferramenta de Calibração" #: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 -#, fuzzy -#| msgid "Source" msgid "Source Type" -msgstr "Fonte" +msgstr "Tipo de Fonte" #: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 msgid "" @@ -12392,46 +12226,43 @@ msgid "" "- 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/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 -#, fuzzy -#| msgid "FreeForm" msgid "Free" -msgstr "Forma Livre" +msgstr "Livre" #: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 -#, fuzzy -#| msgid "" -#| "The height (Z) for travel between pads\n" -#| "(without dispensing solder paste)." msgid "Height (Z) for travelling between the points." -msgstr "" -"Altura (Z) para deslocamento entre pads\n" -"(sem dispensar pasta de solda)." +msgstr "Altura (Z) para deslocamento entre os pontos." #: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 -#, fuzzy -#| msgid "Gerber Specification" msgid "Verification Z" -msgstr "Especificação Gerber" +msgstr "Verificação Z" #: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 msgid "Height (Z) for checking the point." -msgstr "" +msgstr "Altura (Z) para verificar o ponto." #: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 msgid "Zero Z tool" -msgstr "" +msgstr "Ferramenta Zero Z" #: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 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/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 msgid "Height (Z) for mounting the verification probe." -msgstr "" +msgstr "Altura (Z) para montar a sonda de verificação." #: flatcamGUI/PreferencesUI.py:6506 msgid "Excellon File associations" @@ -12740,7 +12571,7 @@ msgid "" " 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." +"ferramenta, dependendo do que é desejado e do que é conhecido. " #: flatcamTools/ToolCalculators.py:205 msgid "Current Value" @@ -12777,14 +12608,12 @@ msgid "Calc. Tool" msgstr "Calculadoras" #: flatcamTools/ToolCalibration.py:36 -#, fuzzy -#| msgid "Calculators Tool" msgid "Calibration Tool" -msgstr "Calculadoras" +msgstr "Calibração" #: flatcamTools/ToolCalibration.py:66 msgid "STEP 1: Acquire Calibration Points" -msgstr "" +msgstr "PASSO 1: Adquirir Pontos de Calibração" #: flatcamTools/ToolCalibration.py:68 msgid "" @@ -12792,6 +12621,9 @@ msgid "" "Those four points should be in the four\n" "(as much as possible) corners of the Excellon object." msgstr "" +"Escolha quatro pontos clicando dentro dos furos.\n" +"Esses quatro pontos devem estar nos quatro\n" +"cantos (o máximo possível) do objeto Excellon." #: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 @@ -12806,20 +12638,20 @@ msgid "Source object selection" msgstr "Nenhum objeto selecionado." #: flatcamTools/ToolCalibration.py:103 -#, fuzzy -#| msgid "The FlatCAM object to be used as non copper clearing reference." msgid "FlatCAM Object to be used as a source for reference points." -msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre." +msgstr "Objeto FlatCAM a ser usado como fonte para os pontos de referência." #: flatcamTools/ToolCalibration.py:109 msgid "Calibration Points" -msgstr "" +msgstr "Pontos de Calibração" #: flatcamTools/ToolCalibration.py:111 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:126 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 @@ -12828,67 +12660,47 @@ msgstr "Alvo" #: flatcamTools/ToolCalibration.py:127 msgid "Found Delta" -msgstr "" +msgstr "Delta Encontrado" #: flatcamTools/ToolCalibration.py:139 -#, fuzzy -#| msgid "Bottom Left" msgid "Bot Left X" -msgstr "Esquerda Inferior" +msgstr "Esquerda Inferior X" #: flatcamTools/ToolCalibration.py:148 -#, fuzzy -#| msgid "Bottom Left" msgid "Bot Left Y" -msgstr "Esquerda Inferior" +msgstr "Esquerda Inferior Y" #: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 -#, fuzzy -#| msgid "Origin set" msgid "Origin" -msgstr "Origem definida" +msgstr "Origem" #: flatcamTools/ToolCalibration.py:168 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right X" -msgstr "Direita Inferior" +msgstr "Direita Inferior X" #: flatcamTools/ToolCalibration.py:178 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right Y" -msgstr "Direita Inferior" +msgstr "Direita Inferior Y" #: flatcamTools/ToolCalibration.py:193 -#, fuzzy -#| msgid "Top Left" msgid "Top Left X" -msgstr "Esquerda Superior" +msgstr "Esquerda Superior X" #: flatcamTools/ToolCalibration.py:202 -#, fuzzy -#| msgid "Top Left" msgid "Top Left Y" -msgstr "Esquerda Superior" +msgstr "Esquerda Superior Y" #: flatcamTools/ToolCalibration.py:217 -#, fuzzy -#| msgid "Top right" msgid "Top Right X" -msgstr "Direita Superior" +msgstr "Direita Superior X" #: flatcamTools/ToolCalibration.py:226 -#, fuzzy -#| msgid "Top right" msgid "Top Right Y" -msgstr "Direita Superior" +msgstr "Direita Superior Y" #: flatcamTools/ToolCalibration.py:258 -#, fuzzy -#| msgid "Ref. Point" msgid "Get Points" -msgstr "Ponto de Referência" +msgstr "Obter Pontos" #: flatcamTools/ToolCalibration.py:260 msgid "" @@ -12897,36 +12709,38 @@ msgid "" "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:281 msgid "STEP 2: Verification GCode" -msgstr "" +msgstr "PASSO 2: G-Code de Verificação " #: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 msgid "" "Generate GCode file to locate and align the PCB by using\n" "the four points acquired above." msgstr "" +"Gere o arquivo G-Code para localizar e alinhar o PCB usando\n" +"os quatro pontos adquiridos acima." #: flatcamTools/ToolCalibration.py:288 -#, fuzzy -#| msgid "Slot Parameters" msgid "GCode Parameters" -msgstr "Parâmetros de Ranhura" +msgstr "Parâmetros do G-Code" #: flatcamTools/ToolCalibration.py:290 msgid "Parameters used when creating the GCode in this tool." -msgstr "" +msgstr "Parâmetros usados nesta ferramenta para criar o G-Code." #: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Gerar o G-Code" #: flatcamTools/ToolCalibration.py:369 -#, fuzzy -#| msgid "Film Adjustments" msgid "STEP 3: Adjustments" -msgstr "Ajustes do Filme" +msgstr "PASSO 3: Ajustes" #: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 msgid "" @@ -12934,44 +12748,41 @@ msgid "" "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:378 -#, fuzzy -#| msgid "Calculators" msgid "Calculate Factors" -msgstr "Calculadoras" +msgstr "Calculas Fatores" #: flatcamTools/ToolCalibration.py:400 msgid "STEP 4: Adjusted GCode" -msgstr "" +msgstr "PASSO 4: G-Code ajustado" #: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 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:407 -#, fuzzy -#| msgid "Scale factor" msgid "Scale Factor X:" -msgstr "Fator de Escala" +msgstr "Fator de Escala X:" #: flatcamTools/ToolCalibration.py:419 -#, fuzzy -#| msgid "Scale factor" msgid "Scale Factor Y:" -msgstr "Fator de Escala" +msgstr "Fator de Escala Y:" #: flatcamTools/ToolCalibration.py:431 -#, fuzzy -#| msgid "Scale factor" msgid "Apply Scale Factors" -msgstr "Fator de Escala" +msgstr "Aplicar Fatores de Escala" #: flatcamTools/ToolCalibration.py:433 msgid "Apply Scale factors on the calibration points." -msgstr "" +msgstr "Aplica os fatores de escala nos pontos de calibração." #: flatcamTools/ToolCalibration.py:443 #, fuzzy @@ -12986,38 +12797,36 @@ msgid "Skew Angle Y:" msgstr "Ângulo Y:" #: flatcamTools/ToolCalibration.py:469 -#, fuzzy -#| msgid "Applying Skew" msgid "Apply Skew Factors" -msgstr "Inclinando" +msgstr "Aplicar Fatores de Inclinação" #: flatcamTools/ToolCalibration.py:471 msgid "Apply Skew factors on the calibration points." -msgstr "" +msgstr "Aplica os fatores de inclinação nos pontos de calibração." #: flatcamTools/ToolCalibration.py:540 -#, fuzzy -#| msgid "Generate GCode" msgid "Generate Adjusted GCode" -msgstr "Gerar o G-Code" +msgstr "Gerar o G-Code Ajustado" #: flatcamTools/ToolCalibration.py:561 msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "" +msgstr "PASSO 5: Calibrar Objetos FlatCAM" #: flatcamTools/ToolCalibration.py:563 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:572 msgid "Adjusted object type" -msgstr "" +msgstr "Tipo de objeto ajustado" #: flatcamTools/ToolCalibration.py:574 msgid "Type of the FlatCAM Object to be adjusted." -msgstr "" +msgstr "Tipo do objeto FlatCAM a ser ajustado." #: flatcamTools/ToolCalibration.py:585 #, fuzzy @@ -13026,20 +12835,20 @@ msgid "Adjusted object selection" msgstr "Nenhum objeto selecionado." #: flatcamTools/ToolCalibration.py:587 -#, fuzzy -#| msgid "Object to be painted." msgid "The FlatCAM Object to be adjusted." -msgstr "Objeto a ser pintado." +msgstr "Objeto FlatCAM a ser ajustado." #: flatcamTools/ToolCalibration.py:594 msgid "Calibrate" -msgstr "" +msgstr "Calibrar" #: flatcamTools/ToolCalibration.py:596 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:617 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 @@ -13060,68 +12869,56 @@ msgstr "Ferramenta de Regras" #: flatcamTools/ToolPaint.py:380 flatcamTools/ToolPanelize.py:268 #: flatcamTools/ToolQRCode.py:316 flatcamTools/ToolRulesCheck.py:509 #: flatcamTools/ToolSolderPaste.py:472 flatcamTools/ToolSub.py:172 -#, fuzzy -#| msgid "" -#| "Select tools.\n" -#| "Modify parameters." msgid "Will reset the tool parameters." -msgstr "" -"Selecione ferramentas.\n" -"Modifique os parâmetros." +msgstr "Redefinirá os parâmetros da ferramenta." #: flatcamTools/ToolCalibration.py:688 -#, fuzzy -#| msgid "SolderPaste Tool" msgid "Calibrate Tool" -msgstr "Ferramenta Pasta de Solda" +msgstr "Ferramenta de Calibração" #: flatcamTools/ToolCalibration.py:715 msgid "Tool initialized" -msgstr "" +msgstr "Ferramenta inicializada" #: flatcamTools/ToolCalibration.py:747 -#, fuzzy -#| msgid "There is no Excellon object loaded ..." msgid "There is no source FlatCAM object selected..." -msgstr "Não há objeto Excellon carregado ..." +msgstr "Não há nenhum objeto FlatCAM de origem selecionado..." #: flatcamTools/ToolCalibration.py:768 msgid "Get First calibration point. Bottom Left..." -msgstr "" +msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..." #: flatcamTools/ToolCalibration.py:820 msgid "Get Second calibration point. Bottom Right..." -msgstr "" +msgstr "Obtenha o segundo ponto de calibração. Inferior Direito..." #: flatcamTools/ToolCalibration.py:824 msgid "Get Third calibration point. Top Left..." -msgstr "" +msgstr "Obtenha o terceiro ponto de calibração. Superior Esquerdo ..." #: flatcamTools/ToolCalibration.py:828 msgid "Get Forth calibration point. Top Right..." -msgstr "" +msgstr "Obtenha o quarto ponto de calibração. Superior Direito..." #: flatcamTools/ToolCalibration.py:832 msgid "Done. All four points have been acquired." -msgstr "" +msgstr "Feito. Todos os quatro pontos foram adquiridos." #: flatcamTools/ToolCalibration.py:857 msgid "Verification GCode for FlatCAM Calibrate Tool" -msgstr "" +msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM" #: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 msgid "Gcode Viewer" -msgstr "" +msgstr "G-Code Viewer" #: flatcamTools/ToolCalibration.py:881 msgid "Cancelled. Four points are needed for GCode generation." -msgstr "" +msgstr "Cancelado. São necessários quatro pontos para a geração do G-Code." #: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 -#, fuzzy -#| msgid "There is no Box object loaded ..." msgid "There is no FlatCAM object selected..." -msgstr "Não há objeto Caixa carregado ..." +msgstr "Não há nenhum objeto FlatCAM selecionado ..." #: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:260 msgid "Gerber Object to which will be added a copper thieving." @@ -15711,10 +15508,8 @@ msgid "Clearance Height" msgstr "" #: flatcamTools/ToolProperties.py:492 -#, fuzzy -#| msgid "Feedrate Z" msgid "Feedrate" -msgstr "Taxa de Avanço Z" +msgstr "Taxa de Avanço" #: flatcamTools/ToolProperties.py:512 msgid "Routing time" From 44ff92356a0aeefa337f0c8830f242e4e214c720 Mon Sep 17 00:00:00 2001 From: cmstein Date: Mon, 9 Dec 2019 17:32:08 -0300 Subject: [PATCH 04/36] Updates in pt_BR --- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 291167 -> 332240 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index 55c01c27a20f219d3a42a7bd05b6d1ba4a288f3f..8ce64dae6566fc8332c392e9b5b54c1bbe0b5681 100644 GIT binary patch delta 91144 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 RglgjJ#lxw8O0TwF{|BpUViN!W From 2b0f38c5e0d39274fd58c39d14a92108fdf5fd03 Mon Sep 17 00:00:00 2001 From: cmstein Date: Mon, 9 Dec 2019 18:15:40 -0300 Subject: [PATCH 05/36] Updates in pt_BR --- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 332240 -> 344456 bytes locale/pt_BR/LC_MESSAGES/strings.po | 365 ++++++++++------------------ 2 files changed, 130 insertions(+), 235 deletions(-) diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index 8ce64dae6566fc8332c392e9b5b54c1bbe0b5681..bb34e0b31278918e1aaa4b384111c866df0a90ff 100644 GIT binary patch delta 69019 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 G>HL3v+Wx!% diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po index d3901014..cddf448d 100644 --- a/locale/pt_BR/LC_MESSAGES/strings.po +++ b/locale/pt_BR/LC_MESSAGES/strings.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2019-12-09 13:38-0300\n" -"PO-Revision-Date: 2019-12-09 17:22-0300\n" +"PO-Revision-Date: 2019-12-09 18:13-0300\n" "Last-Translator: Carlos Stein \n" "Language-Team: \n" "Language: pt_BR\n" @@ -12922,7 +12922,7 @@ msgstr "Não há nenhum objeto FlatCAM selecionado ..." #: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:260 msgid "Gerber Object to which will be added a copper thieving." -msgstr "" +msgstr "Objeto Gerber ao qual será adicionada uma retirada de cobre." #: flatcamTools/ToolCopperThieving.py:98 msgid "" @@ -12930,18 +12930,11 @@ msgid "" "(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 retirada 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 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "- 'Itself' - the copper thieving extent is based on the object that is " "copper cleared.\n" @@ -12951,10 +12944,8 @@ msgid "" "another object." msgstr "" "- 'Própria' - a retirada 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 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" "- 'Objeto de Referência' - retirará o cobre dentro da área do objeto " "especificado." @@ -12978,24 +12969,18 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:144 flatcamTools/ToolDblSided.py:213 #: flatcamTools/ToolNonCopperClear.py:457 flatcamTools/ToolPaint.py:338 -#, fuzzy -#| msgid "Reference Object" msgid "Reference Gerber" -msgstr "Objeto de Referência" +msgstr "Referência Gerber" #: flatcamTools/ToolCopperThieving.py:145 flatcamTools/ToolDblSided.py:214 #: flatcamTools/ToolNonCopperClear.py:458 flatcamTools/ToolPaint.py:339 -#, fuzzy -#| msgid "Open Excellon" msgid "Reference Excellon" -msgstr "Abrir Excellon" +msgstr "Referência Excellon" #: flatcamTools/ToolCopperThieving.py:146 flatcamTools/ToolDblSided.py:215 #: flatcamTools/ToolNonCopperClear.py:459 flatcamTools/ToolPaint.py:340 -#, fuzzy -#| msgid "Generate Geometry" msgid "Reference Geometry" -msgstr "Gerar Geometria" +msgstr "Referência Geometria" #: flatcamTools/ToolCopperThieving.py:151 #: flatcamTools/ToolNonCopperClear.py:462 flatcamTools/ToolPaint.py:343 @@ -13012,6 +12997,8 @@ 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." #: flatcamTools/ToolCopperThieving.py:197 msgid "" @@ -13020,20 +13007,26 @@ msgid "" "- '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 retirada 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." #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" -msgstr "" +msgstr "Inserir retirada de cobre" #: flatcamTools/ToolCopperThieving.py:328 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:387 msgid "Insert Robber Bar" -msgstr "" +msgstr "Inserir Barra" #: flatcamTools/ToolCopperThieving.py:389 msgid "" @@ -13042,12 +13035,14 @@ msgid "" "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:413 -#, fuzzy -#| msgid "Delete objects" msgid "Select Soldermask object" -msgstr "Excluir objetos" +msgstr "Selecionar objeto Máscara de Solda" #: flatcamTools/ToolCopperThieving.py:415 msgid "" @@ -13055,10 +13050,13 @@ msgid "" "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:443 msgid "Plated area" -msgstr "" +msgstr "Área revestida" #: flatcamTools/ToolCopperThieving.py:445 msgid "" @@ -13070,20 +13068,25 @@ msgid "" "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:456 msgid "mm" -msgstr "" +msgstr "mm" #: flatcamTools/ToolCopperThieving.py:458 -#, fuzzy -#| msgid "info" msgid "in" -msgstr "info" +msgstr "in" #: flatcamTools/ToolCopperThieving.py:465 msgid "Generate pattern plating mask" -msgstr "" +msgstr "Gerar máscara de revestimento padrão" #: flatcamTools/ToolCopperThieving.py:467 msgid "" @@ -13091,27 +13094,26 @@ msgid "" "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 retirada de cobre e/ou\n" +"a barra, se elas foram geradas." #: flatcamTools/ToolCopperThieving.py:620 #: flatcamTools/ToolCopperThieving.py:645 msgid "Lines Grid works only for 'itself' reference ..." -msgstr "" +msgstr "Linhas funciona apenas para referência 'própria' ..." #: flatcamTools/ToolCopperThieving.py:631 -#, fuzzy -#| msgid "Failed. Nothing selected." msgid "Solid fill selected." -msgstr "Falhou. Nada selecionado." +msgstr "Preenchimento sólido selecionado." #: flatcamTools/ToolCopperThieving.py:636 -#, fuzzy -#| msgid "Done. Drill(s) deleted." msgid "Dots grid fill selected." -msgstr "Furo(s) excluída(s)." +msgstr "Preenchimento de pontos selecionado." #: flatcamTools/ToolCopperThieving.py:641 msgid "Squares grid fill selected." -msgstr "" +msgstr "Preenchimento de quadrados selecionado." #: flatcamTools/ToolCopperThieving.py:662 #: flatcamTools/ToolCopperThieving.py:744 @@ -13131,17 +13133,13 @@ msgstr "geometria" #: flatcamTools/ToolCopperThieving.py:719 #: flatcamTools/ToolCopperThieving.py:1300 #: flatcamTools/ToolCopperThieving.py:1453 -#, fuzzy -#| msgid "Save Document source file" msgid "Append source file" -msgstr "Salvar o arquivo fonte Documento" +msgstr "Anexar arquivo fonte" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool done." -msgstr "Área Sem Cobre (NCC)" +msgstr "Área de Retirada de Cobre" #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 @@ -13178,23 +13176,20 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:940 #: flatcamTools/ToolCopperThieving.py:1001 msgid "Thieving" -msgstr "" +msgstr "Retirada" #: flatcamTools/ToolCopperThieving.py:947 -#, fuzzy -#| msgid "NCC Tool started. Reading parameters." msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Ferramenta NCC iniciada. Lendo parâmetros." +msgstr "Ferramenta de Retirada de Cobre iniciada. Lendo parâmetros." #: flatcamTools/ToolCopperThieving.py:972 -#, fuzzy -#| msgid "NCC Tool. Preparing non-copper polygons." msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Ferramenta NCC. Preparando polígonos." +msgstr "Ferramenta de Retirada de Cobre. Preparando polígonos de isolação." #: flatcamTools/ToolCopperThieving.py:1017 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" +"Ferramenta de Retirada de Cobre. Preparando áreas para preencher com cobre." #: flatcamTools/ToolCopperThieving.py:1028 flatcamTools/ToolOptimal.py:349 #: flatcamTools/ToolPanelize.py:798 flatcamTools/ToolRulesCheck.py:1118 @@ -13202,10 +13197,8 @@ msgid "Working..." msgstr "Trabalhando..." #: flatcamTools/ToolCopperThieving.py:1055 -#, fuzzy -#| msgid "Geometry not supported for cutout" msgid "Geometry not supported for bounding box" -msgstr "Geometria não suportada para recorte" +msgstr "Geometria não suportada para caixa delimitadora" #: flatcamTools/ToolCopperThieving.py:1061 #: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 @@ -13219,32 +13212,28 @@ msgstr "O tipo do objeto de referência não é suportado." #: flatcamTools/ToolCopperThieving.py:1103 msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "" +msgstr "Ferramenta de Retirada de Cobre. Anexando nova geometria e buffer." #: flatcamTools/ToolCopperThieving.py:1119 -#, fuzzy -#| msgid "Create Paint Geometry" msgid "Create geometry" -msgstr "Criar Geometria de Pintura" +msgstr "Criar Geometria" #: flatcamTools/ToolCopperThieving.py:1319 #: flatcamTools/ToolCopperThieving.py:1323 msgid "P-Plating Mask" -msgstr "" +msgstr "Máscara de Revestimento Padrão" #: flatcamTools/ToolCopperThieving.py:1345 msgid "Append PP-M geometry" -msgstr "" +msgstr "Anexar geometria" #: flatcamTools/ToolCopperThieving.py:1471 msgid "Generating Pattern Plating Mask done." -msgstr "" +msgstr "Geração de Máscara de Revestimento Padrão concluída." #: flatcamTools/ToolCopperThieving.py:1543 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool exit." -msgstr "Área Sem Cobre (NCC)" +msgstr "Sair da Ferramenta de Retirada de Cobre." #: flatcamTools/ToolCutOut.py:42 msgid "Cutout PCB" @@ -13307,10 +13296,8 @@ msgstr "" "- 8 - 2*esquerda + 2*direita + 2*topo + 2*baixo" #: flatcamTools/ToolCutOut.py:262 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Freeform Geometry" -msgstr "Gerar Geometria" +msgstr "Gerar Geometria de Forma Livre" #: flatcamTools/ToolCutOut.py:264 msgid "" @@ -13323,10 +13310,8 @@ msgstr "" "Útil quando o PCB tem uma forma não retangular." #: flatcamTools/ToolCutOut.py:276 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Rectangular Geometry" -msgstr "Gerar Geometria" +msgstr "Gerar Geometria Retangular" #: flatcamTools/ToolCutOut.py:278 msgid "" @@ -13359,10 +13344,8 @@ msgid "Geometry object used to create the manual cutout." msgstr "Objeto de geometria usado para criar o recorte manual." #: flatcamTools/ToolCutOut.py:326 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Manual Geometry" -msgstr "Gerar Geometria" +msgstr "Gerar Geometria Manual" #: flatcamTools/ToolCutOut.py:328 msgid "" @@ -13833,22 +13816,20 @@ msgid "Jumped to the half point between the two selected objects" msgstr "Pulou para o ponto médio entre os dois objetos selecionados" #: flatcamTools/ToolFiducials.py:56 -#, fuzzy -#| msgid "Points coordinates" msgid "Fiducials Coordinates" -msgstr "Coordenadas dos pontos" +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:74 -#, fuzzy -#| msgid "Coordinates type" msgid "Coordinates" -msgstr "Tipo de coordenada" +msgstr "Coordenadas" #: flatcamTools/ToolFiducials.py:99 #, fuzzy @@ -13857,44 +13838,32 @@ msgid "Top Right" msgstr "Direita Superior" #: flatcamTools/ToolFiducials.py:111 -#, fuzzy -#| msgid "Second object point" msgid "Second Point" -msgstr "Ponto final" +msgstr "Segundo Ponto" #: flatcamTools/ToolFiducials.py:258 -#, fuzzy -#| msgid "Open Gerber" msgid "Copper Gerber" -msgstr "Abrir Gerber" +msgstr "Gerber Cobre" #: flatcamTools/ToolFiducials.py:267 -#, fuzzy -#| msgid "Add Circle" msgid "Add Fiducial" -msgstr "Adicionar Círculo" +msgstr "Adicionar Fiducial" #: flatcamTools/ToolFiducials.py:269 msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "" +msgstr "Adicionará um polígono na camada de cobre para servir como fiducial." #: flatcamTools/ToolFiducials.py:285 -#, fuzzy -#| msgid "New Blank Gerber" msgid "Soldermask Gerber" -msgstr "Novo Gerber em Branco" +msgstr "Gerber Máscara de Solda" #: flatcamTools/ToolFiducials.py:287 -#, fuzzy -#| msgid "No SolderPaste mask Gerber object loaded." msgid "The Soldermask Gerber object." -msgstr "Nenhum objeto Gerber de máscara de Pasta de Solda carregado." +msgstr "Objeto Gerber de Máscara de Solda." #: flatcamTools/ToolFiducials.py:298 -#, fuzzy -#| msgid "Solder Paste Dispensing Tool" msgid "Add Soldermask Opening" -msgstr "Pasta de Solda" +msgstr "Adicionar Máscara de Solda" #: flatcamTools/ToolFiducials.py:300 msgid "" @@ -13903,28 +13872,32 @@ msgid "" "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:514 msgid "Click to add first Fiducial. Bottom Left..." -msgstr "" +msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..." #: flatcamTools/ToolFiducials.py:778 msgid "Click to add the last fiducial. Top Right..." -msgstr "" +msgstr "Clique para adicionar o último fiducial. Superior Direito..." #: flatcamTools/ToolFiducials.py:783 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:786 flatcamTools/ToolFiducials.py:795 msgid "Done. All fiducials have been added." -msgstr "" +msgstr "Feito. Todos os fiduciais foram adicionados." #: flatcamTools/ToolFiducials.py:872 -#, fuzzy -#| msgid "Distance Tool exit..." msgid "Fiducials Tool exit." -msgstr "Sair da ferramenta de medição ..." +msgstr "Sair da ferramenta de fiduciais." #: flatcamTools/ToolFilm.py:42 msgid "Film PCB" @@ -13980,10 +13953,8 @@ msgstr "" "do mesmo objeto para o qual o filme é criado." #: flatcamTools/ToolFilm.py:273 -#, fuzzy -#| msgid "Slot Parameters" msgid "Film Parameters" -msgstr "Parâmetros de Ranhura" +msgstr "Parâmetros de Filme" #: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" @@ -14039,22 +14010,15 @@ msgid "Save Film" msgstr "Salvar Filme" #: flatcamTools/ToolFilm.py:502 -#, fuzzy -#| 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 SVG format\n" -#| "which can be opened with Inkscape." 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 especificada. Não " -"cria um novo objeto\n" -"FlatCAM, mas salva-o diretamente no formato SVG\n" -"que pode ser aberto com o programa Inkscape." +"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:652 msgid "" @@ -14081,16 +14045,12 @@ msgid "Generating Film ..." msgstr "Gerando Filme ..." #: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 -#, fuzzy -#| msgid "Export SVG positive" msgid "Export positive film" -msgstr "Exportar SVG positivo" +msgstr "Exportar filme positivo" #: flatcamTools/ToolFilm.py:738 -#, fuzzy -#| msgid "Export SVG positive cancelled." msgid "Export positive film cancelled." -msgstr "Exportar SVG positivo cancelado." +msgstr "Exportar filme positivo cancelado." #: flatcamTools/ToolFilm.py:760 msgid "" @@ -14124,16 +14084,12 @@ msgstr "" "recém-criada é a mesma da geometria do objeto de origem ..." #: flatcamTools/ToolFilm.py:869 flatcamTools/ToolFilm.py:873 -#, fuzzy -#| msgid "Export SVG negative" msgid "Export negative film" -msgstr "Exportar SVG negativo" +msgstr "Exportar filme negativo" #: flatcamTools/ToolFilm.py:878 -#, fuzzy -#| msgid "Export SVG negative cancelled." msgid "Export negative film cancelled." -msgstr "Exportar SVG negativo cancelado." +msgstr "Exportar filme negativo cancelado." #: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 #: flatcamTools/ToolPanelize.py:421 @@ -14141,10 +14097,8 @@ msgid "No object Box. Using instead" msgstr "Nenhuma caixa de objeto. Usando" #: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 -#, fuzzy -#| msgid "DXF file exported to" msgid "Film file exported to" -msgstr "Arquivo DXF exportado para" +msgstr "Arquivo filme exportado para" #: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 msgid "Generating Film ... Please wait." @@ -14404,6 +14358,9 @@ msgid "" "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." #: flatcamTools/ToolNonCopperClear.py:288 flatcamTools/ToolPaint.py:190 msgid "" @@ -14423,16 +14380,6 @@ msgstr "" "primeiro a(s) linha(s) na Tabela de Ferramentas." #: flatcamTools/ToolNonCopperClear.py:441 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "- 'Itself' - the non copper clearing extent is based on the object that is " "copper cleared.\n" @@ -14442,10 +14389,8 @@ msgid "" "by another object." msgstr "" "- 'Própria' - a retirada 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 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" "- 'Objeto de Referência' - retirará o cobre dentro da área do objeto " "especificado." @@ -14871,10 +14816,8 @@ msgstr "" "Se não estiver marcada, usa o algoritmo padrão." #: flatcamTools/ToolPaint.py:313 -#, fuzzy -#| msgid "Polygon Intersection" msgid "Polygon Selection" -msgstr "Interseção de Polígonos" +msgstr "Seleção de Polígonos" #: flatcamTools/ToolPaint.py:315 msgid "All Polygons" @@ -14923,32 +14866,24 @@ msgid "Can't do Paint on MultiGeo geometries" msgstr "Não é possível pintar geometrias MultiGeo" #: flatcamTools/ToolPaint.py:1038 -#, fuzzy -#| msgid "Click on target point." msgid "Click on a polygon to paint it." -msgstr "Clique no ponto alvo." +msgstr "Clique em um polígono para pintá-lo." #: flatcamTools/ToolPaint.py:1057 msgid "Click the start point of the paint area." msgstr "Clique no ponto inicial da área de pintura." #: flatcamTools/ToolPaint.py:1125 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add next polygon or right click to start painting." msgstr "" -"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " -"o botão direito para terminar." +"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:1138 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add/remove next polygon or right click to start painting." msgstr "" -"Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " -"o botão direito para terminar." +"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:1346 flatcamTools/ToolPaint.py:1349 #: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 @@ -15415,7 +15350,7 @@ msgstr "Dimensões" #: flatcamTools/ToolProperties.py:165 msgid "Others" -msgstr "" +msgstr "Outros" #: flatcamTools/ToolProperties.py:172 msgid "Geo Type" @@ -15444,10 +15379,8 @@ msgid "Metric" msgstr "Métrico" #: flatcamTools/ToolProperties.py:401 flatcamTools/ToolProperties.py:459 -#, fuzzy -#| msgid "Workers number" msgid "Drills number" -msgstr "Número de trabalhadores" +msgstr "Número de furos" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 #, fuzzy @@ -15474,22 +15407,16 @@ msgid "Present" msgstr "Presente" #: flatcamTools/ToolProperties.py:427 flatcamTools/ToolProperties.py:457 -#, fuzzy -#| msgid "Buffer Solid Geometry" msgid "Solid Geometry" -msgstr "Buffer de Geometria Sólida" +msgstr "Geometria Sólida" #: flatcamTools/ToolProperties.py:430 -#, fuzzy -#| msgid "Add Text" msgid "GCode Text" -msgstr "Adicionar Texto" +msgstr "Texto G-Code" #: flatcamTools/ToolProperties.py:433 -#, fuzzy -#| msgid "New Geometry" msgid "GCode Geometry" -msgstr "Nova Geometria" +msgstr "Geometria G-Code" #: flatcamTools/ToolProperties.py:435 #, fuzzy @@ -15505,7 +15432,7 @@ msgstr "profundidade de corte" #: flatcamTools/ToolProperties.py:480 msgid "Clearance Height" -msgstr "" +msgstr "Altura do Espaço" #: flatcamTools/ToolProperties.py:492 msgid "Feedrate" @@ -15513,13 +15440,11 @@ msgstr "Taxa de Avanço" #: flatcamTools/ToolProperties.py:512 msgid "Routing time" -msgstr "" +msgstr "Tempo de roteamento" #: flatcamTools/ToolProperties.py:519 -#, fuzzy -#| msgid "Travelled dist." msgid "Travelled distance" -msgstr "Dist. percorrida" +msgstr "Distância percorrida" #: flatcamTools/ToolProperties.py:560 msgid "Width" @@ -15534,74 +15459,60 @@ msgid "Convex_Hull Area" msgstr "Área Convexa do Casco" #: flatcamTools/ToolProperties.py:583 flatcamTools/ToolProperties.py:585 -#, fuzzy -#| msgid "Copper Growth" msgid "Copper Area" -msgstr "Espessura do Cobre" +msgstr "Área de Cobre" #: flatcamTools/ToolQRCode.py:79 -#, fuzzy -#| msgid "Gerber objects for which to check rules." msgid "Gerber Object to which the QRCode will be added." -msgstr "Objeto para o qual verificar regras." +msgstr "Objeto Gerber ao qual o QRCode será adicionado." #: flatcamTools/ToolQRCode.py:92 -#, fuzzy -#| msgid "Slot Parameters" msgid "QRCode Parameters" -msgstr "Parâmetros de Ranhura" +msgstr "Parâmetros de QRCode" #: flatcamTools/ToolQRCode.py:94 msgid "The parameters used to shape the QRCode." -msgstr "" +msgstr "Os parâmetros usados para modelar o QRCode." #: flatcamTools/ToolQRCode.py:207 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode" -msgstr "Exportar G-Code" +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 "" +msgstr "Cor transparente de fundo" #: flatcamTools/ToolQRCode.py:273 -#, fuzzy -#| msgid "Export SVG" msgid "Export QRCode SVG" -msgstr "Exportar SVG" +msgstr "Exportar QRCode SVG" #: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." -msgstr "" +msgstr "Exporta um arquivo SVG com o conteúdo QRCode." #: flatcamTools/ToolQRCode.py:286 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode PNG" -msgstr "Exportar G-Code" +msgstr "Exportar QRCode PNG" #: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." -msgstr "" +msgstr "Exporta um arquivo PNG com o conteúdo QRCode." #: flatcamTools/ToolQRCode.py:299 -#, fuzzy -#| msgid "Generate GCode" msgid "Insert QRCode" -msgstr "Gerar o G-Code" +msgstr "Inserir QRCode" #: flatcamTools/ToolQRCode.py:301 -#, fuzzy -#| msgid "Generate the CNC Job object." msgid "Create the QRCode object." -msgstr "Gera o objeto de Trabalho CNC." +msgstr "Cria o objeto QRCode." #: flatcamTools/ToolQRCode.py:413 flatcamTools/ToolQRCode.py:748 #: flatcamTools/ToolQRCode.py:797 @@ -15611,26 +15522,20 @@ msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Cancelado. Não há ferramenta/broca selecionada" #: flatcamTools/ToolQRCode.py:432 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generating QRCode geometry" -msgstr "Gerar Geometria" +msgstr "Gerando Geometria QRCode" #: flatcamTools/ToolQRCode.py:472 -#, fuzzy -#| msgid "MOVE: Click on the Destination point ..." msgid "Click on the Destination point ..." -msgstr "MOVER: Clique no ponto de destino ..." +msgstr "Clique no ponto de destino ..." #: flatcamTools/ToolQRCode.py:587 msgid "QRCode Tool done." -msgstr "" +msgstr "Ferramenta QRCode pronta." #: flatcamTools/ToolQRCode.py:780 flatcamTools/ToolQRCode.py:784 -#, fuzzy -#| msgid "Export SVG" msgid "Export PNG" -msgstr "Exportar SVG" +msgstr "Exportar PNG" #: flatcamTools/ToolQRCode.py:789 #, fuzzy @@ -16121,10 +16026,8 @@ msgid "ToolSolderPaste CNCjob created" msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado" #: flatcamTools/ToolSolderPaste.py:1421 -#, fuzzy -#| msgid "Code Editor" msgid "SP GCode Editor" -msgstr "Editor de Códigos" +msgstr "Editor SP G-Code" #: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 #: flatcamTools/ToolSolderPaste.py:1493 @@ -16243,24 +16146,16 @@ msgid "No Subtractor object loaded." msgstr "Nenhum objeto Subtrator carregado." #: flatcamTools/ToolSub.py:325 -#, fuzzy -#| msgid "" -#| "Gerber object from which to subtract\n" -#| "the subtractor Gerber object." msgid "Processing geometry from Subtractor Gerber object." -msgstr "" -"Objeto Gerber do qual subtrair\n" -"o objeto Gerber subtrator." +msgstr "Processando Geometria do objeto Subtrator Gerber." #: flatcamTools/ToolSub.py:346 msgid "Parsing geometry for aperture" msgstr "Analisando geometria para abertura" #: flatcamTools/ToolSub.py:407 -#, fuzzy -#| msgid "Parsing geometry for aperture" msgid "Finished parsing geometry for aperture" -msgstr "Analisando geometria para abertura" +msgstr "Análise de geometria para abertura concluída" #: flatcamTools/ToolSub.py:452 flatcamTools/ToolSub.py:655 msgid "Generating new object ..." From eb2a9bbd9b654cd56fdc0607d7f2d6dea1178fe2 Mon Sep 17 00:00:00 2001 From: cmstein Date: Mon, 9 Dec 2019 18:31:37 -0300 Subject: [PATCH 06/36] Update in pt_BR --- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 344456 -> 347799 bytes locale/pt_BR/LC_MESSAGES/strings.po | 123 +++++++--------------------- 2 files changed, 31 insertions(+), 92 deletions(-) diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index bb34e0b31278918e1aaa4b384111c866df0a90ff..adf5cf5fa5066d2d76d179d2bb2e23c29e47e7da 100644 GIT binary patch delta 65223 zcmXWkb%0jY*2nQP&kRU+=MXb=cMU@g-QC?tx56Qn6hyiOE+9y^0@4Ul(jX~_k}4(5 z{r;Y{-#^~Z-Y53ivDQ9k2JlW8n{v*gl>UumVY58`uXcRT%YfrrcwXwnp7&_0j(T3T ze?2c6t7B%IgrDIW%!rXsJuekj#&p;cv*BQj!1W;^M=6Q)c&-V&Zh{K6! z(2j!Vbl{mXMmU#Q}BE* z7X{rAg=#3q*#XtyNKA@zF&VBwHLwR$;04skA7C1c^}_R#VL4t2wLI8b$- z@A(v};bd%r=dl3hdFgqjLzq(hociqlm<{U5UwK|^9Q>Mx;fOcP9FBeKd84`Rn|G8k z<$KMq=gq^BnD&ERHy0Ce{pydL*T{BwA;F#W5G>8;9wN!ur??r(<1wAKMS{>QkuwNr+b&mtZ}- zi;b{Y92?;z)S4|vt?7EqjK{Dh-bV##vA8yKm9PZ$dZ^pXsO!(5uDgYLz(eONREJ{4xAsz?uFHrzo)d{R-zz~O z6$h%J9^4jnVK>wR2e{*-QP)j!ev2CEPSi+GqB?pBtK%IE$9xGwf@xd__26!p6Ng|8 z<;PMA)j04FKgFU6L%fo>3>8GbVL8l9&Q!$Kc#`y4ii+yqNi6D@;vnj0P+1g{)Xq0W zb!;L&$62TjPfA8MDL-dY&{VF*vbYoT;tN!IWlbIu+?vavHlAjvndytc4GK$9pNlE+ ztULY}cA*|fVOh}~m436Z2>y(|rs^Gq8W@w(8vGhHwQEsJvJW+)V>lnL;t(8^D#YuD zk5Nn3HnrIUHR3_2k&Z^~tdmg#TBSNOxGy#Nue7+9#)9V->W0S{j{l)Xm?o`lJcUsk zPYf#knxh^x4E2EVs2KScb>B|ZR(uw<#P_fj7D#6^G9?}PpIaAlK;FSvn27FaN8O@xd64~-}@A@QP_=I(_5%C zdV=ctTWpMpGu!#js3;!b>SHhm_32mvcVc^dgX(ara63K=HM5s65^tkA;K#{gYn=vl zARlUq%Q@?zdfX8eJOfcdxC%8>KcP0D!>Ep3LfwB4HGtQc9}{M^<7F`)^}5LSgYS)? zpsjKNevRi)GtoJlb!Y&p;jyUWGhBTsDt0ztY21Q}>L;j~$eKMQ_`dIi3g+&pc1F7T zRD7oVUq+!mCuT>4cro}FY6%KNS_5TKH&#FeS3OjNUET4|QL!=^HN`VgX}B0);a1d) zt;-SOWyizL2NcBx) zKZlyJTd0n|K+V|eT;#tV7|3l05;{|%dYl>CU@p{yCb;v{P!E{vTElU!j&Da~?ZhIgf8^+kgXVusv47eyFJ5hFS0kszZOFqWdZ8L9z1Mj+P#8QZI_% zVTyb<(!HpWA3(K#2^C9!y826>f@UCge!CzkYK^nt6wHMh!FJ4rhfq7;6AZ^h1*~4c zSr_$yKCV6zwPcGifXh+OTZtNwzlnl^Lo) zrg$)Frp90z{07zV_o$9+N6pw_)OD9p*WJfV%Kt!-;6~tO!3a*2N3C^dhR2 zGcX(T;y%>A@ffpWL{ZzIs-f2SGt`Mo`QNd1vL|kFd8?Y zM(_`+LmyGm9lN+~*~w8IEP)NN2`cE;phmbIyWnZm%oZ^CiRLfCIwGPMQ zUetA!tJ>Dw3bk_%K*iEj%!yl2S#u55p?9byN>YvdR|C1K*_u|sEYv%rZuk<*<0|K$ zs0MRXxAXNd1NFYBcf(XvFs{IYcoehYE6k4>YS_18P0U06GoL~Y3ae1j`V`eb+M4#D zvZxC?qrMHl#xi&cl?Cx?*~e)K)KU(@int54B=1liNL<_MMNnT#F{mZ+JGeqORCM=7 zP0?oxwP8I)J@}2Qm#brITm?0tMyU3NpspW_#E|bzrl6^t ziCWvW7=^o07rsRWTWDSDaRO9FlcDy7%&3v(Ms3OEP(PwIboO@VC!&ILA?m(Om_+%% zn}T|F62tKd>cTfz5);=8@z!BAT!SxBG4gGF>+nI;{pV3z^)2TUR6FlbF_N@_bu7QL zIu_#jUMC7#)7hvmnX^~~6E?IPDxlV^6>2GlqSA2$YG%fvMl==Gfw|6=sE%z#UANC2 zKZcsYOX%x{yA+z@Q`B13Xk-_BihQGa!%^up*VXsB`ZZS%G`0tYV=u1Di|uh9Dk$G# zYb@Wy-YJVvOZ2`8`L8rf)6^bR5|wUE@C%%c!!ctsi;20Y4qZZRy)RrnMRV(5VGQSZ zGc1I|Py<@)j-Nu^|2Hal6Sg4#bs$Fz7pNkz&qh zOrW)?NkLQH47CGxL*@H0)YQ*HxlKQ*(Wg0qmT*K+li&cUdTevRdDF)B^3p+^1| z2Vm^pcHQvaE{{|HD^s{^)iFv5cLN%}-_28$d4!y+Q7}DQ@sV~;0 zJ{;@dah!{32ZVUja5HKND-N`d)kDotPt>>OP@jT6Kqk2hmZ7454=NacMdj^9RFChY zZcIPOHllo}2UK$P`dEN^SImoZP$NEsh4C3GT_XqEe&Tnhpc|Gs&!U1UFvLcj3lmc> z>a2|FSR+(kH%F~;TU5}FM7{0iqhf0ZDm$*BVl4Jh8*n6&CB7F$LFv^F!*P&vHmac= zsBg9NsF`?-dZ0JVmMk-B28*M%>N=PW`=QcsmU9Q{zALD${S~HE{wE%8J&!;=r~;~i z7N}qviF&|1)Cf1Z`bl^G52yE;#YB44fFe-sl}622LrjFtP)pVogTMbD_>t zz{jXGdW{-ciO;Qp7O3Ftj@r@Yqk?J$YNOeNdcaOpM~RO(AOHia2LFF z#u{NicqGOaoNtb5U@Hc2uX8`@{zIq-A4fI(D=KELqDKAz)uF#p>G~ek;nX9^|7Z%? zM_O=nMm01ZH3L&nJK|i_NWMcY$zIfwT)|@aFRI}jq_eK8fJ(d+=sd;3u_ zaMq`we7}#=G36-x6kCZuQvV$lbc;vZNH<|L^&P1F;1w!eL&sP;rbacK4;5^cUA-eJ z8-}9>xCAvLD}4&;;Z{`7_MxKwS5&Y(K|Sa_YHH(*wR%!#24@b`PFff>(rTy~YUb*F zQ8PEn)fb?i=dY!pwb<=W97E;l6?egFRKxMc*$v^S5f(xs7r9=;QmP8U%@^*7cH@x14#4pp9D zpIj|b16YPi;{&K2@SZ!Ka-y|U3`^?sv|)dqV5;xeN;4k^0f^x4;H6h37Zmy{%{JLIB<4Gh!>9IzOnb-|4e7T`l8-4<1imCMWx3n)DnMmW}0OKEQc(S?{%V}DI12lZ~9-Ug{tA%V5Si_HEW2OHyx-MR7jn(tGqYg>VkMMkQRjxwa!z z$MV!WI+vpwyyNPb=h>g3wngm}Yf&Tp4a4ybDm&88x1A~nDi(^Ot}lnd-=lp>p$-T3 zpr$;*0+&9h;A(){>N=pZp$}@xhoiFPD^$=fMFsPERJI&K?J(z1+3*0v@FS|du!X!w zb5cl3K@FF7RzXF5Jy&m!8c8qI2!^5_I2zT#X{c;ig6hzBuKpvc-NUGkok2bL9+t&t z3(0>SD7eU?yc~v8uZ#+^&ZuY}{1O(y_o%EXwAj+N8TO~%6Ey=jP&4uZ zwS-|yEOw%okpBvzj_$x0sC4$x{1OM>fb(rZ} z8$cP<%rtlQM9tU;pMuurOH>aRx)W>N@onz-aSVPrIRAC$<1VxNGht+i=M}-cw9{fa z9isjvR-?Xdg{}Qd)RMeKb-<7PKPx0brCT~|faOtJEjy&Ms6e?8n-85{F~@ zmA1CCQ9-ucxf*r-I@D6`LM`njtNY$l3YzjHt1K^zq8{8Gb$lXf5+tTaYF}ZA6(+=j)c)pQsBTqelJ))set= zc03(w?Q@_;6ou+wb8Lp)umtW$weuPk1F_dwETzFTJl`uyK~qy3TVPMTi$_pPvUaVV zKZCicKS2do+V3qmi=*zZg?X?CR>0Y)ed4n75r$Lu)>*J-L0>(uN+CaXKz$2+jcRZ$ zD*BIMUc8A~k_7AREm#n>1VvFJFYoGgQ2Rr3)Y5cy_I2lnq1qj{p8VIE%;$inb`5H6 z51>YP4t4$?cU-@V(v3+`*X2NEPf6^EwJ|4dLJj09>K6jfF$-qcXfqUrG1Pl(^esI$ zai9hbyUD#|P)pDk)$lA=--`;;JE$29-E8$t&M4G|)CRS`jCb|bu6`O7q)&Yc znxfaJwF+#psY`_#X?9mHjr!!Oh6<+ks44G_O0N;9`zJaVp_X71D*Asy1>--c7|XfU z?)S%1(2XDYjcI zl|y35_j*v!6n=#o@pqUhgdU?taASw9*(22ZJ-2n72ItO z*uxKl)VJ@omsHh#As&h2jllrd7dl`YT~So~rO;RKRidDg*1`|i0Ml?|{e!&au*abg zuO%KmY`+7|b~MEMiR*@9NsgENncosq?{_T3+lE<=+e}?TrSI>knSJVxe?-kdykE$F zjWFpic0*3o4MkA-UkSBV?NBi?3>9QEQ4M~NnwedwwLOgCcp0@+uTilOcEbKBBsuE7 z{WuLzogn`;18q)P!(CAw@=?Jz8x;#HP#xRpj{l4ks9(e|Y}$Q#sJ#W`zBk{Golc~Kpzf|{ZFs3qu( z+7E`h`b5-{Ektd}Td@?LLf)#r7w4SyGzsc~Sy9ni5EZ3GP$Mnp>M^Jh)wQB&F&^}w#E z4XZzDi=BXqgc7^=clvTTG zYg`+(=1ov**AA7xeNj{BqeiqABXJjMDsN#fe1*d>>u>f^x)6s_Pkk-KJB-s&Gt=a{ zy}a6AC;v4ygE>$YM`9&Bf&($$4SS%E8p%}WOjHLKpc-6@>gaY8y%Mw=SsbhoCw-12t3g zP#s!@YJV&0`eUdi@vlJ8)2~-EJxcUv}L)3F#p=KcDj}ZRWI{BB3LJkgeN5#O`s2%Q#JN^`vR_X59RvV24 zsCU3xI0KaxH&G9c^QX;3LR8vjM$KSZR0k@eg106%Q~vj-pfvjhHHD|0x1G;W`$DY0 z%rvMG4&`nANo)W1Q^z&_O4UPX220cy%4o?1+FLM?3{)QtLL zDQL|WqJnHIDvFO{dpv>4b|$L1oVyjIaEU|Js5qHLB;4m>tWb*1i+!hGnSW+k)!oUDQ;@e`8yAW^6;f z80z>;)Qql1E%A@2B{}Kpao)1^^L#HI1x;O6R8&?#y#?E%M$jEKqQ1^y&M~O_CZm>M z4Qh`+?!1ZGa-XAOBk<15fC|Fm=&MkhLVxUpeen`1Evvn^wHk$LXeuhN7hqPFVll>0 z-~YkBcH?}s--tFq?WBuQJLNsBjH$R=`$EdccPZ!3~B&(QA_d^^|p)^@B_iOUU(o7T;mp~ zVC;!%a0sfQuiWvKs94zS&L2cQ@G7d|XQ>K#lYw>VfxM{Ud55iNox=+?bPk6ozA0RM1U8-G2}@bLUXc^{-RV zd;bCIrI9^WAQ*H7Fc>7LDX)#%THB(6^m9}P=c5|lfLhz1-0@SW5#K@WtgkT(M#Q!b zR7E=A^KYB1p*C2O3kG0y{2q1VOH?{${lw~3Q5(+yRL2hECwK{!EjLm7#y!-4lE(=I zchXF#j@H9k*bcKQ|JPB_jb|{}5b6OpQBzbXZonhhy(rWOqfyt_b@e8w*LP>s1G>BV zFy{!=l#fPrXfi4WX6v}}e-#CNAZ$W4umkl)a};&ML(~l~-T6=ASw~W%f;AEqWQ9@J zS3z~Wo;%(ebzNV~ho56`zd*k@2aZ$F14H85g%PNrD}-9(DyWU71?mCAP#qrU>XV$a zoJ&#P|7%fccNEou3#b9!Ms@Jt_~gHW)di{6LU=i!(UBG-bfsgGKyQHkJQk z0S^3!nyMVB1Hli3B3Pb!Yt+aVp}u_1VF^r?CJ_9K`*pA~^;gbvX)T+^pl0kx)WBY$ z_K)|dp!8FvvqHEtH>v|gQ8N;aWeNYGXl^&3$!u^WRM7Ai|FqOQA+ zdWrpmTH4o0Q1kO&1`CRmsPv0KMSDJXJPNfGbx>2>5%o43?wpC*2iBt=ybrY`=TRel zfC|FUjP{(Qs19Yp;NPPyN$J+KSvHQnDG zU+<3ZLp6ND9lwP&s6R!5pMRTWGgkrCk$PFke@$UW4(P#sQByn$^`J?pp3g?D=?YXs zKcIqZFY3C(sE+=My8oK<9_m5=I774A45f1B$m-jTB{`r6RYEmfA3I_*)DF2D)zN3D z;PbNCQlvwTur_J{b5Sw08nr)cLfv-~)$UbSzm4kf6W^V9?GAX^?S}ZMDNloHI5+CO zUfR_=qLyF)YOOb5F5H2+@wPjjAi_4R6j+es4KN>$MYZp5qM!y2qNey4R8McCdiWQr z1J6)jETNH>hUrmLUl{vg6!yW5sEsK+hkbxFL%sKhp|WNHX2Uhee&Ktktl*tTb>u3l z;ongmd4ih47pNU9kki)i6I2J&pr$+HR;Cf`ViT zDtI=d9=sdX;6YbE=e&x_@7t~(mdp11_^A6LQCX1B)hnPju4<^6Xp0Ks(U^kgd*dl+ zWb;u$xCGUab*P^1K#kxuX2<)ko+!6nmlHJ;g;Cd+Lv^q*DhP*SIL<_+`!;v{2nPTD z&+in}9@4SW))bFBR z%klEtYdvRv@?SSriEy7m&gU@6TC?MlLCR@PqjC&GWFO61Hr#PTN67` zzl)WydZ9q@FZfPH?I+m_+v|7&s-uT}3L5bl)Y@Nk-bKa0Q&)e7>QKBQHWR5)Gmr!I zz%r-?m!g7eE$aRa&Ry>OLFXx_e}#gg_AcrH58a7ZsF8;jwGWRBsJw1~RdEvL#rp?1 zH85oM0;<73P*eTH`5MEihn2M%i9r3NR1cfur&s`wqO#yW9En-V1-$Lb|D`Hm z()P*a;e+8V5k#hAI?n1kahD%g*7C!Db>2KdR^^P+J- zhE)o9Kj0Dc)$r)b*6>!;)Z9kB9MV-W^P*-Z3Kb*GP{G<6wV@0^T|W*R;B3@JbRV^q zhs4;-B}BE83YG2!W5|CMs&YVi*~VS?IVvc}qo#TahT$Ak0}F8+ZpTqrrmCIajmfC* zN8Nwk`5S6Uen&m$BWhpCSk1Q^@>a8NxALeHjZh7BbjJsyMlu;SvN_HT?)*{bHH_l? zzo?EEtR4vdw-w5ucEnAn;}JFNZClW%pdgDuO=%NU@O47%3%yZOJ`k1fqftRP%bj2B z>MKwkUx&JWH)_PkP)lR@4mcL$+w&yG)@x2X3K$QVFkXBWUgH zf!Z*JUMptGA-3fBNc;(};sKoBAmDAp)(tKC6EzA1|H9)LT(A5e z)7UO7)Wm#_YG_B(K=9?1yjj5OM!hs@B+F4VwaIx9n^M2v&gW}xBQJxxzM`ww!z|RB zqLyeFrdIxcK|x#RV$|CH;4V0bdW)UGo_N_EuiV07rane;yge#dC!nH!0cxt3p_Xtx zDk%4$mi8U$If0h$`#(Mf#Xtts$cmwQUKJIbjZqDDMn!KwR4jasO5Yi%4t$5YZ#ODN zj$;wLiRx(bR@Q;isDVYdBL6id)i@w~pz?DHX2&(Cx7le7;5pPjaM9I&LyhDHs-u6R zX5c?mkbOX1pQ^QGReIC_Bk&xSXifglC8*-JvEWchL(Ku`M=`f=bfc4dfd`G1@6 zX!n5k8xHFg2>uCX<354lpKPAO;ap#>ukG;%u^jdHs5LIrk16Is!?7*(QT?sMw{So8 zECcK}DR)pa?MDyfCme2QgM&CQYmn_!@dw)je5}RsUDyd@4+(hRU{BQXk60IL4Yh$R z#Maak4YMCKdf^o6^RXc27;ZD$409^~=ToT8iGx@e6Mkkv6OF15#B8_FG5G}RNG%*n{hG7!#6a*L`kunB9RGZhc^9?U z*P3kEH3a)mpNH)+?iBKW6@{J@CSdZZHUkS$Q~eyXgTZpW}HTzGqsJe zBK02AZE4nF4qb;8@Ey*;sIRU5E0&_3du^&e4L5IWmNS^@Pg>4=JzrOu>O*jJuaob2LFdO z=UR{d#Z1(T%(I|sfcdD;MtwUTLIvwhtcl6y+lJEy<52I03c`L^jQY3*f#9Ev{@_!{ z&w)4#t>F?FPW>}fnk~fnSa6X|=`W~}K0^gvp~beLOhV1jO>BVKmjt|aIK+9`S!$`p z)O=Kj{YMnuQ^@>nz6I2UeOCp8-S@_?4tRUH;Vss{AHFkVt+DreJyb9aN9FS})D+*tdRTa^ z&EQz)X6(rE+o&a~^1TJ;0Mtxxcm9C`l>aH#*&aRtHHAN;Mv`#7O>HOVF4WW}+F<$H z9v4!di&e1LM(f~bIF9;Hco{2iBF{17W^)&6KWV&$?+TwO`Gdj_9H_G`;O)k^+xY_r zjvv8;)PLS#`@)o+wxI-eS$5>X&72>O{DHZb?}vc5m3o@pcKjp`rao#9-xr+!4~tVz z{*%Q<4fOSau$F?}+drT-nx9em8M4n_pJh-VrO}uGYoOA$De60*HD<*Dm<4B}_J^IQ zVExC{^Y6C~birgCU$me6S1@gK2Yx|)INWgcXQ&6pK44#~$x-#}sE!vx1z|L%!3Nk3 zdtzcdkHhdT4#zeJt^F&g0X;eB+b;%QaX`V6>5v6UEi6F&GYrGEs65_?nyFn_0gs|O z68EsBV;XEuy&vj}=@-<4F1h+`=VR=}@z*|u!xXw4v4-*S`=K00`D5VCf-UGvNqN}gLPpBV5E!D56=iNbO&i7KBu(ivEn#!`M z5!A$)*c`RyPp~$=#ZR&NNejXqs36>fy8j$%CVoe?^8_`6?=T<6J{9nGgzyI(SW5Z- z=rrlYr&i<{+fWvswY7YV)wv<&oHaZhL#Z!8P3dyf41Mq1fqL)(=PA^Kuc8KU*B$>C zb>Dl8rT2fF^R_mLFgx`;u3pd8KXvsPs0KHnqI(x=#K%xsa~V_NV@!@=7wl)gG^p#V zpss6->Oc?l)#E`FbmM4@jdM{WT!PtfHR^^FsD>_~^7l{di*K+d_Pl7>vI8?v-;IUw z3hHH*;F5iqbjGPH!O2VHzfQEgVkfp@6eluVwLi0M`J26TrlLl^6AR!0)CTm_`3e=h zACQ&w5?`|cB|{A`7wUX5)C|O6H*9&0{69_M5C@vz%1yfV6i)yed zszU=%(LDk+W8Dr`?Z{Eq#Ga|}+?^>^tAOZXkurM~TtK=8jf80(&;?KITPzDGLF ze@F38`(f_3d^D)nLe9f#82(na=%td{@^RhGW z(7q$`;^&-igj3YwuN1!EK$}N4vOh3d^~aWuORxd;L#PcY^%MI*`5rS<{}1(+OZ~U~ zXw?|Cl$)_U-a<`%_&@emtcSXO0!C{@M<^u5PyV%~NR5htaMYR>K&^2ZRM5qs(yAUR zsK%m3yaSa@x3LzMerkVl;Y-w7Pei5p*Qh05jlq9Mzlj1%=IuaTxC?dRe$<7RQEPS^ zwFCZ%KjK5IkE@>9e()OA(FD&eI8&nrmJ=0}B~k5FLA77!Ir*=2=*$5*3^kIesFCkL zJ@}xjAHyotFQ6Jq|H3+)9aYbZb+8y}ipQaX`2cF>enV|se_&;N^}@F`F89(J=z!{3 zPt-;-29QENR3)uA=+{6^HswxH5MjKVbsa=&+=I_LW_C6E%{@s12&{Yx_g%8pvO$^A=-mj(_vk9(Wta zQxAD(9reGYpd06-_Uz55B{+?_@ipp$Bl~-s(kRSN{d3e-x)wFUeW=&)&!`RU25N)) z1GN#oL@jZg4;I`RkeT+qJQOq~6)`<_LapT})C^2?$7i8tViRgjcc7N)4C=Z+QC~dI zQ0*o9Xzdk5J-8NXpzToC4aHQ-|8FR0&(H;PuV19rfR^CzeeS z8vOe~t5F+LtdwR`RE&Iw3f6t7j$Xj*_#&kr8vG$LU8>Mv+Vw=G*D%zGzd%jZPpCCN zhuWI2qhjHa^F1o>6Q#BXWkJncanwx4pzdpiy00rLtA_d%6!kOQ1?%03J*XQmp*nCM z^?>)N{UJ#jdq5^sHsnV|byd`T9Z>fTbWT8}=R(v>Y(~wDf0Tl5xPiLiA7@xvyCDtg ze16pVXjHZ|LOrk_Y5-GEBVLWVekbbsNl+OOlWA@zJ2&C%G5`UQ;3R+~SQmYBpW z86Fz^X|*5j;DYZ^BWs@}H29kR9F;a3@Hae)8tL+^cHI`#jGV%z_z)Gum9p8=3_}fM z25RIxP&0B1GihUZL7@qz$Zi`=Ps~bv5)Q(3$W(dRB0{~2SOb*}Q?Wi?!kU;X(mFB- z)!`Yapk0Gnimj*t{*1G5R1Wfg424uVLxb<_d8n;-1!_-UhuToKq1JdmhU0aN!v^#L zV^RMkw>=;sYG$%v5iEpS^UjzBC!^AD9qJu&GB^3J2fX7zMvRlkE{H_UKnwXl6?gtIYUeDbx`M-pM zf@K9(#>-d_GnTO6>WyjC0BV1j>gr4J9razPncH46H26m=sYV}$SEWJ9Sf^!sVYL{aU+>2`G9_spMs4t=T zWo@dHp_VWm>Ueex{{5dk6g2hG&iXn*y#s2*Lr^zPLe0cXRM4$MrQd$k{YTyL%g#rr z`@M2za@6&a*cJ0)@cVxzg`^yqk80?9)JtX$s)1in>3IXyz&q62ED&WQPKvrO6Y9PK zsPpBpBi2HVcq1x{cA#QnUljST!Wnnq7AmU$L3JoWc^hda%uBtnvn}erDX0f8M9tVb zY=;L>Z@X;KwgHtwb*L?BX?mkR>Ar~e?ScQ}Ks?rZKi=cSi3*`!C~m1}9oT`vnLtJN z4b)P+K#e$2CF?*2R16ftxfq4I{t}kPCs+V;Rki^&_bC+Rz!#_!Kcd$5A%^2eR1}9- z2@U>y5P^C?PSjKuL(M=G{(yCH1jdUA4bH>_oJajWZpE=x?ZG9hSv!7bSLlyQ6Cc&^ zJXCZqLyce$>cQtR5^tlXFiv$d2Wp98Q1=f&WyR;Ht$2kyzX3JSYZ#;aPf)`yY={*& z@fqgCJ(vscx${YC+BaTF)Kt#Gf_MhAU`Q?7NwZ;1>eWzdJ`)vu%TY142E%bTrdR%7 zr_huGuTfK3zqTzw2OLX%Fz&%O$mQP7I-$W|RFtf1Q@jB+L;XafP=-UgG!6~^vDv03{5(Lta??=nPtKoe zW-q1f&23MAj}tgwx<#nBh4TknhI&hJNUKn9AEs$-OL7Gj#J{`x3k?4K-w*CY;x-o5 zSy5?H29=HtQB&9ll~#jMQ9lKhhVxO`u*P{1^+j|IyWng51lzT>CFq6|s1I*T{_Dcf zc6LKJ>Vf4jH#Wz7I1aPpW>g0*p{{$3+L+?Dx8Tcxk<=SGKf{L9mpNaeVyZ?5+rkHS zApaG`b2y-ex1;JOumnCty)?3Qw4Z$HVkzohV1C?(_3&@ZjM1Ge7~7$;VGNeX4fv_9 z!yeeWv%N)s_9-;rKreLBr1Oop&B@e5qKTrV`z6fpBVL0N`qR8tf&V^ zp=PKds-3B*>t>_g9ZOOB$Vy~i@VzY*)WBZU)L(VJcBbiJ8&e6?hEyLl(q5<;8jkAN z*QlLz5o!lLi_v%wH)4*S=4DhYP3)x^A^+A>&_=Nz)w46f6O0(OrvIQeq$HnOM@ymV zjj=3_#ESSM*1`{{nXK8{I`TEDqyIxK*>2R#9K_&%NArXV9Jq|?$X#S=yl1G9esJ{! zeQZfmqpr*0>cw#o^%zvp?M4mcK5E8ZqDGvwuhomA>h;mr2nSP82WI1ExC{qkrhfJ# z);HLj`U_NWcIt2Gc?q?b2L@Q07RJ`p+u;=4i{r88K%0?Yu?+RpgDkrm4kG`Hb6_$D zqVNFff{?-Xn~QR&2aHFJY#Zjm-%&xCXo%%=QB-udarQ%{^EgyY%}0Ir??TN;&7pR@ z%TV%PFOl&asEylE@9nT*_KCCzwSmMM9_pQDi*1g|-&~)E2LAwICYGcA9(7-t5w;_*dCALEX+H~w$1}slKOen0}_t5 z8Ow;;*_vY*jzzUQ0rl2fjP-FNR>r^>n+d-vg+?6cfO_x_)LU>bYD!O|8u}fT*RQZA z79MLcvlw-LjdLGnp?(p6(DkU8*)q;zD{{Pzd>KY7|8G%H3}pGjehO}e3Z4z9EGYY> zrAt**RM$h^k6vrkh}xspbPH+#r%+q&1=Plta)Rxg8BrTlG1Lsyz{JY`X%w_^EWvDe z9<$;rRGy}vXbojYWl3ICM@l-Ypq8QmYN|V6I1WUm=`2(luW;u#I}c$pp6^|xptZY? zdYdJmWK&oO2UBl|!|^z_!77vO{l5a01rMD`r`Xh%K*h)))PvWfmS{I>&p(Um@Zabw zJw8&P;~cm!NjABRB%DqZ(-Wm2J&EQ6nFZnz1>knOcgv?t9dd?MA%| z_F;8A{*`}e|iD|xFHke{0Ttz` z=i8K*Lp`V!sv|>C4Npe3vmCWFyHG)U8MOp|qh>T@fwh+zvnv0qP|%ItP*XD!b>n!{ z+Aeg*_oJ@+8TH^Bs1ZIz&0wsBp~1f)nGQ9RKDNYZsGxj^x<2_L+n^#b`0szaP|yv1 zQ9&~bHKkvmMm7hvlWjnCa0lx8y{HCHp?1pK&PUjk`hTeXqwZq6{s;!BUvyqUKa2y{ zD5&AvsHy)8^?-lf@sK4}kAs@pG^jN#fpxJVYJ|&C?fin8^0TO!yo-wZx2~RYsV!~Z zrR0ABPE_H5E*OLw@ic6Xt572h`PMp+0u?;jQTbj0l?9z}EiT7$Sa+HIs5KQ8L#>wE z3=YD^)JLGU=5xz^8_Dk+(8lw@8NR~uxgsjqx}$<{9BPKvpk`wL&;C<8s zQvT1DCOhiB0WI;fE~M>RYc6?|Wy9eWsv-f#c)JzmW1z|Mm#%8Fc>4BP& zFHs%%A8P84qSpSBt3O1=%v;nFrCM(Tioo2|V^A~E4}<^ycM=6PFbDPEwWtvsMBQ)| z^`KZA?7EcBT&NF`a;Og0z)0+h`SB~~9&AGW5$bJOX`?;IM_*Gs#~t_qRX>ZtwMQ*Y z@=aFHhZ<2$REJxjW~jG2J__}^orZe7euKJh5o&2Rpn5J1S_t-eTW;v#}2Kzfe17iLLg4a?Thm&+)pbpq_@BnGL8Qz3BX~mHbz} zMsBkyY=E_>_rXRXyr=Ov^`txOZFmg}P>;LQ{%oie>Mhv|H8b;2OR*ZYbca!E{SRv7 zad%nJ=5r4ADHP(wPpF3eMMZn2A8cc4h&tW}_27lBegbn*f9>koezcL*Lv77NF(=M+ z$M;|n>VIGjOuO5@Bm7Pj^m18?(YOW6;&W63h4xs_TVN&XBT+GN0PEs4tciK|TKW#f zD%AI3J&gU6?H^51ulE_K;M|8~oA3QiL3!%!vnWrA1*t}0b8Lc&-i@e@=#%}HrWH}y z(hwCxJyF3p1U2OoQNgzimDbx)9Y2b??>1&r{=cRW&Vh^vY$l>m^%zu-yP`Tc3ze2@ zPz~h zvf(jmNnW8|!&wg5Mih-o+YYFg)Oak6Yf)={12yHz4%>q(;Fr|vV(`EJdx?Ug_bFD! zkRujMF{lUjcFsX{Y@hQV)RcxFbt6N?NDJ(Vi&4QC?`P{sq_YKT2mR`2@?X)tkpp^5 zU3Wf1O;OxqHUp_q-vN11$IH9pwcYU!sPr1-oac`3ah}17r1KqAY(@S;uv2gPi*NZj z_k?XEw^3{QCu)tKqaGORq)l;h)CWXy)XYplWzRO$+V4T#cNDwgWn7HWr)-9AqBg82 z7zdyG6cjw~QE#_|r!DvjV=%fg2giG2ar_3g*2ht6{TLNg$i=bw*GHM_#P#x=v zimiUA*YbGO!2Br`%2Sw+3bw1LDE}KZlGwl64XJS~^-Qk54AsDQs1fZzb$AczffrEk zkejGreUFN<3}@|!*gVKS<9m}R=!T=HnfMiT<84$&KB8Wysm|G+UkLxAJ_;4p-OtZ|rXa>GO?PSwYH!gH;LUnDly74P4fm^WwK0@v7 z<*!=sO-4=O0n`@z2=$hW^_v|ph^n{1a2${7=t|V}KRa)`^KX75|8+t7Yj#69RJ{!< zN=Kp6ang{^rv)YMa^&l)P__F)lTE<erB@VcN}8j3+7&g@@vc7G)weniqn79*>Ot3?4^Tn;A8Lt0@7jPOF(37& zSOv#p7v=vi6xwm1@E;aL-(W22dz=SRJwN7*d(R$N9TgKzP)pMTwNnnqrnn5JGgEI+ zf7yKUU+f#0_JKVo@FK)>`0a%FhC7;`GLVLUj4gN!?h?h3?cQN?;ztVLSGLUM&Sa^M%~!! zb!hP4|9y^1n-p(s=gWj@s5mOfYNOs6txz57=Z=rXDb#1629o)${c<}eY9ktqti5;Z zE%{%ULe+Qn;5n$NUWJ2k0~Wx@_x7RD1ohy)s9^PxRpdWRX!WmABU^%c@b{Pvx4Gk2 zurT#|sE()o;M<;@|AVb{DO6rpL8VC>R66!UrQtH1hWk}h3esBtcV{`4OR>b z3+@-qaU1m?Femnn6&76Ud8q65U|u|r+K578+sLz{23!j>=>6ZAf`YC;Y6~8Yk+=l4 zQyoFwkl>TB;F_jHEkSl?4piFZ#t3YMdf*t0#{Z#~?w&jU!PT?JVWxP#SC)c;rjia| zD{PA$UHu>`s*gJ_p_b;ZtN(|}lCZcoV?|N>LkudW`e8}@8VBQX9D)_%h4H`tL}3?& z6Ie99H4u^@Eci}Hj*5l+SXt*W8i(N^`~j7Q1ryo~MxkaZ2DNY0bv8#0pd+f|eNk`Q zu?hL#Kd4DzKL;*g!bD--w|EED!1%=0@HEt3KL@qrtwjafG1Tky4l4aVqSih`5{rc* zs0TJh?T|fC9h`!RaaIz3|EWCv9|zRXR_7V#Bh(1vB()x=LalWp9E)F|W++}VJD&vg zLuwsYpNM+UQPf-Z66*S=sF-`@Q&3uX$?ZY$Q8%P@=0eRxDR;gSs>AhBLDdeG*F*6O z9ETcl{1kRwCd^4a9|qr+7)HH^tNVQ@Xl=%#8lH|yza`iL_hNBOo6_>O9%>0@U^s5X zJoqc-#rLRm&YdbO_y?NpP}#H|_23Jr{o^X;SN=bwpeae0+SVo<)#F^)8XKT)+=wZ0 zoAVdcNN=NN;yEgd5~Q)~B2Y_L##tRTz^14f>k_P!fBh+_;nAqznS*L@J!&nFpk^o} ztp!~o)Kum~Emc`mdew6E@$URA)C0dm{rs>K)xpQ80mV)i=Jiwl$EVN`M>u~)bs!?W z?R@1>4U9si%{J5q^9=QXR2gh%i@@sCYhwePgU#`QJ6}1Y?FYS3!8ir|suWgHD2#tQ zvu3iLtTF2NXU_Gg8*gKMe1~q{2(gb6J)Xbn`I&Y z)xa7K=z=$>2UN;x4{n3X>#wmAuE$*X6m@-uY-VTF1J`41eD01{%x-Vf$*6XIcK(5# zs0Sj*|Hc%$M%WtfLB+yx=PlH}@DerE$s%ow&Voa!=XCXNQ4d&+1@JH`cwbYH8!E{5V+8(+8sUFf5v$~4N<;W_ek_OQb6Y#f z^4iO+E|%rGfvAmZ6UMr5S2R?1$>mICp#os=c+St@`L7cT zIiR%Ih#J8O)bX3Bkvv0nAf%LyG&w5W@}dS%9TlW)FdO!9^>0w^u0RcFA8ID;v7@YGepw3IfNG(pegf9U1(*--qi#%H-Wtk;ovG(Qt>sh%K48=Q`1^;yQxY5DmzL$`KrY0$B>ccS@Jg5%Ep!R|0sF-Mvg>evS%~zvhVVA34 zbpDA7)>o+eVpXsiNsDT~0A^ACSEZnlbjN}?3N@vhuonJ?nu(kht)V8U26~|G8-q%} zd8nn^jGBQxsI@Sso4GDg+1?FN zRcr=oU>9A7`aU>-{n3lDFR1~j{beC4#_nN$%v_cHS5N9tQ1o_3rNtD~46H$IH0M!0 zzlvIl`xuV@qFzeLs@dDFBSiS7q+Szs-@xkR{}>AMIlvFXUd9?> z!CxF?tP>XeuT`x!W78DJn+#`xF#J!%)F99d*M3R0meM`Yw!1{V=NG)2JZ4gKF?CDhpCIv3e2I zlGZ_8*AKN}O+@X8%TclA|3pC}yn}k+D_4)#)Q)F%7DbJ`I%=lsV;gLN8u>0%2altI z_`LHrDy^TOvg94AV=0>jW5M@IQqWG-9u+i0P$QX#YIr;L!=tDNmuhauE28deh#Fyc zEQF&`Gq?ry;GbOmBx>fapa$|76Da>*P|$+{Eo|zNqh=&O>Ubs8h#H|D)E<>i!%!VK zh?==8s0Tm9viP4nU$mvQR|B z8fuAJir%P>e}M&Xp{t+3y3~J1t$E>g_RfgGV$_GBf^|bXKP>pm;$7}U()JcaRZ&wq z3^i3VQ5{-}%HwUQ27W}1{4j>&1yp*yM8!_B4q?In)@wE#L46q(#PE(51ND6hnu?yN z2TaDixD*xbCs9*=5!I0!s0Ti9$KRkv80cghN-B(?o)OhvB~(Y6p=Pi<>iVHhe+mVC zU@S#V?N6wYpGA%IF^1zaREJV@whm=PH5`H3$%?z<JE;^*N~fmRQ~Q zHd4^WuoIR4zoMe}8LA`yp&pQ|i*+z9Y9x74X;cQou`%Yt!KfKsii-Aqs2MwnTAJ$^ ziLWuU@;|(*-4KnMvUaXM2sKr+P+RnOsJG)j)PrxJX6_ZL!PMO>7^AQ`^+u@s*P}Xo z0Bho}*cUT)=jQ;P?|ns~AU;6NMEV{!)kRTLSq?Q5T~OID+MS<<8rfXb(yey>h}uC< zp|azlJ08;02ABeMUoH&(_rFU~D8Pa0sF4iA9Jmy9;m@cY?J~BQhM=zh+PM>V zP``;qan7gqJERl%9rYZ&!@SY>D{6)s_96duVqKrG;9sk6+Sh%-pn}BfXKSAnRZoMO zfn2EcE8&h;aK{_CdOK9M^uy0^1Zsv}qwY)4-|DIQlmFV0a&bTwbtlTZdIM)`R0p~_ zhoN4dlQ0U`V+DMSjj+G~`&=J~RjL1kdO3YE(7upLp_Y7%PeBcA!TR_V^I+vc_AA%E zs2jJTe!l+``%;e>5*GaHHM3D)K!0Lgj2dcRI$t?|M?I+cF#96virShtqh`o|MWG&r z{}=b3;ZarJ`}avQLkYci7&=Jky%UlEp(GGO7bGDA34{zx5;_dMR}mx9dljSxklsN$ z(gZ}1qM(R$72*F`=dAIU=X*WxT^E~s?^W)#_CDwAGnr}|X8m>AL2)Hm4gCvH&V@3= zt&JrNlqF08vxB3+9N;X~F9YQ&+5pN~e-Lzl=RrA#o`G^TRUBb6qRDRr(~&)S4Okw$ z4K4!HkF*}Utpcwy9zDvs*>vKNb!VIc_5@#n4Z)71t-pvq11m8;2^I(6fYGd6fic$3 zI%2H#*l!)!Qm+3ubS~rAbexTsQ+Nn9-e!CY{sPKbykmlObvy_dh4oktLlA%JsSklqKD!cnp+{<{Bu+ z>@}DU^qp*tGlFuD$OFoCUj&>7)&oa?7eLv%+f11$934uZ0@r$8y_HYgK%3(AW4&9GJ|6DTX1Pq92G zCujW`oIKKLi9$}AE?`}7GAMieVNhm3*bX8hE8E~pJC=g4eO zF0<8O6Yv|bCyCyHa=mx|%sOdjg7SD`KNt%>0Z)LD^K8a$&{Ozxn{klNRd64el43Kz z+o{7BHuIYha?H0G*U%pX4}o8NX+3q?b%C`n901+uAAwR>*M-(08=yD|{22XWQ0#w$ za_Dj_GAGXWKhhCJ1yGi>1}IlUGf-BdEhrmMUr>(er=XkzUxMPd9vlsB2W2H|F1F5< zW}vJ@7f=#U1?8$)3d%~a0nNw%JLt%DeOMigCDu8S9+X6RLD}oefN~PH1m&db4$8SR z5R^kT8kB-&fO0aXfO6SxRlEqw<@pSh2d`O{vh~aTzciidU<@eN_ZOg4xDu3;YAaYA zJO|2(JOkyn>%Yu;q*N93Wn2@qfpv7;5R?L&fU*MNYIlNilJ*77&;QS$BQu%{$`Y;t z=7VzG-vLL0 z1=re)CEyopx&Cj`sk4qP7lPdDt&{7=4c3x}Y_tO6z$+B;2s{Ap+ic;;t=6kv4R=_0 z6dVs7gzXzq@@~Ip`@^k}xGEUg#vF?87ciGIZ;dJb_&en&ZEOpQx8$UA0 zu?FQVKl2Ss1~%Sn-9!$6F^se9vl%l%H~2N^v)_8;vlZ+v_5;=foPJ<5WsI{1$^>fhWNV;GiSc#Fm4i ze*p^5vZGd>U%<+YJ;jbu2{Q}_>!6r^+-AN<;~3b9ape=%DCg= zg`jLC9Zp#rQMS`I^F3s3!ItPJgT2Aa;8?KUw>I-~-3KxukJ0Fi%~+11A6S7xvYxee zx_akq#tQT!!D?Xf^EUItq>-SUtlxuD$Wu@*-&Pl_b7cxRnQ{7y7S0B5FfMS(+5ulE zetcQBdJg6>IWaRj*Nq^T07$cP?oyoHR~QR2n=Ps z5UdS81p70gqSvhnOuu10X>|aUL-!i&AtzIX?`_6Xa4OhD#y72F6A#Muybyc^E(1@4 zDYvYLYSFi?lX45#0ez_-Ed4OB9ph7Ad$7zs0dvXN~E!@%pHM>dkOKU#OcFi=jW zk)Uk3YrsZ+QKg2FtLN> zK+hj^xeWkywJ-#>C zmT|hjtsS!yID_#jaGPBJ)!$h=)FV)~&UydX%x^4d_MVxu5C2;IyWM7T@Q0`)Wne66H*$A{V9t>s&M}qSBU?!LzTm}{g z*MV{_eGAG}V9#tf?+H!8E^_@ZrPBud3zTEmB8%PpgJL~cn(;}n0QeM?%PB)vySW3F z0_6cp9Z>Wwz#L$V+6RGo7*7S|99as=#EyUxS1udBe>Rs+9Xb=iGhjimeRgZ+31C&m z!$3Kv8^QYEeNgTdjvRLL;dU1=ALAG>BRB$V1x{4^B~Z5N+luva+RcacDLMK6V_C9I zD5TOupe*$@P>%I|P=5P)W-cqi?%dYWUIfQrzX3{ow>)-ZC71wK26N@Ln`eCxC}(?5 zP#!Jc1m)iG3@irP^6~gbDle7K3TyxdGL8qUftx@%`|pC{S3JMnyqnbprQoGtad0On z_y6nQa~lHLQGF%B+eH+Q;eppEgDpqzwDKw0W7ipM}XR5uiV z1-WWG#s@lb(qu1f9s7cy1eOKUf%QQ-yPJY?HT2N&cpWbV9q5mPa=AVNrGOWptdzZs zHL=2=Tt!VlImx?%HRbwGrX$zy2F1Og+?39O{@_(m0`G!ya{dhpafY&X^CnXal*_3j zC_KGES>nOqaBv0~0cI>`tRO&;`m;Zvln)5Gcp`6v#Ph+*JD=)&CC4 zA@r$konx87{EYL0!c)0A*MBIT#wY^7DWF`JJ3&eOD=266b5J&nH(+TnUk$tYghfM8 z_J@<;b}&OtyDr>@<6fnW^SAB9oRnppxU z$8-=F295*eT)70wWfxK3ZY%}ogL1vsYhX8@>$wEV$rj$w!sTE~#;-s*L`@pm&4+5y zU>U}qsjAol$}zbC_59i4uEo~8U$Jdqe0p0*MRfD7oa?}n$py6 zK9;-)%Dv)mQ1*`+L6&|R$O9UWu|pLvKv~Kn!B)lHK_OlX%1XQhWvBEBv5sLjP>x|a zFe_LGlyjjuDCblcP;R@EK{=@pgVEpvPzq_$%x=i%kBudCWCL0T%CX%5%E@)nbYMjk zZ-U}?8x+4sp!j8JE<`-Q0Ocgi2Yv+>0^5M6K-tjpwXpV$3ZN9+6f{5o+m4Q0pFKc1 zI|qT1U=}Dl-wwr#pe*HYpv<&PsCAOo0p%=j1SWu?psds`Q1*f2if6%gjK2e$fMr^8 zPRUNxhmH`82W97)1SP`eY9%Q+U5 z6&MN%{|vA;xS|!;zibRQQAmROU{&y`Iyze0&1Xhxfs&{%C@bXxg=i8ed;TIY8^>TB zC^O&P#=;X|YsObVi7OFi?WpxYIb@sU^H=RSh`-D9k*xHSsHi5@ERd-nwInlAPNs~= zjDEu&Kn#B(8uQVglIs6QKIUXd2Uk99ckwC6__fSdr3YBoLlRjE8-@~Ud;{U!SUEA{#l*ayQ;kU0ntIZb=0gj2o83&PV7 zwWEpruF3g?jxmIUr|~bLg<2jwAYt}fh`XUNBmCz2Jj^9C=6m{$7_=|3Ud2mfg+@oJ z_X3#ZE3YPjSEynH`m6Y7WqgcEA87^r9mn5RhA|pkg8l(KN%-z%Rypx?!+oCWTA)9Q z&cjpS#(V-q_TexF<5b47HBDo@6O6=XFahZ~gR(=$Z@w5mYhiaGIZa{g5ytoEN~^vH zG4jVkD`M_pYYLahAL!0d>{r%Uk2r=P96jpP0n%9{8ARY%oO{!^Y;{&7w7{mc`zd}U( zDXbEHJ+$E3^q->>xrWcD#Q5uBD@5!j^sh8lo?01#Z&S5z;QtD8F zDtSWD{A}e>Fh5Ns6Z(AKBwG9(l8vPQ9kU$`7Z0_J5O|x@zl(k|$zPyLBi8j_0?j>w zHjh$MCHi7p5td404DzDM!RfNcSUts%}$%Z@!(<0L@@wv{94M3_X8r@Oe7U3H)c!zpGsT zfIKs5EFtD4{vugfv5v|oV;}j&r`}XmP?xd@#k|vF*&N+n#_O<8gS;mC5Qu(Mf-sVb zl+;-17gOC#;_{$xK>-c$kEeB|FOSP!(B@+=Me{iL&npkKa(;5hSV%Gl1O-U=8xCJE z3$JX2UPW5 z#k?UwJBYH;%95ZyiT@%=ZG7cV+Kpfjov}Q!6nTsN7FdSZPvPJ@A57t|W>b_4irdh30I=fZanlZy|_;u3QOX^oSjsIHu z>9p9(@V=$MS#rnop@6*LBqiL2!7K971v`N^3D}R{czon#3=y9+ewKzAE5~B^?$R$s z+yMGsnXIwiv1h(kTn#*eb~SB@uE-n`kAq|>?HGC=^_Ac^5T~brIDAHuAQQ9CuXZ=_ zNhC^Te3^Eg@kIQu;CoApc|h!@jO_pQbxDMDs1m%vaj?#=C4G^ciY{wt{{I_ff79a& zN=%WbO%hxAUlcIf@7FK3V0R%k=W8xtPQ^y^BdnVm_i|aw3ziM`CDo{z8$sT3ZR;dV0>pXK0$mq-1CSZL)$=MrdazQuOvVqvK;4) zIEE<$KeJ_&XX(x=`48Y2%hmV@{UnIS5jz0Ae7s%wI-$F!J}2-ISwlOBPd^GOL;)gW z@atlAd8!jbB1u0d;Wt!!nRblUo}i0LvXPa@NKi9S9V>F`-d zegQrkKj3i{ww8*V%(EtC$Y;r1@6I-3$DDx7r^Hj<977T_2(rh zqooFZOTY*EP0{(`lta&!F1pn48k6x^0`4JUO~^&6VNb7xZLw5F6XI*2{{y}w@QLJA zAAYS)#AEcuAg?!xe4?}NU=5Ak=*Q725wwOxk?5Wr#37^w< z5;uze6#Or#??;Tw=|rty=D!-_UR6#3BXAN)qW` zU+#-^TKt-taRF-++B?{n;nkO@PiYO&HKJWo`ij^@cEg@Z*;T;vRIr(L1${6vOUc@c z@lg1GfO{X9q_gOQUBt6qiRLmWM}IGd*5CmMMR>OTUzw^?%!q9{`gK@%72b%Zfa4^q zN54F4-bVfUq4VI^62D*Yd4Rq+c!VP4JxJ%g$M$Ombx8UdMv>;=kBqBAI03XlQkIq% z{kKv%x*IwZzAVe=!#D!+cy#575xLK}00qp!){g#6+Hu-%@bKD(DZS;~s)k?ZGTUMHRZIy!%opA}GVg#I`y6UaCvu)5o5}1{+QNH>wgJBtGXL+@@d9LdQRWBN zK)3^}Ey?LOQ6J&h3trL)uD%!?5ku!d7cw7G~m=8+6`b57GpUDO%(p zx@B;T)tGR2mZR@U>`wGc826TEZthd{S2%CgS=7Mkr6w1mauBA+=0bOf*=?uwLqDIm zO6Z0&UQ54Anpw@JpOA)QsZO9N$)BMQWP<+?)583%2FRvp@-AR42xl>yV+hN!-lhF)`oitouVAjo)z{7h~K|W2S44a@e2I&rhBP=Jf|*BL+P+ND@S+ zseU{Cf#`;ktPz!OCh=wZUTII~SK2=ie-3eGe7v%o8CQo}WT_UifY`T|%J5tuD6M>n zaYCBp(=mq7%H!vR;3f9*6#7<=_aVjsBzUUJUzOO5^!Wu}BO^YoXfKIPVEml^V>p7e zpf&QB+bylC8db;O7)!+$NVo$13|+FLB$U^HZj(&p7zATU^bv__Yay0}a{`}J8dp5c zik8J;Dsg|3V?A-1$umR#au3zYdt=P00W~1Kq$DGiIfa6Lh1`$CpF{E;KBMT5B#w7v z8F}cpLhncaN6|4Z#-y&m>ChZC;W(}n4#c;FyjC;`=P{~uQPo0pBBRa!xffvj6S7+1 z?-bAjpI>R2AwG;Q4}~lyXuG_6p5if)#@6b!S@B@zSu6(U$2MgGWIw0ZxY`Q z+gyM0e}The40}j6o0bT%$R1``lyM5lXVULVK}`rc2SF}kM82W5)!E8868~DvZW|e@cj=T)v^sc&z2_L^n?SK#%F00D3G`I8H0q2qCB6FU=E6pG0vf1 zKm&xlEW|%!%TLfEQ6OQESCN^bH}IcGaRJ0GgKQn76;aFk>bxLieg%(P z&VvjPMClR^P~@Gg#!V&ZPQb4eRiC6qV0Gf31LO+|joS3@i4OY%@LR?rf09Vv>^F`A zMP@6uhI0`^*M7c?H0R1px zHiG%oM}Y5uG-U|?+u;+Dcbjx%mA2_B_mqvC-|;qXKqSKZF^nmU6STr)5|!8f&)6Gl zKT!*im?pGO;5kR^Ig;+gR)-~yB9T{iQQ%)1BdK^Rukke%sP|#^!@Pt4c{sx%ncUCHbIkk<95)wkFF@TTqMo_=X`XhC}=nw zPq5WxJlmJ!?^g0+Bk_B#%NwVd5#4!>c?1U^w=i0Beq5>_*+fKYMe!tTf86m+4--2qCw)!6Pr|HL% zpr%&a%&Otmq5lcZW6!o?bG> z{}V0b9Q_DA4C1>@`m+A9%&;|1PWt;HUV@`9q(70s0oh6%tK-uJQeSMvX(C1#A4J#SX-N8ct6S6iXqF!8sqT2Zm+@h+J0ZU#y`~ z8G;I&IN51&*ve9z$Oz&Kp$j8!1{|NGzl!f6@PcsD?}FcT)0-WY9Ea%_PS5;1;bbFd zI@KJc%96AN%qEZ~(qEG#qCbo75q=**DpFEy<0<9~NNqYkLLpUXAK_aP+hP2t(-P>X z!t;MJH_OBHatuymIYOBt2f^Y*XCzuAoc=T_EDwqd#h!ub@(xvF9U1dz+;Xk>Ybtq+ z?ILXz{&5;-2J>GvxT;f4H`ROAYUeYI4%$oFK9YCE=_{N!Ll{HZU*fl&zQ`TOuVJqU zE~S7D_!p&^S!(|pTRcsqh)(%7_IaA?!v8IU$9RuZVTioa7Grzbe#mk#tGe{tVEl|k z+wjXwzaNF=A;I@b*dF}~<;aEKum6|8q`iP&D7`+!gut1V@hx+OS^r^LX$2fM(dRQZ z#u1#xQovRc#i2V&n~1IkW08?0n}mG~$rds$tA{IyentGcl3*h?k(OH6B=s4Cy}Rnh z%JF|h!Zj$qB;W_eWl44j^5*C#qJK)iAIm55P77E`|1$pf@fB%}Pfh&ikR&|`N@Gip zZz$)=CiF|N4+j^Z+k|~D{XgLJ%%l@U&}1AMLzV#96D2LG6=%iPAHO>~BT4v>;B<_C z#5Pg&3(&{n_ld@fpGZA?2QrZ|*pAaLth{l));++Ojp9Be`v@#S#Uev+d`rMzRC|v$ zkNz{AeI0Soq!TDWWD7poXpLF==8WeOFEU4ChEPB_Z3nG9x`o8mmzO~Y5R|~+raDT{ zQ=LIAZ0RVj7VS2~BAvltP5u*pgDA{T{lz{4E}38*bRpP8YLQf=JaMblH%Sz7{6*T* zLNFYs70?wB{cM_i@+++@hU^f;Imz;YS$eR4i7rxCf|^a4!T-ObdycIv{(JB%M*-EP z80GYA)(UfJRo5|m!Acxp%txS%3pgJoC;jy#~s-QKrBjJI^g5t25<;RlQ((A|U7MKQtj_kiP>@q5|<$nWXl>Q0g##C@#9 zU*UU5`Q+2U{@9}_V7S^_X`$j`e({P-svr*Ebs)*Lf3sfggJ#2>55+?`uo&hbQ?6L7DdnTKt6#^XAHw|dPV_VwZdBT=hH7u5w#&% zK@yQyYPUu_-9Y?HVvnOwz$Xj16yui^bcadZ*TM?pvkQG0cxRwngrBD=o%IliB$MPW z$~JlezQQp(0v@h4Mf{r4x1-U}fa;@brM1|Gw&9xiujeQ9~Ms16V&G9Hc3MEKI- z|0zie($5Id6^dz%@1OWQ0xRKX=Z)W{++-I1C~ANrRR}m}_6R~R(n)6)Mn4!`8%RRY z^`f9`Bq>Az?TN2}ZWKOcuxF-krwyTy=EM|%w<)&z=zb#R-|N3VgZ_+@sk$Zo9Ry6q zNn|tl4@vr>JI1Qy0>?mh3H@x^Tx^fQ92D?3_MVJIzGD12{cZSO(TNSAs9M-QL01=F zPc{M%;y9i`GR-SRNwNmpARI*&D#0BHHc;Sqv{~3YX|fsk*Hz!yX?P;(Po@>eb{(I5 z#1AH4FLd{I5wlz*OQ?Hji=tir48hM7Pudl`)A%}VXFC*w@9J>?LUa}(- z6{R0X>rdq(^S~jxjP1Z&#C;6W_w>J^*wxtkfmca#hNK=XXgT&i_(s6Hi9))<^+Fzl z*HB_1f0`z#omqBdTohafVW1}6ri9}Enl^`)m}Z6U;hP!GiTJIih%#`L(iu0^Tx+p? zYsSpAKg=d;aF+I0n(TKNUnk>d=qk{Xh<;1D6s+LHPkVQ(!6C`Ve{xCcr>kMa^o=gNkk-xz!_!k0w_dWVw^!Q)JZyEh>w2(Oz;E#PP`swIXh&cl;0jq;M z(0j)7pUAQ_mAzKoSBmFI^cnrOkUb=Lq3WLy^E*0`E%ZYvJc1&Zlehq_1cf|DKacpq z`239RG>Jt*h$|)^epyXW5e9=Wu2AA?X_mbgx(u|2T#H{rxDek=^hG|yuR8rp6qOO5 zlW<(p*^507$p@kn8Ajp^%6o&HA7g7}{`eHemMBC%XmxXOWCEsaSKX%sTti=vg#ExK zBy2!`9$xDxpeNW6o<_6)l0Ko(Dfo!&0>6W&7#u%9{HqocEsw!I;INXauYxXuCu%X7 zwDLsAMb1O=5S+=_>8;MRus1-Q8+~5%om40A0)0T5aU1e2#cu>TDud?r=OV}#$Aaou z3PU#>z0!*p!gHVxOoN$MG6=K;qNS|NIrr>ArkpZlYFJ5t98X1 zGqaC~6WJ=UYL{^*Vq)PKLz_=?Gd_;~OEIdQgtv(MC^-om1g79mws`G{Yex+za;pc#4X?m!@nxJyZB8(FES0^=d?@c%E|mI zYtjIUh_HN&cZxlk(J`7E!b<2~seT8ALx(Pz+EJpjPvJ^ zr$Lo_LIaP-*{RK%F~P= zQB-;Q3&?Ymxbw7OaIVM4mspP-!!<}Z;G6|4h{Ia?-w=2j+c_LX3Zh#?(wf%L=uW>G zMRk{DCFTmT*J&aF#5T~lDfC6s<9{8#Irt9($KqQ`em}1l2A*7f_Hn6lA*qL|`_!+KIVd^F z2zCxgigmbprz~^&8_VraJbLwaxD{L9Ip5nM~t&~ zRC0WhV}RS)+v#>D^l~OTddI~(6Dv8|#yg`DoesA%+T}_z^F<995FghoN=k#%kvt$K zD#=+XHS_fSV~x2wOSxzkNu8kkrqb>tPFgj_iyU9R}bZr5OkwHnTtl-Y%S^QLnoMMcLu zQy=~8vm|S}Udc(WgeN+N=S0X1dzz-WK|r! zVx!!BoB>i-RKifl0H-^V09SNUR9r$_LLWzzqnB&IP=7p=VxdWN^-dZb<#ys6Zi*Xs;n9%9~kYoKf-qdbqqM$Kbf6SPExp6O-I= z=AjPYnD&ZKj*%j~=J>e&ahgJ?-En>$acEbD?xjEhw>Q_6WD8u9P#ijQ{_)nlo%ToA1~*XwPfUtOYrxI&O0IImmHm##KDi_#2?^t zn+gASqLnD1MTnz)c(ce(fe|5&(DshD5#b#}gF}KHB?8+sE)n496dKtgyhEe|kBGpq z$S#iXW{$wHE{;~AVZi~8kj`x*LfW@?ghzP%L))}%9U6i%G%Tofhv3k#=8mQWhJ{Bu zT8Fj?jf6Ea+#wm2D>Q__W{x%?5kW1W4s06QIyACNfPb^l$S@&o79QaUbhHhOhzt$t z&^j=}(Y8ZG+wk@wt(@0c=$boVpb$Gei`R8G4g9trZTXv^zLc5~WU+m~)SvIReF?)z@NZ}lpv zzdrZP?Cax5dHd3L6|m@)?@J#?>YUfUZ_5>K&yIa$&5;%6=`R$V_ECM4IRj%{sgsNO z<<62iEx@l@cAxN+9F1&wQZF~~+nc^r4Aw-)fGBsA!{yNJJ%Jr4DsD&=8?(8+rw$4B zn^@eZQtErBUurHA?ilJ9k~w`4r?k^(n=+=MJ$LGd34WC`revSxmpe6Zmfz3m@`WAQ z)8Fal$}^`46PKtfv0iGq&;35C(kIY8Fgb1znK4+~{*m zlH5`zw*z*K-cf^G?f~{JcFSIItd=86?+Am~E@UE6Ny$<1al@kAl~UUs_nYRE^5KME ziPZNe{NDKZI$SB)8rkxtK0D<%Eo*Mw_M=#9x5Jq@z!@JKl{)0QUuBu?nm_%z*vbY) zx!uk_>{u@EEhElc7;A+S_0CZ#^}|1Y{&`a}?DQ*@QX;Qkk)641FLPvcJA1K6asVEd zwoNVMY5U*aAUuix?G3`i8Sx+8AmsE*@Nif9FYgeZ1poi^4&e!p_)qT;p2$l7=^er& z`~81-he&7L$HX?%pu@6W@w_Z`!j N>0GIA3)p9u{eRgGdGi1O delta 62167 zcmXWkb%0jI8prXo?=Ia9QcEnkuq@r(-Q68ahe#b#Dd}zm>5vXd0TB=oDV4G);Zo8d z-0$yw=Kk}UIWcGEnP=vlUBEkkX{w3iQu#NNht2i)Uzr4+mjT0CdS09)p7(Hvj(T3) zC!SXx<6&m3iNmocX2d&~8pED?-Y1wIvtdz;z?PT}M`Hn8+Vf&znKwiZE4}r+Flj~dwvR3zegA;A%6 z!2HyUpgP_e)$SbBl&-;O+>HhC9u~&*AtAn(k3#*BkYKWm!p_uJyL!BU)uT{JH3vK5 zUerj_hlY4Va4A;8lwl!WUTlu4k4HuJ2P})p2v-c&$9i}$mLK9Zppb}oR>pQ%A6H{z ze1V$NnsGvcbJhtp*L^TEPQqHa9+jjoP>~Cb8{!qiq^RT7F%+Aka;+uC!;U@$B}0t! zQ&aiUnU4#bOR?WRF>AUo>3A4x$M z6h$>y8TH`CsE)NkJ+M3KxbjcF4ych1MUCW3R7dAy4P1rc_&?M#PMp9xlnZlFFNQU> zKH5{L&Vh~C8=qrw?3mD!Xfc+dehVvN#zZ0BS(Zwit0;C-JD&#C zu^RXso1i*eGg*k2g6DgUDJYcPu`~|FNZf@=zCSSozC&$1X_H%I3Se-9!V(;Bj;U~# zJH8IPQvVL~V(t{S{F-1P>J!mds18u5iLp~!NE@K$tSf3HeQ^iskaOz7@BRhoJaDG8;I1f?F z?j!0!nbX<>@}hF18tT5bsQZSZrgkc}#>=Qk6igT5<-xY;SpOmbxpCFTEZ#vZVxiBXd#R}LKJKzdbhXa}Icq!CWjKm!H1*!vEP^-s3L_wjw z=)8lP^EaryI)1n%T^Uq_nxHnER;cye8+HE(RL7^I-UX}N@t-jt_1mcLg%nwAXN<;~ zTK_#LXhiQ&J&TvsjTD0;b@igCq^W`>u?7~x@u&#wMZMqOqDJ-+)xnh6tey@3rCuBx zU}W|Xud3GnC<+Sw2~-0=qi(#4N~$}k2LE%%lSf#NWI=^C4{F&J#@ARAwM;AJ2=TIG zE9Ynor~Wl+>b}SLTK|tIC~M!Kk|jk>3-u?cy*eB<@?5BnMxwI6gsWGpvIfedI#e6gfflab0~N6$ zsE$uTt*Ys$=PYpbRk>LIIhUgYi-%DU%9Pt~j6gjgzq72fE-LhGQ6n0J%9+ua z1E-;;V3#}o8)|Crq1tFQHa5m@5tYkdlu<2^VP52HpDN$2a7z0=W^}y1o0aZigNCW%|{Z176QivTD;qaxM{wU6{cUFTyaT!7jK_8>nW_}*m-n(KG&f|1jk*5vu#|0vYJ z;>B&Ct@#bTO!13fv2%=2;Xk}P;i#|oKp5d(Xn($@O!^m8NO~ge+|!YzIr+L zRb1X|j%_)=1m|-8T?N+vBnmSthIlJ6eI<*)K~w~eqn76d)ZG4tn%n!R_5I$}lU268 zKRfCjQ5B=}QpZdAi9F+YyNDBO&B@dnn!cr`3Z8>8+Y?o-f%mZ2^@iTVco z7fWG*nwI@BsE^QvSP8FUMND7ILfsbCf&Q*O7xn424mBmmou^S#`x7cc{tXHVC_F`N z9RIm`ptf}=F)Gw0Q5#ib)Pq~Q`f}79uSJb$H>$l~-TB+79Qq$BaxYQKFj1Z0k7T}= ziGmt#gSxN_s>gj$JspHfo-wGTnu6m{)^nNS^z!f-5w z!Jq$IQz*`X{};i>~Obk9uHRRE`Wpb!>)nBSusI9yO(} zQ6Dgc8}I?6_1~9*ZdiqyvqPw<_zkro-9km?4r)Y?Q5|^ejN8yUmKt?kR@C{ts0fyD z^{Uv6dSld7Z9-ocoTs2Y`8sMjy><2QMpiG2I^P);fw35a)35`+LnURK#vxuCT#4=Q zBWhsnn%F8DhH7UKYPIcc!utQ5!fOr;L%*s0oc-r#8!H1|V zv|vkpMDhy;ERRWAg?L*-_yq&%2M(`Ih}T}AegSa^7vg`Y$jtZIkoBRk9arLasATNi z&fa!QQE$1+sE)*KZ!eRqs8urn^`K#>T)K){CCxfmhkK%y+d|BP8&DCvjIq#vM?oD3 z>1aul469SmjOuZBcYG~Yq`nJ7@ii*h-lLK-RwrvPDQW{tjg7Gp>ijy?b9SI|=om5u zzIUF&Y7YE`18`zz`;qD$7Nb70i$!1;YOe2LZTzHbh&K(pp*r%?`4ROFiQCOOnjAGn zsZqR}focVqvbb^HS=nKShwXL3@gLqQ`P>>Q8E&e^WM#nlfwf59@G{}1>oQCszO)X1NqA|2>$*T?V8`q#)(aX?9x1r^E&EP?q^S>GM!;aF71()F>C z6-KS|F1Q%Sp+=UO&m`qaU2KS>QOo=y=EZ+dkxAW;^{)q4>t{Wxg?*?uMJ3S*tcT~Z zE@ti@;w`{FI342*u&JAm>e$z)ksrZicoy~Ham$^5h1z(M540rA;Zx9h&5P=BS=5dF zP@x-(%8doCz6PVHAHYa_h#GOaLAFY&qn7D#)IM?ub^R-6&cT*L%}`0|kD`!-!X)QH z)bd!5+90-|=6EOS<#Z7<;A2!$B^+X_A{v!ktxzK#j#?eFQOj-@hU01H1Ed{(|MRK) zK>`(til_%RLCx79RD)AcTl6Z-hTo$e@Q*X$P`fWb>b^Rt2zEwwd>E$1d8qrh;wM`F z7b)lgk5CuJ{>Xdp*#T5?pLWNupqA%tcf8^- zR*}|!T?!i6R8#|7QQ3J2^}xrdqU)bl`Eg1Mw|yV(kRq2EraT4Gc1ptQ91E7s+|+4 zi2R7!0e>06`d29Lb3mc~fSQVQBSV6J@DPn^xEt!aF{ouY57p3ZREM6T8Vng_bDtcw z&U51oY=Wim4t|SSS@z1cn?41F>M54TSEyxCe6+38N~k1ihDxg5sN@{)>Z?$zU_WYv zw@?wegX-XORL8tAwrY~0rZ_+9Ic0nb3T<_FpnFkxSN{eTxg)NA z4fVhWsHu4Gj>j8oQ;`mJz67dWzot9T9yP-Ls0JsZMzRVu1=~;^IOFQqFpByMtb!5a z?2l@Cp_1$;EP$Vkw-1k6IE?xbRHU9FTet7Mrl4h%dV(cY6xIvjZHMa6_|NVAy%?2D zf1=iJ;0xRNa-fbkLA5g&i{muRgC|iBe1^)QH>kN!JW&H;{bdOjc#AnJpdQ=+HAmf1 zb2bnavazU0EI>tS9qPfyT>UyKa<5RKjy1{ZsZrNuN99HtOw*V`4GP-HI-njj4)x$! zs0Nmz9=rwB^W&%_yo!3zOVm3fY_gepcD#(~eFeWcM-+oes7cz1Mer>u76qnQ?5d#Z zU0i*bt1m)5c`GXGPN1H61J#oUs2+ZB$CFI8*J;M7ENty8Sva6rMKzL*@POvUQEREy`vP=!}AyqZ=pJL-__rt8jiKtI+hgm;2c;Q3%Pnf)D|`p!*M(+ z$-YL-`4LyY>FRILkKja_CH7||Wl%}gAGK~5-~il++UhbbwTKi!&0%F!QjK=5a(<6m zE%%*?mRZN6QOR8mOJb*Gtbcv$EaQM4@DA0X7h?>(= zuKqU$UvppEa?F8xU@O$|;iwI3IVv)HP)YecDyRIb6qJpBqLT0ds;BQzt0Az)HlU=a z^A%7XZGgJ3Evm!aFa~2V7XFI5?iOmq4^bU??v5v18ytx5rK6yp6~^XR35($pR0Ee# zbN&Y^dHzMcACs)Jh~&bS)T`p(xDqu5pRacj!#vbap>pXtYI!Hyp!2N1oD}kMpbA#N z{-~{Zhw~(cQ@@5v&iAM($hy&Xx-zJpE(SG4pQ9eI8Y6K(YAWtxC??osp-+N|wf;YG z2XdoAUKkbHiq2Z@d}CC@?NC!O7!}e9s5xDV8sQdq{){_*4Rzl`R}XBqWKV&9Cr;#| zkPD}xMzRZY;(5%1uTT+6x5d7(s$g~MQ!yGZqppjy)y$2Wf?B9{`?>l;RB|3dMeycU z*1rzCaVOG!V;fKj)W*`@)yKK|22^sMMMdZmYN~FaBKH(E(vPm5YMbRsHdHQ^M&()! z)T(N}jrFevI&(k{MKv@P_1ay8O2#v&Bn#bc4YWmF-`my4xcUs|YSa$87nQtcun^ur z?K8=C*p%h)DQFIhIqP9X>fNw1Za{_bF)EqT?zCj8f(l^|%oM_2kLviUT{czQP_N}1 zsN->VThgV%eAL5H?fP{oC?ubvLh?B(RI^YcSdLn5+uiXquKtUwKSf3218UtT-(&Zu zMQtzV>oTxBSpY{&~X>*xM-Kp%9Nm_Nrlk8(to^2fjh=@gGo0 z7x##bG#P%No(9u$U+Sa$;Eqw>g?O!S>M{G(=Dp(~-eImQbApa@{6E}Ez39mhZx_$^ z?od#umi%DrdM#=S_Mna*M@8T~YJ^wZ@&BRrf!C;YANQ0^RRk(G%A#_s1**ONsK|^$ zP3>g#!znDKpa&g7<-#f4jK836{QR{28f!Kx0@==3!;z>CRYoOQD^xD@Ky_@SJN_k3 zq`nw6h1q|!KM2VEBk?cCf!-Xbft#JLPz_W#YoTs{L#Q`HW$!uEgWsbboZ_43kpo(%>rf5scNZLT$IqZ5a|83>LsW>xMJP3D3i9|Aw0DV7o};T))o3VC1DgM8Fy_!p>ky#^J5 zO{jJJEvmtrr~%wYjp(JT$NSkj`U&cRk*KY?7;0y&gXDtmjiOML1LIJuVL#@@k{2z6 zT~QGkhiYgs7Q;2D2j0Z8_!PHbflGGZEzC~+J!-15T(+IFH0m|o9^>nYqbMkplTag{ zkNI#p>MeK{%i{~wh>Kpaxh#VUeGOF3)W%4xkGXIpDpG4O3QwUr@&?thlvnwn(TGb> zP{U17S>4*z2VxBMVW?$u7d5vJQFHwQHDw=BQtYckGXL^euhWU zA4Z|nulAQXcH;@^QNLNJU!dMr-ZhI%Dy&8|BUZvLI0)CH9+>I64J6W82-U%osHv-o z>SzSs|G~+)@`jBx@}_m5D5^tcQOVQ@71AD<4acLBcAfL2 z^A0LWW8JdrQ==jteT((4o)_nUdQ=tlfJUerx}&D#Gt~N>fm)7BFb`hAei-t*t&#z# zm(x%zg4VQAg9T@4HjC#;~R0LLFQ{0AH4RQan94LU=*@mKy z&qTd$_o24fTd1rL`P=>+E*iBeMxh?O7TL&rZxaP=m4{Fp%{5d9{y=5#KiC|T-L_@c z6SV{OagKJ*LhT2uoqJFNIE@FKLLE+&MtuoQM(t=npyoEtJxiiY zs12nlY8`)uirgwx2aceoP}?G1HqMXiE6SQ0ZlwELPl=RaiqtAVQ=kg5J>BW{Em zVNcXt&%wgD2E*|hM&o-dg!vzt9kC$wd8lP~3L`P(u|*(1YD%l4I@J8JZ=s&e0WH6u zQ6s#83guJOT*rT6$(0qAy+yDCmP9SzC8()cg^J|&*Z?15W-R;EHm0_yc1L12oaa-} z^7-J*@ywE@E~-PVP)XMnwHgMX=5`@!WY;lI2!CVfUm}BrpIZc)ys-5?5f!;jm*qZ7{C{pl__|Q zRjH?cZy&WCu@?1BSPfsJcEP$v@guz>V~~o9M576j2&h-)<-SF5w5-xwc(sabu4qNKyVdBqdHy!Be6VcK)o><{h<`p z(+yY~_oI?9PHej|4{A9^qaIKK)xjx9vU>|q$-4;kp!Kf)4Te%bjB5Xwt6y|pMF#A9 z*C?n*w^2Fp#7=l2aRR~bfdr@qlA*p}vY@W7g1WxGJKq7-k^ZP;9gRx9si^ChqdLC9 z9p8fqwEj<1$j6B*7~C-827+&~?5GE}LN(~4l4%NRYL=rmnw_WzTtt1q+;sK7osXSw zQNO^96)zCnH?m;xANEC2&Gj2qJ)9q`#%zkQ162p&}!5Gen4MYdxL_O%R5vAQYQ)oH=3fT4wZ8C>Zlv*pdQc> zYvUNyyWkvZgb5Sd0CJ&LOIcL=O;FG4hcP%UG3$R8g?Ah{r~^qXgte0ff?H%mROrWI zZk@++xED2|*QmE){$zpR`@TP}r@kI5W25Be0@NzHfr?b>6gI#{DOms7IGS^SZ1nm& zhdU>rIxrm-iN#o&v|s1W-%e>e+GA9*y+&Q1Ae9Xy4Jv0cqE<&V>bl~nov@ZqLCMn? zmCfx?xzG=_>_)re6W#HJs3};F3hg1(yWq0(F>3wCOKlHMkIJPe)Ih7Cw*0oJ=lC%c z)T0ro4opXlbOox1o1MF{5%t5U22!N4h-E<~V_wvKB~cNmhU#b|)PB+(wb4yMJ#RA- z8Q(iXK|Q{NYTyp`z<*H@Xp`0=)CKk6e$G)?kor`2{xIsnr=3?&1Nsxy&cCky4%JS= zbn1xD_dW&9Q9jfS6;M;s5EY^}SQLA^f zRzN+cma{GT8gYLLaxCh`*{BCCLuKtI?1Vc|kw}xlI$9T%e63JZF&H(%b*KUSi^`$U zjBZ~*4KNp~-69!T|2k0G9jJloKz(;%D^%#ZqZ%BBdXG4H!5hDnM$K(SSFergXiHQix}hTQDe8e!Q0+ZIlFNICy8ojyUOqdY!kHH($P1=Ufn%|@sXjusr+My@J{(o}xmRpooP!l`{g>U=dWP%Q|ad zIQ7P;hzv&kWV8ZX;6aSSG(~L{RKrnP|NSZK=EM`{+G5tBw#6+;zQppJKaEPx1SRYz znX;(R_ChVIIaq|q9YQ7L^O6?X45iGbc#PvS@F+Ge9q{%C*MAvn_yR_9BCM>1CK~l_ z=;<7Rip(@rj;uo^>n_xWatw9-C2WXyQ2R%Ta<-K>Kt-+%s-3QwTI+wb3OFCNF1MgA z{1KIumrvo9&5`#E3-YMDK$8t~?0(P|d*bEtt_Mn&u| z)K>f$%i$~34ell?&M~NsVH$QMo429%g_Jcd%gdui(i2t+eH$+|E!qvNB7V3RaQ!@jVGfPoBvMJ03;7weDa5|3R(i z|GD}z)GBy^>gWel1QIv3(56CNpAWTq3Zka2G+xBIxPY9>+RT#g+vcqQ@|<{0p#qj@ z5%AvQaQuivTLyw#@6cA3l>4w8$FDmxw6>q)TjLClpTh0fvQ5An$Ac2J4Fvyj*UWad z;oQOgoDXXs@VYU=A?;cJ+bG=Z81Sy)j4pxTzb23A9ti#k?jH#LWz$Zmk?g=W7%{+ppcsc!sc*vqSazUAwlC(=ajb#AVL{C9 z53;0bhB`0>v*97shVmyWnT8FvWw#R7P=AB^z*sTFI({81QBVCT$;k*?ViW4UhX#Uw zdUg!8Uu5_!5d2%RLs84vKS`lEh0MbO-j_HOr(^8l7Rq_3<#ZL>V(Jlg{a_qG{T%kg z3L|ZV+i^7YYxodbkFuW`YY^$h)JLN>v<#zzQ{a2mDd=r>2pixps86LlW2_^ca47YE zoiSqr!M~hx8@q9Q_Bit$YG>>;-j>-k>`VO{?114D0^V92ixV-==ZXO9ZwCd1I>8sV z3|C=R>OWw0e1OHU@I=-*p^d?c)W=M+sX2~0bsbi~6q5tNUurc$)$d^m%rnLIgU-{S_3BQurD>&a@uKon^n@tBFdg9+(d|qrMTZp_26_*23JgZNnLi zajE;LB%Fvvs4t!q2>t=*1wUR1mc+CZLk( z25Q7{m)cgE4YjU|U{mah3i(0j-&lo_Cs<}5qYai@&U~@LHk>6Z1KuI7PyUsC#$WJV zA;T(rzjs3=(@a$8_n|`kAJ)ejt1X0!oTso8$6uqSsP)&DoRd+ZKI?ps+UWAGu`PT# zDuVtk3K~iFwHDgp&Yw`BjaX;vcPK8Qz7_SwQ+vI2a2AfIeg%KQRvT=c7v5<8gxXJH zHt}6SWZvU`>Rq-3yaRgwhi~N%5;$=Kk8$GGHx{Z@+iXKgx7}7pMcmH$naH0zdzE(t zyq(mecG>a2aR~MKyZON2eBwRU@jQDiH#(rc557aawl83Dt^ZpTv_8}Bv)5-s)a$bu zCd3Y?4~agg?|?z5{b4d@!Of`s;XEo?bX%< zR29RqJ8Jn(LPdE0cfO6_3h@EowNw1z3Gd7oDKiZc`8&tzD<7-M0W^YyEGfpb_rIY)50er2B~$P>>iB@4?f4li>vN*eMf^QdL{D=KvHE}KbE*_#TPN-qa$M7dETEbq?OMn#|vYM&T@=kXdg#f?{3 z|9U{+sx@2?l{CdM4R%E}I11IF$*Am}gNoP^=hvtmaf|Z;7NY(fQ(&%N0$zD6jj?eg z>N(?oVf|}Pw{t)ZA4O&HDO6~$y83n0i2p%N%{x@bV*hH%mK?R*GGhgdMh$ErD(hFF z+P{J7_-)LEkA7wSYb#CjTfp0h1yG;W*YRsid(A#R4`B!D#je|LG8f`>U4Mg)Foj33 z9`zq@27>?LzYMo**{(rNUCQ6BJc~uJNpz$Q@Dm|Fzp|K;D7mJ9qQds@lSgV zf9Fi~mvyi^hI4*3=Ef7w$If(r+jm4I9KrcsI2G^V=Q#Mb4a|Q}p}Y>ZdAxy1Fw;N5sqnr0 z6qEzSP;*)pHOCE6N!JFoth%9+Y7uJ0=TOV(HP*%k59}`_EJMxp3e>7thnn-lsHyk? znKADi#!-xaqM!?ZL0$M5b>VB&4)_7T#lS=Rm^_5q50d`RI+_iYocU2BD~H+v>!I3f zjcUIOYBh{-&cNK7 zsE)qJ%9!M_O>tw?{hy()o{gmtz=fz~w*)oUD^VRf>dv1;jqEgPnO;Rb;5HV<*Qn6v zdtwhLf?24SMYY!+i{oh2^Y%Sq{i~q^98d&KqaJt#6EaEHCH4DH?SU^*BMEzE8&nN! zM7;y@7vH>HScm$C=k|JjjT5M+d13p*Qq;z_6}4rbe8KuxGX2egJec^UeQ=aOg|rbW zyJw=d(!;0`UP8TwucLOfXQ&)_gW8DVzp}Z`fJ*KHs7RMXMWiXF$Duw2&BYv41eUrJ z>rs(7ftu4Zs0RKp#k(lh9ht;Tm<<9?u ziohFGM3Ti0^};a%3t-itboEmTnzMDN^}8RHrKhndhQ8z`Kn4 zZfF%ZG`O|;s9cI2&ju2WYji!1!PfCZgAu%mMHH$M2||N^meUtwsPD!am@T2*&>P!R ze~i7bexlIe)_VXOP*0cG?1h@+gQ#S^gzD&h%#QJrga*I)@}pLrkHP=2*OwGD;zg)X zT|~|KT~ziyMdgB*)J%q2_gPU7DuRk!O;jXXqV9`9-8UTd89x=3q-)&y?~;b{?>{+k zfdjhn0jdN4p&pPdne{X~>H!5&tDzz)t6QP&8-luTqH_sqd47ZH;P9(4N9d)Eos;S~BHCHB<|uu|0OcS=bSu<4kOpDm3^Di~HD!dWF>HTx?GL zKE`9Ot(eB9xOTeG;18=4a1ZDGgA_Ef!JmW%U$Zk%%jOtf!)vIK?n!UgokT_CPi%%C zu?RNHU{muYY9MPc7oI^4gmrg#}cgCC!{kh;&`Kno3iJTAk*TyPW>s$!W!y^7ct zwHj7p1AKtBuuNv_=pD$DX*s)l)^-@w(10P%oh)s4t}-oEK3qt(&Oa$dJR_f>WrM&uRXM zTc|hB#rm&GAx>`Ffa;<`GZ*#RU54t|MpS4IIDc~I|3-!WDJm)7x$|xF*qjeQ-TwtD zCl+8kJcvUvV_w#ONec7wS_2nQ4Hk|J4ZfDkqNb!fs-f|yWSWZ#@di}#p2pI68CLnT(b35Z1@g0+v&aeG1yqTB0_Dfv)~JzNfw%6|yDKp~2sLzDMod z4GP)=+M!0$8S~;OR0KAl+WihSmDf;_xQEH`Kg>dM`$-Df4bg>dUDv>@T+kI2+DVub zSECyG5%qvyF*ZI$CF5(<)Okhhczo0Ylc7SN!&%H7uZ|4Z_u5d-QINzYIPgpcG_~!!2QT1V{5syZ-GYb{LRT%vHf7>W%T^>i>@F(i+ zbq_V-SEw7qirI~+Q0KE@CoG7H#5~mMS&GVuHO}46?@`Ho1=XQv82k_WhZPSE{^laB zvkIz#0jLL$MTK%Uw#Rj-w_Cgtw((>}b*KtzY8s=q+8ERWr(k^MdM)0ezP)59A76a# zmty@Z)JrKSl-p3*eH=9v*HEE)j_N?5v_&KhE})(rgC88IWqb*vFi9C3P&q72JqC4r zCF*$>FdT1}Vf|~F#4Z~e{DB|=D&&b#p-hj8Kz7`ZMQ|iO!S>jvTxjs8<@30cdXMt< z;7k>)om$T3s8!Mh)vk|9?uivx{~Ez6cj11_LH#5ugpZtwDq6#ls0Lb~Rz*kD7ChOV zpNkslcUTplp{^@YDKz+ti4K^H`YOzgKl&7O!Aoq7nJU}Y>2TD`WD{!ZJcqULU({Te zt71u47nMv+FdVy~=6oVH!_}w=zDI>VQC0gW&4LH1`(IP=DRin98vKpKU)Y{{%jy>D zZ?Qi05;a1Df46h8^D-*y!)t~H{}W9)aUAuR*cXS@3iYOvbpPOA)IY5g%3u88ldW!O z@K48D*W@b8&cnfgE6dKXzpua7E$)K-sF%?()Kr{BJ@`H&I98SG94#FR>1D5F-%74Sv=M#&<01hPXW$SYcMp55{`S3cn!T2%kXxJSm;0shl zhW8E){?7O)YI*&KMX^Yq(BSWSW3UwUjaUuuqS}w@%fNWP*N%eL<5Y~my{Pqk6P4X@ z`p4FvsVd`4?1YNQ3wJzee|v{SVI7XQN4>7MU^lEb!1j-==$~hc4IOCf_u`p*5yj`T)_eh|*Z zD??fTdV9ruW}zE}%7xvikbRGeL|~YG?M9*+jz-;A4I5w!)aUg^R3x5YV@xpI9^4-F zPUwb;=ulKUQ--ttwXRokpch_4WpA|+c0nU&57Z9m<9=O_%9++9ExFF4MqX=_Eze1) z95{_lF@)zRcbcPC!EMxPdE!$@NZ}3gg7jjKwh_fgjifaybf2O^Jqoq+9YXD#-=j9D zo2Urc?$Y}7}h-VG~J4?d1+$3II!BfgC4$REx}sD|F5LY-i&ZP6J~%d{+N z9oIpfZ{_Tb3bBuxx>=~)Ie?1bZ#V?s<1jAs29662{>7q4Sd|lX#@i~GwoqnOP1rP ztbd2giAstB0E79;gw1fl9g+7=_2(`RAwz zC7*7&6g8douQ{*JfwDLsHOE(+NoH6>)lpLrgL?T4MXl$l7#o+OvUxRXK$}ogbrdy# z3mAzHQ5{M*(~`8tOqQJ*Y|R1L57qE^)QxkU-=MPk45r7MsO9$-gCm+{_eY_UvJ&du z(E_#HzCcB025O66kBaztpMoCr2-Sgjv#sHbsD_H5F06&Au_r1y$Dl$!8`a=8RL)#Q z-S-w1nWS^XK0#!aYDCYu`?{0oFxFemkqsO!H* zZA^PnN%$IdePEvDOmb92)1sy*H>v~C$aTI~oPrvvj>_s*&aT*udVkc0aSGLN`T6#< zVtr>L4C8oHRKu-MA@7K~zLz^b+||dTB039$|Ndtig?bz~iyB$R1=dg%RH$pCLf;mZ z?Sox?I%-bWU=$v9=O3eTBi_Q$;NOnPf*Rm(REMUaa%LH3)%yRIg0lZ6Zp4g>Y{xr= z=cvb7Y!AAE3gKgHg0E0pah)ZWl&w)4&QRwf%t8GCD#!jp<;n+Cgt9MX{i{d$C}^Z* zP`OYK^I|8|1E!;U-YGfBt?LI*zowv-|k3e;>7%C@PEMxua0X;dO z8$NSR!f@&f-G%#6*?I=m(LYe3{};nC;c{y*A7-Xr*45jhR!LthiC?02#viaRrdZ+I zx81lE_ItWNP&trlWoYoPQk6j^)gDyn4xt|WH!A7=!@(hB`&X75Ls!|$W)_BX{x{UJ ze20ZG(`t)IBg{g5s869fg+&;Jf1yI0;%iH~45;N;2sQHR&X(?Y3~Fx2pkCigP@!Fq zO2Yl9`+i1E&EKeqgsia+_?amv^c7HZ-@w(opc)>GnxYvPj>|C*9zjLo0qVhFYwiAI zs0T-&R!tey^^H-_@lns2Zu;IT3Tj{vs)xr>S^Ed($GGdvV%U^=SJYebAnHMHP$5pX z-s*)>_1YMmd(^W1($&|Z26O_0|NY-f6cnO+?!;TvYc}2n+tCuCdYlF|HF;5Qx5Bs^ zo1nT)L$J=a? z$&E_V`p%)K<+=hD!5^_U-p9ryXVER8-f8Mnw%S{;={J^Zho!0aLEXO*)$vPM316dfqV#Uo ze?1CKciXSm)?hX2&#(%X++)898I9UNE}-7)3HMr3mP9SL9;jtH43*{6u>dZ|7Wfk? zdGqYEcE+IYJK$4L7N12W(QQ;RK1GE*biXBE2Gk7&P(81Jx~~;#WCJlA=c6LA*VT`p zI{XK!gGs)%Wtkn-o?nWBmS1gD&s(70<2_Ih7>K%Y3ThRsKqcc&)c5}-RL=Z~O1`J4 z>k=QZxz38ZzaeThbVE(a0OU37dy6S(E8LG-x7Sfy?MGB{MjW&`Z;sjzrlKDFEq;Ng zP#aZ)L)MWPtW144=ENhY2i|igJ8T^*8I<+clY&CJ2!kU-CCMf1g=vpiGLA-8umpZU?Hk3%6`7a-kj&iJFS?sCC;EHPQ|k7yF|kFbuVEjYr)#!?_xjTYFLW z{ec?TQ&euH_$fF5-^)%xBPfb`U~5+&fIX-$z$gq{um}}I^}GSLxob{Leq8+G<;hgvk)zd|&8xA-xyYr9S`6QR@`e@Yk4N=K9 z2o<5>sECY5CEEhj6s$o-

Js`v27(c!SFNc$dx8s1RpEy$$oB8mfVcKr<|Z6R`_^ zk4o0aD|US;)PtI#Lf#EEprII!GtpPW+bI;nbExbMT(u-ghsx?m)O9scN!As$>{g)G z{qLv_#rnlfB`TR)qdq`}qdNA}ul9q^Ei6Sn({HSQooM-+jkpJDc@055UH}SUrt>S*)a*b-c)#=HHP*kf_Ywy*H@~As5_;WUn}x9o z^^VvT*I|21a>J6UAI74-$hiX5@iopns0Ze_X}M4cH6_(hJ7Y7SLNf|-2BEr&`pe?o ze`mwMmw(uUZv7R?ypS7z+s9@6J7yx(1CpW!k`d!zZhVE&sCP#0ySyVX=AOChzI}xH zAN~pTj&ouC2YkbEL8^!L8_sI~3l08DrNAQ#{ZZ6ZTtSWCK5FXTpt3#gV|)K6Lv<)W zYJ)0;T5fevQ#BN`;5_7;(f9UJP=o)V8hndN!gx8T&G5@=d7ryDTPYjx~S#n<8)kxib(!f_MEDyNY+DN4a87TPbZ)rGzS&B z^{5+i#125O|<2b-&SsAS85+H&(_4s3+lpoXEYKZ2UdQ>f7Y;=G0| zH}57!VA7BF9KR@q@*HS^nzKcy3%0xZFQ^DTLFLLTS5L~%vhAp+L7o2;m9(RrQ&3Z~ zz|}XRR>xjcr0ya6g73Yhpk#^&2@C%2w+arSJ_pYgnd|_e1KR@h)T7G|{BKQmyska!9=X;^CRN${hphl1e)${DA*K0A<2gP92 z#&Z-`;{4clUx_%@a3$3Hz7}eyYllj*k*K%leAKerftvE4FdNVJ?o!YL6T}S*ZjG5x zJuHt&um);QTc8^1?i}x2fg0ffREJNa<~nY?u;5p3NmPUmq0S#i{V*GdALjWwP=IgpD3f1pAbKVcYI!SX@Xv!SM@7^>mQsAbm(TjBsLif2*FH7t=$K~)T=-Wl`a z1dPOOsAYUJkslV^>r*BU3ofUQs0U9%Z5-1uKQ2c_gB?+GISdt{U8tn{ z4i&lUsHu8_#nDS<^%AJ_ehmtGKpQNKF{mD{L`7mh_Q%862&0pm6Hp!a6)WOX)cu81 zSd#U?tkl<{+CPoj%74X%7?LtfzZvnp#uRj73u+&@f=a@dSPhe<3JbmkTR5j;1ji4% z`fX?0)OKGjY{2=hSP%E2+KHPcEcjD$eXK%#A=c6QzvWKkOKa`Xld zo8Sf1+~&+^IZ)VH6SW_-M}>F9o9R~mX??DP$P7hHH zCdh1ao)b$^Ux=mgGO8oV!!0>8qmnBxYD!9B9qfS0iLF>Gge@1#VA-tJ&WLPbUUts! z%f|Xw!#6pg9V>lyTV8cgBWa4cu?>df7pUxBhZ^yBsAYNqHGn@c3x-651^@g%8)~%- zMNQds)Pui6t){yXewf#Z!hi0<4mm9QhoWwriR$1wSHF#MsK3W>49jUopmxBjsQsZn zYR7Eh?2PJgUsMN2p;pHVpMsL=nDZv;3+4^#!o<1E0;mo(boRip)JNlJ49y)D{E`}v z8rfddzH$x&cpWo`knC83`o}!BQ~D+Hh6R5^F&tZQ;xuY1azus&|5UpML$VSu-cpTNCtM2%148H$AP|)6-JHM^}Ca4GuMulv$ zb0I2Z>rl(>3?{=QQI?chP#aQy49BYOcsJ)DcYcgJzYy*J|Br$~dk!^+w}U6xl2NN6 zw1ABuGiu8$h#E;%R0kTPM%op%jD6GqmY|Yz8)n1rT>TEJ-B*}Z>pw-bg|;YWq}~CG zqK|4|H|l{WotLp3^}kR_maU+zmi(yIQ3TbodZ>tXKy`3DDnd(9Q@RU-|NXBM?!+Zj z@;t-}7${^fjmoG8jYM^5B5JuU#FDrd^=|kV3t_dwwrq!^2J$sF#p|f{3l*_dQlkj# zU+cUf2Z~?|RL`cPHlF3Eb>|L#Y=n#`@1fp`<&|+SwkJe4SCDABYOw7*vNAqV|DJsGQh|+F*V_Md%$W7ZMh? zdTwV))DBt;bzgIzfgo$o*}Mh!;LjMFSWhlx z?}VA9?f#|MRo9`uF;kTZ3;vC%MwpBG_gF*k|Hl-HbD%_7`_vkM>c~n|_8vg3id(1% z{D<0Ta+b4>=R-|JX$;58sFzU})LU)}>UDb`71@I2?H$lKDC_St3hL1^)Qu-`EdCFt zV!sMu!T*@lf2ao^u4q$o0u{=aSQKMdvMeuy)u_+G#&{iTVsz!O;GYAIz(&-YRpCoW z>whB!W%mbEsA^ZWte%WYqS>hR{0(Z(zC(57Dr)36-0|Dkm#KJ*n!=vdt)1bh92t-L z3}1k{e>M6F^#%%B9w$)A^CK#0{zBdG2-ShNuAZ=l?UZRz4QE9qUr|(hbx|Gf;p(5G zrgA0fy5p#g>Us^{mK_e-T>S=XUgH2GO?24N6G4A+0)OBl7588<=BkxC4 z2U6Fy$VH+aR2EBPP1N}>Q0*;6weN4Ipt(4Uwecs%z;9v9ySV|;72Re`tFTNnvw4O z6jTF?P*boO)!`Euh1Xm?K_mP5Aq#4*`(r_zfJJaG#?$(LM4=hJb|>mLw&eL770SJ+ zxx9#q&@I&ZeU9<)EvlnoO>75DiCR@fP`T6qM`1@CiGN@LY}b_aueqN=K@r%1dcbLn z#9OE=PuR>toeI^FjHn0ZcE?MgMpyy0k2JvuY>jGfEUF{(Q4wB;x_(bH*1rm8IG_)T zTd2@}K#e?Ea~o+ShEp$y>QE!p+_y$G+!^)Y!S477)N&s0>YGu^d6%nSMcsF+IqP2y zJ>h^hgxBuEWGyUv3!yqv4E2D9s1CM3jU)yY!QmK=b5Sp;-KdEEj!Igur9~_eYHBiK z4lLnQ(1q=tqfsGS;p)3k5xR`pn(w3DhF&Xsa3)mbilZ8AhDyd!*aGLE?tg^paG17Qj4hEE26yp&o<^ocmC3 z&C^&GA7KT|*VR5e`eI4y$FUlIM7@-%b+a#`&(PPLe@8(L{EH2+V0ZhGY&=$`{tfEJ z7pR}(bM~<0>C!VS`0s?SU{lWL>}5ONC~QRioHJ{T<<=0a$?>(QE%{jt>t7)%-rE|g zjCHBcb^eV7sTb;FxzH80u}njSekUp-hcFqQcgO!gCD{X1)_Z+zc_u-<4GW-FQ}4ch znAefQcn)Y!zKdGF8T*BKOR*aMhPUww9_eo{nfU|k;#49wBlP(;(Z5O zm;sclq6p|C*MC1I6EF+|$AR%VC*=B`4N9jgK_NH_N`X6|-0|Lna)&gASUVUKlpRP2 z$_@pBvV$2F3xIMmR#I#ThRF5bo=JXi7ASYLOQ4+PZ$LSg{zI(-SwSJp3(5-1gK`Wz zfU+~A!3*GOP(Flm;4tgtj2>j@Kil==jg1dWl_Ydobu zITuEQayiWdi-DWLa0+|^<^EA?v~_Zh1m*1B2DSwsg2%v$V{Ck-7Yi9{GY)`fz`fw4 zaa{kqnN%8YGe42QXM)YRhVBFpf|Dm&uY^{gWL^K;!S2}ag3?&^$=0E1qc|9Bgnb4m z{*Ry>BA+SNiv2**Q-iXTS*CCd<*YA^LAJgum;r1C%CQ^^%CVjbO57rF2)G86EzCOA zIwuN)vJ=%nDLfREt0M}Ob7?*(JG>Sw4DM9_R|gY0DgJ;`DDE`to}L1fldU)?*KI9O z;@W~j)CZJ?Mu2jiPXgt6z$(S#pj?K}KzWjCi?D9-fuP)=8iI0?Iwmub4(EV!GOYsT zcLU`?WeOEZ z=r_k^EC45ix4`UkxwDcVd!C$ITz}W*TU%aeft3&rUZIh@;C^uHVhejNv;KM&y3)ek z;0Opytg;$D24+V83`)a6t2u-essVgx4inkx0_$u>XA)|G za+V)j&-Dq0ZLl6Jwu3FvZ5wUIB(NR05&Q-=09S3Y9+YgGttT?g!RFY{fQ7&uTWsb> zxOM{bpvT$@e<>!#m}CM+f@Q%Cpj^ja!Gd7gZPtTOI4E&5z;)n$FbmjeyS1`epx9r6 z!ZXup6}k_~gID4mG{OSQfceme@8tS#$7Ih=>o=hEyR5%>3|Shk-fwS(ocpP!^PDzs*<-HV3oNi2Z=Wy3^%6 zXfu}J=n3WmlSJFh|M9E{%4K)~ltvzda{U%RWSuJxa18oy#ZiZC#troNN31*G3&k2o zty}zVQ0^0-!Cqi`$1$6^19QP;7`%_$%#Yz-3)Vp|aKgGXP6cJFi=DI{8#;pJ(WilV z!P{UbR+R9RwSZx#trw-XfuZ77yQg7NQIJJJDcCfD~aCi%g@yWGj>tPc1Dz1KbK(XHWq z>pJcZ%GO^2%Rb#tWRv_ zf4j7KYBS$b{Q#7+yxlVkSAcTto`9*rIM1yu&JH$1?+CU4&w_zqt``coe`E|6!doog4=o?Px8> zZ|j~u0F=k$`=C6&zXs(|>^ms8%FsX7!)GVZ7rh54H>MF_3@{1|1{Z*GE*%8rD)}7-UMX_ z65H(NFDg~R0Q3f6Ot3px5ge%g5_3^zgf zD&-O0R)GyM?B>=U1Bc>22MR%TAG@&>YzfMvTFjVs^Q_Mg%Gq8AlxNEqK-rn6U@Gtj zD2*qJW##1pi_7)joJlTlDJW9LV9{q+Uwwq_^b+8P2fdIRCryB~|(5HZM63zf+t5+!Q2IWwlQ+x=@Rr48? z2E3EVvFApV#9<|-z~GG`Cn#rkK2WZPTB`R~JrWGUz6X>Q-vOn87ohCaPf#B95+t>* zqA-xN+^7c1A?N@~Ba0L_JDA9$(jhPwcp8+;?;0rA^#@Rhzk^|*Z!+r;lm&&TE+|{v z790Q$25W#nK-rx|5-5am(&`Nf6yhSF>{xYB8mX_?9F&u?11OJ< zQ^1noe$ZF0f3I|QqcnzupcHBV%F4n)IolV5LcAH2W4#OX0#B>|yxQ-BatJ?ya+3W9 zlYlYOTRcHvdGs7$RtzgWY^#A_SEC!%lE3_#GSx zuFuG!0z)&|&EIsEfpgGHXC~i+%MWai9wV#W{5wE*uoL<^pn$0?(3Qx$NfC@Hn}x0vka&R@p)=f^MMP>t}*9z{g-&uzw!A`HM+3D32Ad z!8%~NFv~s=ER4Qf^~a#>WW2mw|I%@lycY2+P|ofrpxi1yf^rOveAY2c3dTdt1j@OP z50sOt0w@o={Xlv2+X6NRuY%G@{`_|H4GB{~IX9+(a%kr|n8+cB)_{|Wr$Grk3rgU1 zP~!fm-@AZy68eDau*U%_gS$Yv6Z#ai?i+!iG@Kihg_Qv1@~jHV!W?awNP!`s-1(L( zMuW1IcR^WcKq2cS%>>F>o*nEA764_ZR)KN{bt>)ytD_$Qi-7@!ts7B2Q1W|$+_)UZ z5GHagB0*{7Dkv-e1Fw^+DNz_MqGu2ZMRR z>7d*fPJ_aK1W=T8FTb6L#>W#y}jS-1nN zgnks1Jpba>9W@I`xOw6_=-?*HUyq@KCm%#%UVk|Ap}0goE;$cD8P&FlyG<8bPS02* zcOFDes=9R9T22aNmd17`MlM|s*<)n3ELnxio%aY^%5~WS#Nl)+?386AlL+EF2~1&; zrWA6En@jQsE%1){Q5wzwt|EUa$0V7O&nKriwi|GSD^FE7o+a}6tMYVtDbB{alI{>! zpn;qkxK^5~_!n~PateVRafl3t1*N#swu4!fC{%A+9trfm|*d#E5K>!v{`g@E<;=@V`k8V;cm#IKjK!dEprIK?p?3 zgTDCU{Mc+@O7e~ zllcf@`2Ev34exX-%)DbJ#wXGV`zo+HagGrv(TwaADULxtM*j%p=NXeAtfY-K!uN_* zW@FrAB-5r&LCSCKMtj`>Dd0~tF~~g%uP>`?gntmW^^82&Phb<7Y2B-M(HO%CC8(p$ zir_AaiY%t7v?S)zW?o<)k1kRh(hAILfbvMVoLIhh$Y=~6qq$L_NH{S;G{oW9QK9L)OuQ5KprNR6l%Z*@Oavos& zj(-Zp4l(wTBfs3lXI_FKQp>?gwlL(O_X9~H3DC*Bj-X(`=P`;3)1~#4+8l#9C&B&@dH=MvU@SVgriI{)a9~VVF3(kC~0^&gwO;A={ zu@tz?&ZI>5grFCs&$KYl+6B@qMslXV5&Z{)0JYiAa)t{F+;xHm09E))~ z!L6{&#IcM*alz!++kzb-9|K84Gl%EyGatR122I?$=#i>8jtG;y+1R1=&-Q22fxW1xjfHcOf|r!EZ(}Eu4n{$X_%>vTL!~ znkTmVS~Q3n5#;k76~-iub95vy1_8M+^Z}!_GfDI!_$;;v3RVU0;(Jb9Qsx`90AG$` ziu~{BR(yN$@t>JSLG0(y7vr5z-UYZszGAzNeiHvw`TIr#3>`2eB#GA#O-YGOq#Hr2 z7!&9`J^oUV%te2v+iOKxKTna{lbGZTkti*=z*7181#2=NC`mp3&(+9ne*d}#48)Ly zpkCl)4Hj1l^dB_T(9O1iCI)MhBbnEv!6)oeD2*)!dDYGsL6NW6%b;f=<|jM!9ga)r z9f>Q0uZ@EsktuE~Dyqja5c_6=eJHdVf|fMmNnCDjIAPdqkX0i#$}KlLdOM02BxVxv z;mSV{u7%hG80*PR1J=Xl=*vW;1SBnS6e7_jk4fH4k^Wksr^as526t0HBr|y~*+pzC z@@8w{bolrd7UL|#C58Xju!FDJ;A0dp6oRZ9qXO7srmi`dc- ze;zChPif-r(r`WS4$Z#AR)@GupbgvvitJ)nLy21<$6sE6+Dq^nl3Wr`cOeEgVof;! zK~83Y*s78268RlKzgT?<1zaPHwy5&iTamf?ndax^x7|V!pmkQ{QmFFtCGnwCEyns*s-`sWoG3=~( zB^~F0(PjA`dL#&jq{tym+#Got#X#EuT|4#pIz=6mpq48rb1FZXl- zPq3|(h0^0Nd<*sPKO&|&;}p~h@P8zJlx~Dc#E%l%uS-9weJ+<@ipFDYrbU`-;3t~M z&U`U}*&ub7W$5xHIeenF(VRkG$!$RcKH5+v^5$TVRy}|t`4N9vND2{K8vAqR3(3E4 z=T$FXCeIj~G4_s_dd%O^mT-|$ST9If zx~!$NbQ8{T=;_pUK$o=@-9zW?;lC;WsGC|30rJR3%WoMKlA^KN%QnORp$REKdP2t8uf;?tn-i%yY z>!x(un}TU^PSOtfswJZ=L1oZq>nbF97D+aIc6=u&)JjPf=poBQBTtAw0$)XPgYbJ0 zUtHsaGh@-XNP4(-${V%QGLg^Pw`uH65bQo zgL!#;BZ%Ys#Ef2$p0;Y3KkwnoLjF{6Ch;y=&ZIXS{qQY;ca=8N5v(Qkz*X{#Vo{u5 z7+09Pq!Ri#f)+?1L!>1BT%f%8o1HnI|M3503Jq?7I0=pLGOsZRy(V!tbXS(LgH`a| zg(C>NV+KFAU^s_^PcbqjF+Ve5YY9Os$ns&|sipWPM5DAeBqkqxbKLZa8h4+#zT}In z*5a1NxuAA*_Fs!ur-71mRUhjsO(;cikzB+qqev8bOpOfVBjQj70y-F2sN^Beo=rArKD2$A`}tw;3hTixU?}UVQXp%;S+W629d4##5s( z`VU>iZTX^z-2|l~V1Rb_0^$kG4?qwLdn|$nqW3b}uzo}dA#u;Z%QQ5Wm_6wInMbjJ zFzkGfv?=oMvH6wTpIRc*uvx3!1KZ+rG$yDrN_RT? zq6IxEo{CjcjZ=GV z^zF>!s4iiCt`~}I6qx{dHG+KIRwhBO+*Z*5{h|^aReN9ZUeUNnT-|}kH1|-q`zH3@ z@a}LcEV0LFzN+gF1rJC_&k#ui@jZz4LQt8caIikXiSf%H0P~ws+@P@KX19vEHJD5r z7)H!Q{N6NHQ+Z#hZ#H;{hAQHBRN;q9X0i)=(9e=^9b+HJ^Sk+d@t0728N{WD*@51Z zc}IMcAe^*X=E74rzRP>$-Pbd6B=`(XN0FG`WyTraj~s*J4{`O zHzi_cbnJ-mOFoWuv|5L%B10G-b$*7-wXj6N=uO2Lnwd{Ky+!P5>>|^#<%h>5eVBJr zUrwsm)!ZJ6zrZ_I9f#pTp&T5j>PjqMFDQTSdPVWtO1c}eUd+=H>n^j%>4$Fw#u8Dqh^qG+n$8!QANxDhWN#?sK-jJ2t$5)NC zG&EdQcWMguoy_-(E^(}Gh;oi4zlmGnKo)ff4ta}224ZJ9FpMN|GsYqiC8TH{P^27V z3VxCI1joa79N%CF2Vh&r{1~~L7>^;mhCid`F3>#5P0Iq}!CxK@mn6b}9lN6+Nhu&$ zif0hXi!|aqxD-;6Qks~^Qvdx~kGwxLlK`R_%wMqT0Olf}bq9ERrBR6*ZQveH%s=2p zP$Wd|!#5zPiZMHh%WZDcpHi#>98u)7(_QH-&EP-oz)^<@Z*eeY6Yvjs2%AVU z#u9ul+*T!a4+{K(^cUn!HCF6*Xs!c=MPkydOSTbr03|Ct@-@h17){|l&(QUApCrf= z(qa$>5txFYt~4X^52OXqGm#*28GjvoH;G?Jd@+2j(8s~?i`WW`t(rTGrn)d6s`_kV zp5Wh){>}PsUw+4;+no@lXL~9W5KW;Sy6Q~WuQ9?Xwi0_vU0D~a7b7pWWe~0>zBc(m z#J0xw3+zwvUCgU#XIBEZ~?2`oZn5+j`WV7HxUM%*=Rs4fi_ zhU2&V!8RQQd!xjr*at{(QauUKqO6rHb4J0D{@lRv;X@NW1qgI$vhn(}+ zg5a&KJcF6%()e`lf3UeiU>J$T35cP@@|F`HR&qm$heA>he`|K(Gz~aus4v(ao5%%X zf8rClM)8#BWALX_e-#R!Q2z_&@#X$MnV^k~|BAdHW*^BSiwQ2yIKw zLDvhv{UJ|+U*4o6;$(E!f{)0_s|%?KHp1t4kMSS@8Aw`9Gp}(pVf16(K^Rn8aO`f; z%ndyR`G{Z3e6#AgSin48l@wB{guF482LIRCfN zX$1n?LpohoP#m!wfjAg^GTM*cYJ}2CJdJhXa11fq}t>QZJ<9m zR`UbNUqZrt^?B+7gu@X<(0E8Z)G5Yt%-66JF-WWk@pg7bq?83l3G52T^I6^y!RTnf_Yy!%MvpfuB`v7_3z`4kq(mIy8UBF$j=FO0)pNoRiWcGkdI>Q z$F~8Jl*Auk9>~0v7D~pv5Ay(W@`Fbhg&5n>)5HCc#g5Vjp+czN4MReLelXTC_a!I` z9ZrV414&b@Nb}8`HuTmMNvO8x5O*PV4h`N03+l?^fZ5=h3deWiZOkizAILk4Z-6ee zsDol6AM}_khp;{YooVJANh0}KX-ncRW1Gjk8Zi?Y;gGk+&f6%BtB|`S0KFx?uF8EJ z9{Ix7&gg8aDR0O>jxA{kEu0jBi6oVz$Z?8fj%dcK^c&D-5LyC@NKYa}l0qfZ@7iK! z^vcBcB38r(CZmmFu!a!WR^z_f6ig`Y|n9RtbaY1lBGCxieva=|2Axy5# zCx_rYdsG#itOd=g{1}gIBfg6eEvN8bni!5v(F0oA<;k6z(R6jYg{655xI-x z?L5nH-eEL>XbwroNXP||d=RyWH%*mdB`NWTppPcDxvot7+aX(nEr%BGE8B+nlb2m> zF%`w0hiBT8ZOLX~dejG(a7GVn@?l6UZlKV~@ zT|)eD;zX`vPt4BQ;IF35%Ks{S)Vah&!XqCiWt7pRiCRFMx6~$ck?SOs@wez-A*e`GpU^j9PtSanZu29Gh}^@M6?+I=2i*?AedeL8K16;?|3Gq68i;^! z0OJ4&4Y8FY=pRV3GnPX*RGZAte2$VOf#fYk@~W>R_BHs&fk*N6X64iIS7iQ_Au=C+ zk<{o@?H%+-r*Yeb5kS2(+AdS7T+{RLhq{0`+jXV{NttKxS!$b4- zF_>VvwN1H%3$}7oVRyl#ZXlxI4hpK{$$&XL`CvE5qF&`Pli3`EM2>Wdo z<{@9F{F#YMZtJR&QTQx@11R(yjKP>hQWxEUyv(x^djZmgjOoPR2Fu`o%-kh!h{?go ziETR^jhR0J=TkEe4UV(rb%k>4#JEC}%d>TxSj9&-vhoxdOM!4~TOz7o@OPYsF15DA z)R>ItHS{yEwFG6GKB-^o6o9o7_RPes0f*w7!BS#Sxc~%7v2`Np1SoQc@sjyvDi0zq z9x+|9#Y9gkkDdK>?_%NY;5KNBm_Rc)dYh5OQkFGL$5xyleJg{>wWGbx^k*r(uI zY`fTkB;>p$ejc{g@KwQSc`2VZoD)|fj!K(FrQD%cE)>>>Qmr=Hary!fm5U&*bIFw{$|V_@0rwtB!t9% zkTjD5oL14AAW0_~rO~7D%^~(M1w}%2m38ph;i;tsiwe2MNZbwvCL<#?#!w@L<^{@c zR{3zm(rsdDwAc9-4SEUbPi$q;H{qWI!6^wuielf3ehy-h!{{@#a24VgVc!PE#uiNn zmsvn}Vq#(MVlL2p?BIde$~S-RrC>1v=5oxI5^QKASFop~*era_F;4*ppvT1jivs(w zozmC^*i(?Z5_>1+b_!qDb3lsJ6IG6T}{54A6#SGyjbLj9bx6*xJ*~cj6PqHu!!N z>m5jPBO68^W55P1vORGxiCG8+6W@rQD&bp*F9`lRZk!R+NF+IGE2s67u=s-5Gn1Q8 zZBUs1JvR+}q_!{e*Vg(3y@cpAP5hgz97{AMna72hZbXTviL^hNJYGl|h}F)t^Dko>w!md2sQZeELn znbdZ3R?*ePrBD+ZDh#PeUFKyV%tj+3@6hkiL{Dv`oHlHEdG-otLwsTIza(}6;}u*t zmH&wOv4})}WK<$KgyXV}pv9oO)TgM(bbLi1C_wC2a2&*^u=#*_&_`1&r#7>k)dy2( z3{8x+(v7k3%z%5b@|BXuqGAN>Byc-e7NYVHWni3!AOrU1jEszW+SCK$?$LnjVI(u; z8_*YmSIKWc>>`@jNBkG;3BdjM#$dn5`~|#QupflS-2XoWKVucEaTdfWvJPAa*>oBa znFb!lKMxEbaR>fdj3vahg19L$-ny!b*vnyamrzx%fU~L9oEQ=F_`ip^EX2ok>jptu z6@n!M`qF7*^Pht&mp1*9#OGs-*3}xik}Bi@Dxy{g}8t#6@Cn z4Nn_#&k*;P`B!X5%>5^ztJw|LD@6CvW7FkUx_`$!9;^RB(g0#cVk^uj!pNwX;Vx~W zC1__1!#54`Ys9~$0YCCb>*8`~7F^GeVJ>qa_HMZzQIQy_Gg zM);QE+u&v|Mx)QP@vYde;V(|yI1*8j!ncH96{_H%}+p1B6jE$_@qZ!yH8CX^VemA^){nSD za{Mna>7!(W2^2}Fx}|Z=6H^1y9*nlkMG8T-f&z^tpS(*nIud_#Fec4x#eSQ4BMOek zUWs^-P2`kg-VnQa{uQ+BhE0ohWj79LBjTzD(OnV}{HLkS=noh-Ac_LZP(;#tQalcL z6eR<>*}(%e;*xp9Un2I5JQsC|1LIFRi;3eW1Ov4JAMJV_w$IoKlMoxyQ8bx@c#-!M z--7QCws!d1Gg^_?1bbp^AK=~(ip0a$R5{J{|AE+x0Fe(ktDuWCC1EICXT&BFN`Za& zV$t9W=5Zi7L0$(XJ4CUrG~|PABDQQ=@C&v@%oi}OYn>Jc^Om*+oG!+P4XIamMoJeAQoExnh2 zT<7-OUctT|U83%l@CtCgE9tc>hVyYnuP!_zt=X(y_n?-|f}-Ac^h)I%*vV_MzcbEI zuhMa%g35V$J3CGE3W*sN9!c7kNUz7<&JFXtGUadzIsGG zx#$(&>3h+uPdw-R`(9atou@o(^=-~d-nN*DoeKhOul$^gLTm$*J5yA#eTnN4;`DE1 zOX}q;-qcpx+at&s*~*qXgY(-2+e@4C*Hqj4!k$LesG%us37uZ&ZGY+zA0vZ(N{0Uf DFT8mW diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po index cddf448d..3292f2de 100644 --- a/locale/pt_BR/LC_MESSAGES/strings.po +++ b/locale/pt_BR/LC_MESSAGES/strings.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2019-12-09 13:38-0300\n" -"PO-Revision-Date: 2019-12-09 18:13-0300\n" +"PO-Revision-Date: 2019-12-09 18:30-0300\n" "Last-Translator: Carlos Stein \n" "Language-Team: \n" "Language: pt_BR\n" @@ -75,6 +75,8 @@ msgstr "Executando Script Tcl..." 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." #: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 @@ -304,38 +306,6 @@ msgid "Licensed under the MIT license" msgstr "Licenciado sob licença do MIT" #: FlatCAMApp.py:4448 -#, fuzzy -#| msgid "" -#| "\n" -#| "Licensed under the MIT license:\n" -#| "http://www.opensource.org/licenses/mit-license.php\n" -#| "\n" -#| "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." msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -360,10 +330,6 @@ msgid "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." msgstr "" -"\n" -"Licensed under the MIT license:\n" -"http://www.opensource.org/licenses/mit-license.php\n" -"\n" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" "of this software and associated documentation files (the \"Software\"), to " @@ -1376,7 +1342,7 @@ msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon." #: FlatCAMApp.py:10831 msgid "Reading GCode file" -msgstr "Lendo Arquivo G-Code." +msgstr "Lendo Arquivo G-Code" #: FlatCAMApp.py:10838 msgid "Failed to open" @@ -2285,10 +2251,9 @@ msgid "Saved Tools DB." msgstr "BD de Ferramentas Salvo." #: FlatCAMCommon.py:1293 -#, fuzzy -#| msgid "Failed. No tool selected in the tool table ..." msgid "No Tool/row selected in the Tools Database table" -msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..." +msgstr "" +"Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas" #: FlatCAMCommon.py:1311 msgid "Cancelled adding tool from DB." @@ -2658,7 +2623,7 @@ msgstr "Este objeto Trabalho CNC não pode ser processado porque é um" #: FlatCAMObj.py:6432 msgid "CNCJob object" -msgstr "objeto de Trabalho CNC" +msgstr "Objeto de Trabalho CNC" #: FlatCAMObj.py:6483 msgid "G-code does not have a units code: either G20 or G21" @@ -2804,7 +2769,7 @@ msgstr "Iniciando o G-Code para ferramenta com diâmetro" #: camlib.py:2683 camlib.py:2826 camlib.py:2928 msgid "G91 coordinates not implemented" -msgstr "coordenadas G91 não implementadas" +msgstr "Coordenadas G91 não implementadas" #: camlib.py:2689 camlib.py:2832 camlib.py:2934 msgid "The loaded Excellon file has no drills" @@ -2926,7 +2891,7 @@ msgstr "Analisando o arquivo G-Code. Número de linhas" #: camlib.py:4083 msgid "Creating Geometry from the parsed GCode file. " -msgstr "Criando Geometria a partir do arquivo G-Code analisado." +msgstr "Criando Geometria a partir do arquivo G-Code analisado. " #: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 msgid "G91 coordinates not implemented ..." @@ -4331,7 +4296,7 @@ msgstr "MOVER: Clique no ponto de referência ..." #: flatcamEditors/FlatCAMGeoEditor.py:2523 msgid " Click on destination point ..." -msgstr "Clique no ponto de destino ..." +msgstr " Clique no ponto de destino ..." #: flatcamEditors/FlatCAMGeoEditor.py:2558 msgid "Done. Geometry(s) Move completed." @@ -4355,7 +4320,7 @@ msgstr "Nenhum texto para adicionar." #: flatcamEditors/FlatCAMGeoEditor.py:2728 msgid " Done. Adding Text completed." -msgstr "Texto adicionado." +msgstr " Texto adicionado." #: flatcamEditors/FlatCAMGeoEditor.py:2756 msgid "Create buffer geometry ..." @@ -4966,7 +4931,7 @@ msgstr "Adicionada nova abertura com código" #: flatcamEditors/FlatCAMGrbEditor.py:3337 msgid " Select an aperture in Aperture Table" -msgstr "Selecione uma abertura na Tabela de Aberturas" +msgstr " Selecione uma abertura na Tabela de Aberturas" #: flatcamEditors/FlatCAMGrbEditor.py:3345 msgid "Select an aperture in Aperture Table -->" @@ -8154,10 +8119,8 @@ msgstr "" "para seleção personalizada de ferramentas." #: flatcamGUI/ObjectUI.py:1616 -#, fuzzy -#| msgid "Generate the CNC Job object." msgid "Generate CNCJob object" -msgstr "Gera o objeto de Trabalho CNC." +msgstr "Gera o objeto de Trabalho CNC" #: flatcamGUI/ObjectUI.py:1618 msgid "Generate the CNC Job object." @@ -8203,7 +8166,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1678 flatcamGUI/PreferencesUI.py:3624 msgid "Travel" -msgstr "Desloc." +msgstr "Deslocamento" #: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 msgid "Display Annotation" @@ -12067,11 +12030,11 @@ msgstr "Parâmetros das Linhas" #: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." -msgstr "Espessura das Linhas" +msgstr "Espessura das Linhas." #: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." -msgstr "Distância entre duas linhas" +msgstr "Distância entre duas linhas." #: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" @@ -12097,7 +12060,7 @@ msgstr "Espessura" #: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." -msgstr "Espessura da barra" +msgstr "Espessura da barra." #: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" @@ -12632,10 +12595,8 @@ msgid "Object Type" msgstr "Tipo de Objeto" #: flatcamTools/ToolCalibration.py:101 -#, fuzzy -#| msgid "No object selected." msgid "Source object selection" -msgstr "Nenhum objeto selecionado." +msgstr "Seleção do objeto fonte" #: flatcamTools/ToolCalibration.py:103 msgid "FlatCAM Object to be used as a source for reference points." @@ -12716,7 +12677,7 @@ msgstr "" #: flatcamTools/ToolCalibration.py:281 msgid "STEP 2: Verification GCode" -msgstr "PASSO 2: G-Code de Verificação " +msgstr "PASSO 2: G-Code de Verificação" #: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 msgid "" @@ -12829,10 +12790,8 @@ msgid "Type of the FlatCAM Object to be adjusted." msgstr "Tipo do objeto FlatCAM a ser ajustado." #: flatcamTools/ToolCalibration.py:585 -#, fuzzy -#| msgid "No object selected." msgid "Adjusted object selection" -msgstr "Nenhum objeto selecionado." +msgstr "Seleção do objeto ajustado" #: flatcamTools/ToolCalibration.py:587 msgid "The FlatCAM Object to be adjusted." @@ -12857,10 +12816,8 @@ msgstr "" #: flatcamTools/ToolPaint.py:378 flatcamTools/ToolPanelize.py:266 #: flatcamTools/ToolQRCode.py:314 flatcamTools/ToolRulesCheck.py:507 #: flatcamTools/ToolSolderPaste.py:470 flatcamTools/ToolSub.py:170 -#, fuzzy -#| msgid "Rules Tool" msgid "Reset Tool" -msgstr "Ferramenta de Regras" +msgstr "Redefinir Ferramenta" #: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 @@ -13125,10 +13082,8 @@ msgstr "Não há objeto Gerber carregado ..." #: flatcamTools/ToolCopperThieving.py:675 #: flatcamTools/ToolCopperThieving.py:1267 -#, fuzzy -#| msgid "geometry" msgid "Append geometry" -msgstr "geometria" +msgstr "Anexar geometria" #: flatcamTools/ToolCopperThieving.py:719 #: flatcamTools/ToolCopperThieving.py:1300 @@ -13139,7 +13094,7 @@ msgstr "Anexar arquivo fonte" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 msgid "Copper Thieving Tool done." -msgstr "Área de Retirada de Cobre" +msgstr "Área de Retirada de Cobre." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 @@ -13252,10 +13207,8 @@ msgstr "" "de objetos que preencherão a caixa de combinação 'Objeto'." #: flatcamTools/ToolCutOut.py:91 flatcamTools/ToolCutOut.py:92 -#, fuzzy -#| msgid "Object to be painted." msgid "Object to be cutout" -msgstr "Objeto a ser pintado." +msgstr "Objeto a ser recortado" #: flatcamTools/ToolCutOut.py:214 #, fuzzy @@ -13476,10 +13429,8 @@ msgid "2-Sided PCB" msgstr "PCB de 2 faces" #: flatcamTools/ToolDblSided.py:58 -#, fuzzy -#| msgid "Geometry Obj to be mirrored." msgid "Gerber to be mirrored" -msgstr "Objeto Geometria a ser espelhado." +msgstr "Gerber a ser espelhado" #: flatcamTools/ToolDblSided.py:60 flatcamTools/ToolDblSided.py:88 #: flatcamTools/ToolDblSided.py:118 @@ -15383,22 +15334,16 @@ msgid "Drills number" msgstr "Número de furos" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 -#, fuzzy -#| msgid "tool number" msgid "Slots number" -msgstr "número da ferramenta" +msgstr "Número de Ranhuras" #: flatcamTools/ToolProperties.py:404 -#, fuzzy -#| msgid "tool number" msgid "Drills total number:" -msgstr "número da ferramenta" +msgstr "Número total de furos:" #: flatcamTools/ToolProperties.py:405 -#, fuzzy -#| msgid "tool number" msgid "Slots total number:" -msgstr "número da ferramenta" +msgstr "Número total de ranhuras:" #: flatcamTools/ToolProperties.py:411 flatcamTools/ToolProperties.py:426 #: flatcamTools/ToolProperties.py:429 flatcamTools/ToolProperties.py:432 @@ -15425,10 +15370,8 @@ msgid "Data" msgstr "Dados" #: flatcamTools/ToolProperties.py:468 -#, fuzzy -#| msgid "depth where to cut" msgid "Depth of Cut" -msgstr "profundidade de corte" +msgstr "Profundidade de Corte" #: flatcamTools/ToolProperties.py:480 msgid "Clearance Height" @@ -15516,10 +15459,8 @@ msgstr "Cria o objeto QRCode." #: flatcamTools/ToolQRCode.py:413 flatcamTools/ToolQRCode.py:748 #: flatcamTools/ToolQRCode.py:797 -#, fuzzy -#| msgid "Cancelled. There is no Tool/Drill selected" msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Cancelado. Não há ferramenta/broca selecionada" +msgstr "Cancelado. Não há dados para o QRCode na caixa de texto." #: flatcamTools/ToolQRCode.py:432 msgid "Generating QRCode geometry" @@ -16136,10 +16077,8 @@ msgid "No Target object loaded." msgstr "Nenhum objeto de destino foi carregado." #: flatcamTools/ToolSub.py:281 -#, fuzzy -#| msgid "Adding geometry for aperture" msgid "Loading geometry from Gerber objects." -msgstr "Adicionando geometria na abertura" +msgstr "Carregando geometria de objetos Gerber." #: flatcamTools/ToolSub.py:293 flatcamTools/ToolSub.py:498 msgid "No Subtractor object loaded." From ed4bc5612ea4c2540be1dd687e3095681df11979 Mon Sep 17 00:00:00 2001 From: cmstein Date: Mon, 9 Dec 2019 21:22:33 -0300 Subject: [PATCH 07/36] Updates in pt_BR --- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 347799 -> 348047 bytes locale/pt_BR/LC_MESSAGES/strings.po | 53 +++++++++++++--------------- 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index adf5cf5fa5066d2d76d179d2bb2e23c29e47e7da..ede6ea9dd35e0e98a6f64cb26fb34dab06e4de5f 100644 GIT binary patch delta 51018 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�rQ_7MI^_ph&c#0@sGs%OACkfsqKcQ; zT^FIGx|p;PK1BcbC|iu_2|D>~U`S8LoZqRbPU$8VX$!5(^`x_r{?{oj$GKI|^}Jqx zHb(tdUpX70f_1<-Z$Ksb7E;>-jb&*6QFlJ)QPFzXIj`!eXP)x}MNm_P78Z}!aZe(e z>*?%s@oJAQr|n%GcHX1L>-Oh8K3Dzpfb;cO>q+P1xpm1t9})66-4l7VbBt_C$uRQC)PYSI|;4O4^TeX5yqGref*# zm*WD~qvJ24E}j-c;oo}3D^XOy%wpO>NVFQ z0(R0)p;ex(O1h&jUW?=DLfG{Pbwqc*?or+JF#dMXGp;A8uXVw7FF|?x`fznk_rH;# zy6R;&Le;N2`^GC=AEIvt6Z&0mdXuL*GZUTbv16|z&m#XN`Dw5*wvFMj61%oLtGCSI z1j=~j*2Omixawl_r#ky)aL{#njz?;aC%>Uq(h_~;rWb4cZw0sij`|SldobHXPU?j=D4Cr#Ml!kx^#qlv|}i9(dubb5D${lp zkD(Oui;b?!*w~2tA}l&hze7CUVAL;Yu(+Ii%126c^NcM$z=B zpR=NVR`WipHe~e6FAqzv|LTa;VXvj84bP05<PT+w^`>7DWR_%WT9E znPZx`1G9=sd}nz6nbHg8zR}vcWUO|Rqo)dNypr`tNo++jSKD% gYu^_$bIaXtW-cmshu`m-MNzN#f5iIjt#JYW3j^DHq5uE@ delta 50934 zcmXWkb%0hy+sE;9-@72)olES}EZrRBt$;Lwlr%_#C=x0q z&GY@;*SvqcpP4x|bImn#&Mx3HbxF!Oi&6$|CJUYA@qe}AdtL?{+uZX~C-%I@+tliL zRsZ$8Xsm{raUu@GwU`kjo_Ss>tc2;X1!lv67>@HXE$+txc+IuPf9`pSJTKrCq!5P# z(a3YXYOdZ4>66zU6Jk$y{7XzgeX?^Nrl-CN^`L|J8D2+Sf8QPd2SceRc)50 zUM>o{APRM(7-xIb4M$*7oQuhDE$Rk)F$G>kjr=c6gRx$EUUJNYYA@uhh3ZfjjEDVI z=lNcMLRFlEjqw6TVxCu?SIS37@k{En|05dIlfU-7*f{VF55wVai5!l3=Xs+z@7wp3 zG35uv*YoD#2u%CY&YO#gIDgG2j%#E)JzubA$1w@@i>MGkz@qrv9na_fsXEYpocqQ zAnJx=Q4gMp>ewRG1J|H#w9R=Cb^ck@dACsyc;tMI>QJoscE1#;^D?5^b0WDG@QPDN zMMG88gWI4^?1Fk=Ki57Ab>2khGSo_?60IL^mwI0y%%@_Bvm z32MsPq&B;uMmzvD(ov|LbrNbot5qk0`%|<2wJffuvE;dpy5I?h;eV(Rrb%lXPa)LC z6N6fQ%}@^-f_lI>RE{h|UAGIh6`w;*@dIp$k?AZVlhd*ObL&JJ*!!!E4$`~h;SsP zr>LI4!$z1mvmNh*%Hn>mJ{ogSpN8de7q-K<>yo2gMAWjyW>oll_ ze5eqYb=F1oxC1JA`lFI?H7Zg+p*El+sE%DmUHps zt#ScQ$MdL2bjoHO>W8}V7*zWVS6_e#*+2KAf2LD7&L1cv8pbYB5@~Gshi@ITF*Zw6cS0)6J-4jtGpMmP=Y}6`P;p!VvQ@IB< zH78LWyXoqGy5ny#pa;auWj9EQ>Oe+kPS;-8Sq?)vUIXi6UDWj}-0`)j4(&j7;E=1I zM@8&5s^c$F5qp!%7ZrSFz9DTZO9NUKLW z>qG|Z0li$q2-GAkMnA4VJ#ZCjM4M4r@gpwBQ`if87w~y)@HWoG=z>0PFkVFMFtrO= zga@J`H5$|4w*d;e@%N~a?m&g?2GhEp$xn%qvP<2_Ivo`j0P zY|M-MQ5(e*%!=VfY)1-IrJy+;hMM!Gu6_)osXs>T4Ec)MCf^R#vB{`NEW&8qh#J5@ zs1AKXrE~0JwnryNb+9-#z{W_<1-!KsG{PPDIi5jvn&YJ^_`F#hpI6adXOWeB-ZJXDQ4wfS*&@&$wP1UpA~YB^#b09z zp6|_f4I5Fr{z23TF1hyWs0;r_&Fx3m9yi98RR+`^SqPhAbyQBRKuy(p9EbZ*=T)j= zdvQw)Xs_%?LCG`)bK+Livbm1x(0kMrC8=sR$c5Rcm&YvF33dM0SPoY^|3KX@M>RWM z7c)@rjd~eOsmA(OHm;by>< zkHP6!8c(BELA;vwHCi0CaSf=+`maD?Hw~JT_oxmeu4VPYsBfbf)ReS$c0px#PgI14 zVSJp5+CLV!`chPfzDGs+3Tnf8hI;PXfNLmQ+vd13YD5iDHynhzU<@jWCZR$%6E(N% zFbeme&U=SCFQkrjI034o$xykI88y({s4Y2AmV$mLYvAnZPMCn&iWj0T+>CnQ9#qFp zVHjRTo%a??VB)$yZ#`DUwfG8^Bg^X9^@mW`UqH6%fOp#p-c!_#-lLKvX?^QherGi- zNP9=roX$plx}3wpn6QDJUmi7OEm2c37_}USqargFHJ~Y&Q0sqgu)rRV>e)8biThpq zaa0H|yZU`>Lj4(Ps;W1%<6j^jW!_NKYMSfn`&|9HtNR<-bHcC(&-e0DXovGqS@{lI zVY$ZkQdxwWq7SHLmZph4s03=cHO8-SHV(y%O)V$pqB?XLwe`Mq^%TvlgM}~<#(}03 z6xt!E5v@bDpGMu_Z&dasY;N@&s12zyD*GFvlClfx`T&l{<)|df)55MVk6P9(urf|; z!TQ%0dX|P5{Jf>li^lc1(Z_om^&`h(_S?4j4wdaK+xWbBxBwNIqHXPape`<>-WHXN z{&x1(D~*My_d^Y271qK1?O6X>Hc8ssgVLa;WB_WJyhQalP6x~0;+UIyRn#2!L+uOm zP#-KyP#+*0u`2FGbvSlMYp;wIs5ih6oE@N`WSfu5$`z;^Zb0o|+pr=2>yF2CvIo^e zC2Kp>6nudzaTNB&h|le3s(GmQe)`T9fd;6l{t9biU>AjND8%Yw9hvD|gnEgrLiKbL zYKpd@mgzgx@=DUxZk!So$*QR1b)B6slKN0o&a6d!nCwQ9IpE!+kcEbjZq|Wt)OyX2 zibzpsG-?^vK!v&~YD4ORTJJ+pp`V31Z-qO)$$0=3v2z%KH!)n39jm)7k386n1JzMU zw-PI%uZO*yVlX@PK}gTNg{a)vgE{aKYJ|zZFtehPv!JWjboCa_ftWzaHl0FQT#Q<$ z*HI&Xhy5^iPaDxt)N=Y76@f*lkgrFbza2Hg{irEBiOQ|BSQ4+IvOjq*pEn!xVL&}R zOhK>TTd4J(q_@vofca4)Jb_A@H&`F@^s)6m0`pLxg}VL#>cP)Y9eRa5(bv~C)QAsbA$*QnuMq=nL+Oe-f4TDdcZu?2sgX>DR=yLr#CE^69F$h1&t^ib;DAqkTt+W*c3Hqol)66z_pJ; zEz@bP{RwIny+Mtv_?LElb5wG6MQv#FQ8~2|V{83yrl1GxLUrUQ>croICwSiPsAcpR zHHR&E$LP_k7*)jOb8!%)-+m!KlD3e~}FsE+MNW&N+HTzQIm&FNtm4_t?uiaoCVIBF`cy5nz9H;y;f&JRNks37WoRZ#=! zfSQ6n0SbEHB-gM2BdKr4%J@5W#606H$);fe>enzg#{bH``HG<;wHdXA??SDnOQ@Xs z8|(Ny?**zumB!oaJkWxIMz9>Ujt`=Czz429fxA~=X<4GLvz#(d!a@!4%LxGs1B|}^?aXeKZAPR z-au_QcTf?0gv$PRs4YG88=rR?BT(%xQB(I31KOctO|=`u!4=e#p^|0?M&OTF3GbpV z%rVW*&+jaOQM6aU>^RD~3YCn%I3J>N?6c`Mz&z7g|HWviNJA5{b0}`6er|@(3&XMB z+S~AdsPoRC9uRw`O+g-1u9R{%LTxa;Q7@mdm=BktR?TVD6n}DNn#KCp2+Pj0Iq8TB z*$~Wy3s5hUBd7=e>FNn*+sF!_&aaI+ueYmzi@JV0>ZNoGOJl}4_Q}=^wVK)mC={VE zA9cYQ48u2=AJfgXjiMTsqu#-}0(HZCuAX_G{aI=o)c&y!HPYWO4Bw(wNBa4;f#pEu zLZAo*T~HS5;1^gM_o70cV1ZjcsN|}T+5y|6RzojT$cLg<%QvW`U5ZNP4XD*}7`5@7 zN3DjxFjVXR69wHcbfNtYCn@U2rJR*fSzp)H+o49%12uxds0WThb#N+bH7r4O=sQ>c z5p~}qsE(b*1X}+OD3qb$d9Z=MXtBt$yex*%UI~?Colx04($yEc`fd!T{W2ED52&0f zxY(9$Q|wECqUU+3DlyY>?p{Gf3D>yF1= zZr5kR2%qN_#=P98`3gEj{cEgBef>(?UtX07f=KF9hH>-ppx+os>5;DSdu0|ZA6(+$LjF6@Eo@c`_B zLopWqfjaLAYUFQG9r1r>?dec+p97VwQK$|!!=~5;i{k;*ecqsQAP{@4B~u#IYqSU| zG_|lfcE|g86g4I5*4gp1n49`jRC1;L-jcHz>iU|P2fJZ;oQ>Kit~eiKnAX3y-m*0d zs^?WOKek7GB27o#a2+c9k7HiEg_@EC8|*Du05t_gP$Mtr>a|h(Lo-x_J3D&^kMsN? z6m;XUs5zOB3hi3d+#W=Y@Vqm}vDw*1$Lf#X#yoRH$pWs}Cnu5)! z?EeXsjQ?z9{VU0GZnGPVL0ve*)mORtcIR=_m(UGV_Wpx~(ZAh7Uko)BHBeL7(%By? zP@jyI@C+(~DR!{_l}u%KSTc1(h435Hh`+;3K6;EA!OfkP)sIoH>omKpy#gxv>S8`@ zfqK9MRAjbbaHB#+>=bGs*8&t2$|vqX?A=yRjyf?fDk3FO`#>$%-T?K$wx}C-M@{7* zjKuk!3icru4N}`glB5I^H@gvs9 zG+bEk5N|o`cG%~&z+*@3H>25(`MjSvZ!ngiy~NM_?wER?<34XYW;tPzx{O-hcTtgj z7HntzeWIWU#QViYm=qP-oTv*5qt<^#)Ks-a<;W0JlFdZj@OxBbcBAI@2!`Pm)cxL| zav}7j{Rv5O4F3M_0EMX>IE{)x>r-~)&Zv+FP{}tNl?y9T9oyyFf5!3DFJUOQIcF}aNfY<1J-9gP!L?D#ttEzFPt-{JqDDRf)$vJ~ z1!ubU9jJ}z5bFASsOw+4<8RKg{&gVsuNIm#n45YIREX>2Wc&ivk+-O+igV7UBr$4A z@}fFa85N;=s43`#+7AZ1`UKRJEktd}+w>cak`zwUpx0`g^VZWOs0U_6WorRck`_jd zw5+Sgphj31)v?~FxgO-|qcM#71k{wRMLp*S)aUuZ00m9K9aM7sfm+9}P&Z6_!A1~< z8c{)4uY`(RBh&*sqc*I*s4aFpDi?NRG2Dmby7vAaEqeealHK&VFQ?M45JnJzpZpNH=6BV(~uG)^48`YuasJG<+)YtNS)O~lLR@L5M zotRvp(1V8GP$8>&&E~ikYR(&@=B_Pjih83$7(k6^9Y)}8R3vX>E_{tcFzavjQMwQZ zQ%`-}=N-Xm7*BK3_=df`+Mz--5Ubz_tcXXkKgPRh4-BA2GQ~L))xia*P_ILEbO&mA z9>Fqr4)rr*;#)p%2iCyAL<;`fHqt4m4$MJ)$t*!7)izW}PoU=bcU1Pqy<_HdRzWSd z&r#d=mRtbc{>uxq%0THkk3H+tmSU!yu0`@Tgg zBX*;n1J&Ufu6;2oLTgahpG0-ws;l30K0-a`b%25*;QQSd{OjwFa!_0s;k%FdR9%jeyP$4~yT29wc zd-^lfg|Q#n@=J*tL3z}Jt2>*ZHlU8E>qn#ZkNH>&7oon09$}RB#9V*b+;&0jd;!#k zvJGW7rN)qSkT#=Qc$}QK4*#^>74c#L1j76Tk3z zoiQhBbxm{bdcpcv^4z9DS^5N(e6LZfBJ`!rZ64IfdSY%LTP=p+(N`9MKmN0IpYF9q zE(&vVem_)_E=F~HwQJviVbre%C}{b-MLjtF8%wg(sGdilRz*3~+;>EszZ{i(TTvao zkBVgcx3*zm?vZ9i*JnAjj1~r1Ns1fyc z4snh~T{j6e1#3}z{0ZkR)Ry}Kl^g!|K?7a}3QEFa&RW=)dPnSymr={I>Ia*uk*FI@ zL9Ocrn3btmj4{*?e6+9KIG^k{qV-Wb>0;DQ`2Z_nDy~kX_1}Vm)_XV9@|l84sza#P zoS(# zAAIYDq2{ftgJ9daaIAs}7?cu2Q5*W}8 zYE#gS+n`p%AXNKU*FFn1m+Mg@IEWhQCDa2SxcVp5KoW=AdATts^(YL(&ZwjtkGlR) zs6P-4-FX`H;2Ws-{$Hr&m_3$1m~@dC%n?+`YoWH*HmD^164k-^s2guYy(@ll?Wa*A zzK7aj-(VIDkIkQdXzr@Swhq)o-KaH|z3l*V)as3|2?nR+S7>zo= zj;l9Dy}mo49?;d*hd76$20RMYp}-^xn(Nu_z-rV7!e-PBcA~y$j-f7iggXC~JN{Wb z>qu%;vPPhitPtw_%BYUlb?vQC=k>;XJm340LU6;tVjMVudY~`9ofwWvx`L>wsf^la znxh^t1l8fOu0GK@%efTw{l5;i?2e&2a1j%0{okRW9{!6;l8?9oQzY>7kN8-(s0S@c zXd_*VEvfIuGMFln-)n;nP#xQfG$?x;ZzpNe=(B!f2dI9NbL`P9~8!N)LWrOwg~m*a~_LhsxdNdH>y_{8+Kv&}>$-6GWan@~Bi z2ZI|HYL#3tA#Gh6ZJIXa>vrl&Iwwj%v^6+M`fYQ5zNF4yd=;Q0Gk4 zKCl7x;Qgp6xquqzU#KJu$!O0>8la#aWkEft2x_F2Q9Z2hY=I4^cSPM_7b;>$QTxDI z)OEK|5qOO1=xfxzk}#9)cm+_;tB>knpc4i4cnInSldvn!MMc1$*&-AV_287wY*>hT zL3g|(>cPF7!%zeI8g-w!uD%p?pUp@|0^Uy))RS}Wga@c8`46=L`NM2qNQP>!hU#!b z)B`_9y{7xR_6@FmKkB|GUHfgUPW>5@{QMg&MUM4Xo`OPB7ZrgHs0a5(g?J?DK@(9u zpN*Q+m8cv2fJ&}?sPm4XI{GW>`s>aIsOS9S49QA_wEk16fH_bXmOwqIBI?HVumd(l z?T~v=9es{UJ};Y1MLN_7YoP`(7nMV6Q2WDX)ODv&_q~PzHQb?~2S0TO-nhD#-7bia z3V9mTjdP>k>!n=118NHTq2_uc=E9wr8}GRG1mU(}rN9ET*AHj?=c6!&20dUi>IR2U zA^ru`(>tgR{)y_qbJPb*NQ5oJ^r+Am!af*Jt1V+zY*A0SOp@BJaDRkI*R!1m^~ zG-$&(?Yw~M$TifB@1i>L6cw?Ts2$9o)28k-R0q?bLY@uP(Y&Y!m2uWUO<8l)efkF| zXe6Uh9hiqok|n6**@AlT9@GsFx%zqMHPrgP3i7#ndDO;L6%~m< z8w$$eQK$`L9BO3qQAxN2)sgk6j_yQ_;0$KRhpwI|x1E<06^TNq^UI<-*a($`gE0(e zB1s?cwz~sIQ6s#I>hUvFPh;n?8)bABMcuF#>b%}q1IMC5de(UZ^Hcu|`(fI=_ST$& zO3rH-eE)~$vpGwF5gf>fdT=Gwl(azQLOax4c13k`uyZ`BBXeE-dsIjEpdxV`b^QhB zbquF|A2VwG$IEZ;^_-{+t6(8)h|&19YyTPb61nJnikGN=7U>WERC^OEQIB1~AN*Uj zHLxS~`&bdH74!%H-tQFDev-Wq>tFBV@f6h4Bd8IdMa}&s=Y3QTJahH;sE)=fY>`Nf zia-w3152asw-l9I>rmHkbnbS?4;5zp>%`Np;VLR?@1q{@$hE&ljXb1?eRyO*t?T+& z1t(%|Jclv(0hMf(irU817PVn5#1eP}b>7FKtbZj_jwwspjoPB>t1%3pVO30C${+l@U@cMm!gAD4K)nJq(w?nhM89dTYn-SBr*1fM$JU>Nn#G8U0=%s{;^Hp4G45|5!)LEt|MBPe7k z>ks}?c&W2VlyxXkIs0ZSi_x4n6qTGmVqScT3T^smyJ00PO5}QC4%%0ix5%D!#;)M! zCu`4(#sgaap%wk!4>TM_-FQ?byYV(uWbUBe4e2VIc~OyxLgh$PRI+wLy+!+>&L4~Q zaW-lrdWhP}eK8ifgqT+E|5OyT-U~RZpgxydqeA>8Dk;aILOmHnaSo~@3vn#&z>!$G ziXGpB$*3PdU4Oy(8){1KVsQO`qM(f>V^zB#FKR0;hiY%=+B>-RfvAy8LXB*WbE7+c z%y}K7IQ}oH;{~euga3_%(x@GAGX``Zyt=(^3!suL1{KoAsO0O2+827FLf#*>-bbM# zG|L@d?CL8~9bb<+e-CQJ$5B)B0F^thtF!)dQwXnNb5|F&&fB3*9Ey7IWYi63IG3Tm z4>qA9brjd&Z>XOS#@4iDcc7Nvn?w6&wQUNPpa!-I6~S$_0~W&lG-!{$g5~fwYG(|q zVR-6{*e6L)e7+MRz=3GaGqn)cF-$ zy)I^<9%w>Ab2J2%Okbh4&c&#?{lOhSgo@Bv?2cDld!^=bgCs965o7@fND1$y=%etp8FJG_q(^NUA!!q4t5vm>t)m-ezaekLOYQz$I7z4KE4&SP<$OH##eZOON?jcvJiusp}Jw)K1Ou_J!M zcJ1tVyY`lp%ds5oN1U-b*w6cwaT@Jga0^!K==a9(oL3lVNW;+2ZKP+g5A`S5nIX2} z|82%&UH#r~IHZR^_$Qc+dijHYvUwVZa(>m`w#OgBveZAI=D2hpLd=7PVjJos`&x%@ z;{obf`mz37Qn=U8IuPBTpK!RKH4dPC)&Se7;t#Y31h6LUyRjq29_07F#qOx~Pgnkb@1K*?8d90EC;9tLO zhg!#*P{-qp^7D&n<{YQu-x!U7(H83c*qZt$)cLK)_=CSi--*4c=N@YVT!15~AI8TR zs65Vos4VoAKlpFHx}tWpSYO)|6hyt{R%1OpfF&^bc8i8-ex*>7hU7EsWm5}ZQEz~!vHG_*C242+ zgMSR)1uM~h1J!}7vn=VlV-@N@qE>ZsGV)d1$L*97$)&i#>iG|-1FXN#DJ0{-B2+SMa`j(O9}YKN{W^JF4Ra zQArq$X|O(a!S0wCFW?Zok3+HbA?~mBf0cqp^c2JKH7Z#$9kwK?iILQYVJNOct>aCo zNbSb*cnsB%xJPU`rom>^`=GvIOS-IPS-^81=J_yeW32-VJr%3#bm>Mn(21s^f8w+s^~Zjh{N5i+((w2U%ZpE~h_kk#EIem(`2?$RJm$RJcp8RKUxEth3RHx?ckVcQ7g1Gw+n1OHOcg&$DMD9#0&n?#tMdLCD=>*`;)`V7?;ofyowry6 zyI-=^vJ*2<--CtlD(YpG;IckUSbv=;OkoO6p$@dTYF{kdFpBmJ*X+-1Tl{7(ohhi1 z@4`qth>F}Z=WA5*ene){OMKl1lngb%T&UwkF}VI?D0HEr1)jmf*cfNtum?OsJs|x} zOPVa0ntC174LhSc)DM;2!%-0%=llk>BhGRDfQ6~wz<}l^=`Ft(jp3+}e~!w|FHm#3 z0CnTFs4U)s+KBeM`VrKK&ZDO0KB{AXqmu0%YPrR^Z5vfORODLTX8kMcC)1z@97Xl~ zH0H$1sIAnyf7xw>W02Q{lWk6$aK`!o#&ywhSxbiqB>ab zFWY#gU@qz#oL8LwNA?|&H$dS_PH2de@mKr`TR*mu{f^P9Ke6Sw1nW~jjM|V=KeZ2( z?=ds=|4?ta)PLI_Qa3_P!``4x-H7WbRb5n4jX{lgCu%j_!J1g=nf=9uuTfJy0a@k&Z#o6d`5IJ~Z$_rf+le}H zH)=mPfI9CA>byIs9qaekgEy#-CU{}VnHn{)oT#KMfpIj6l_}@}wNa~~ zlXD1aBvVi$--&wgAy+?+m8oAubu9f$>u`2dJulYAqNoUuMJ4k=ROEic;NSoGokArV zUZb|$vajq0?NJ@;j(!}CT6W`5b3GB&p|$S#Ce+BbqL%4?)XsPsi{KqpL{t4|_s@iZ zEHvbxpc_`h64({>z~!hL{SOs^t*8h7gbA3VBa-^L*LL15)Igq~HmE{x><_K0BY&aJ zTa2}6|Ms0d@6J2c|2P_a@2#g_qb{6}+OxNyrr-?b#y6-Bj_e;Sq*0ik`j@De&N|cx z_oH6JKchCZo2U)ychpAo3N_VnKC=Fm-5EYwsPmvAQUTLrN7P)7L`7hNYoCRR#Aei- z?nF)1S=4!dpuTvXqwbgJlijZX>cKTp18p0ipc4n9ZtyK?>1)OSOb z#38|*wL2=8p5Yk9B4d(};O}gf;V2GNO==-Lf%@q*8B3BF*$r#jiO)>cQ|2k99vKoxa`Wfzo4X%AJ z>cY#Y4m?CX-~(!ZNRq}LkO{RK@}rWv3hKJ{sO$PW$D@|#!Zaa)U?{fGpwJvcU2xN# z_>VI*tzD1?bv!@nhS8|i(h&8)KBxgqMvZt4>ik`(^G~2ce-pKuo~I3j1V1#=rV9!F zqM!mQlwDCH9Expm3Tld;qLL|jdb?3^EJ(d3w!;zF9&h7xte7FhejSeusOQUQj>4wY zF9s;YWv|Vj$>z93SV-`v)jqhB6TU-@tX-Cn;A{3v)W)$9f5T&_k*>&U=WRtr@!1Wk`*}_A-3RoSr8m3@9 zyo@z4SA=zB0II_?P)WNMH5J>C0S3IEDa@i_WR4JTG^WZK5`1sZLv6h)QG5D&)P}Mh zHOB`q3~yi@AD`P8i~47|?Ewip3jnHCr+YXEx&mY zH&AaEX&X?I0%j9bWEP|Lht;T#Z9|3ji1VsD{sa~Jx7Z#-3)*>|G5FvA8Ad@jn1)J@ zW!MIf;$Vy@6cYSX>m{fgTtnTkY~hgL>$wVQO8TJgGsU?Wm0KGzGag1I^L;FXp9-`7 zl^kV?Sg0DJE@+9mQ6EKC&q=!(jT z{;oc@80%jRQ)vjrC8%UsiIwmQ*2Rp)ExCGP8tVN~`@!>+>iHd~3lc=cq5C_+>28$xu@mNJl{jvZEfD2Nn8gXFb>69yQ`Ys0$~eIy@7Vbn8*e z?*QuhW3K&*^D*jrudJCIIX~b5|p!%X2QJG3pv}M zuAhv0@Iq81*JE2ehR2GL-4hjBz5RQ64PSl1}6cvFe`~mCWaEuod5{$%noJaj3Zo@HESpN!TiK=#^ zPR_olWfDN$cpfUdm!n3o7xmx^7=d?C5sXvK%z?UZ4C?xRs8#VLYAaspj&H0Mu#sM; zA%+79s@sVTusro)m=pJ6E_~pQC#hlIcqLGwoP`DOEM`GpP1{McVGZh4QFA^Mm3%8u zIkh%GA&kNv)ZE{|Cin&w%6heI3fkis>H~2vzD4EEuG%5NUsRN+V82LB9nEY{|A6B;UaEPBx0U0ET7-B@aZt+;Z$GAKWm9q$N#cNa*EPIE zjrgM-@DjJStj>zs!Ahed)BqL2UZ`a?5S8_lQOj^XYBj8N9zuN)UB}Py4St4g+h_`i zVHXPHX&8z+F{G^-hI(LG%#F=3ACATBxCPaL%c%37pf;ws?JW6nUF9b+Xs!&sd*&?9c66uNn5Geg?JdDs;9HHA79wNDRZds43a)+>e@) zW2l|*B5G>>LWTYe{CeIXwb&66?KDssHwQ-eB(^h%{Hdus12ze zYNS0-5gLl>*mTrRx(Ky{p2KK-fSWK!ck@bsf|6-M4-3f#)JAat)v>d#{RV1I|3Pg? zNxra-mPFMXp+2cbUTYb{G{^=sw4MNk$H|9 z=|@*j(95PIHR`+^u3iiWP>(?+-5%6H9-<=l3N_%Qy@PfB`)?G~P!Bc2fvAqm#$mV| z`(vg)_9ND}*pvE8RC0FgYs>R8>ZRrHXUnt@wxZq^C*wXGhc)_JM1IB6TK}mB*z#(C z#W-OSM&Us$jlO~Qn~Soj2aH3FY&+(`yQrj0G|1i&MNrw@+Sv!SoX4VaYCcZK-5C7$ zKQ#v1fzPo32gYG7+<|&;hYqnXq(!I=B-YRn?+jaPGt~0U^<_x#&ktr|S?V89*OeY_ z8`1^T>Uo9>&_BZVfyEe5vfQMg3$w5q)YCSo4h%pg$sufqCvX<#9cgc`gII$41=Ir) zjy@=Y_QjWKsGb3t)DjJ}m2vkRfa4Kr! zSc2K`0_ywzHENlrpI|r2j#?#oQ5`AatcABn zLe1Sn%!tV+S_li`K4b=55zOk*jJ8I(|NW0W6g1bDFb%#yC11kXw&N8<9dG9hU>Nm9 z7=!yT3S-T&xvu0Kj=Ikd)D&Dpy$v6rmi5~?tbZ+&_;W3*lc7eG4mDSis1cMyZMn@c z62C?z>rT`SPdIO)Zu|^&UC2B$6YBhum>z4QK47}cWBqH+N7A4hEkb4IX3U4jP)YO> z6`7ByEKfb(LS7d2pq8lX2cd2}33ZG?1GBS z2-Jn+P;rUggQTve39)?5vU~m z9Cbl&RMLz@h4d@b$mXDSvW=(??nIrx4|T)SsGahT^D#D|{vT@psI%D4KZ<^>|4UZz zu3{)BTu0sb4l4A2q8{+CYxga&dK^?})1czKbxBDsOusz`1k)yxC0fPwNWE$hPv@URPud=dcZnV2lt|K;}+@x|DewQ^P*8nTMu=g&Z}7e3ds<6;tY4N>kR|)mpZr=sm7YYpne0-sx=KkYad+DTEXCr8fn&VNZ*YiqL zM6P0Rs<0~cucXa| zsp*D_$k(V2{0|lSW2m{m?COtD_kD+&qEs7fK;f91dLV{^LeU5HAu$nkgE^=NuS1RC z5bAJL=0aUx7S+M(7=fKJKYrufi;by2#?o5<6*t*~0;mwrarGZu{Tv48 z9yK+|H(Na)YD6_q9d3?_P*2xB67{;BirUz|MV+?@H8q)yuVWFgqD%&&tU>j2dRC_PfgBQB`Nz6t4jjLz-(FRl(wV@5h zoH*09@5RE@fB%v7U!6kQJ@z5d5%qFehtaqd%is&t4GQkHo;Sye)JLFl;vm++>sSNx z?z81P7%NlXk99HjPqu$FLA~B*{KWcKcJ8M^%k6K}I`#HjmZ!u5RKu|uHb!OdCe%js z*#Wz*0&2B1K;=+(R5A`ig?s`k`Ie)evjf%fV*v`f@D6HD-e4GJJZO=KLe*nXJ?@O^ z;4IX#T#LHl0Zf4BP|NccD(nA7-Tw{hx}=A!BN3=%43wgvkILq#r0If6nn9=@&qU4j z8q^K0pjN{Z)ReqNy@sby3=cow9J#G<5jrtDAi)t_D+H1M?_Nb{G;GE~$_d3sF1(x$YETHut@eA2b zLldk@eeOxyNbaEK^bgb=zd$`O)+q~da%@Ds7%DQ8QLAS=YVP-TtTQUN`kZC`>%BaV290bomc#j|WV?pS^1o3diT$f>&8cw=^-Qk59CiJ7s4aLW zs>6Fx54?zahulIX>jzYhWjM$BZ%rZ3IooI^qAoawio~y|3-6#h@(Gossm|M;Ul9MK zJ`$DHT`$<)J{OBn{|WWL7pNRde$n=WqL_<%?EnSsP=iq+*@xOV&Y?njA4_7qOLk!; z)QwxAMmPgC1#3}Bc?t{QZP%Xkvb_b1pzdD+H6=As%Q(=Uf=2oUDhGz6BJdSzC!2=4 zaG`S(D%lRBu6u$S*$31VWxiqqD1aJ31=It(xcUg}N_{0p>iwVSs)Z;D)$>-U3%|kQ zxDD&$W7OVW?wb2G9V&zeQCsX|)LSmrZ`NJ_Rd0@AI1bg(RjBiS4$Atw<4$<%PDp>< zE+~t-pfxH@(;n%1Slf|eGKEGo>0r~IRZ$iqW+J~do|76tb zd>-mKm+rFum9?qv*?P}~T3%78h%`g>v@>d?<6M2Vt8a52K~2#m)Prs~|3W44f2b)6 zxo-oCzU*7sP(45HjQhYISPhjEjZst64YgAa z#U{8MrxB^QsK0AI=}-0zOdI&i9^`)3cwU5Ec)MuaulKGweayut> z)%X8E3Yz=dSO=@Tw+GKbg?cp(#Elq<5g+VBqcQ5iy-~>;Kqis@Frn3_qXxDF_2BO@ z8*X>)SFsS!_a0DC&(nUiJvl#Wu1liUb!F7lv_>t*KB#559H-&|)VrYGCwov=R3!VN zuAhqP=o-{>cA_G85(B#M9tC|my+hqNB|qO}#v-Wo+7Q*D>8SG-p|0DBO4c)|5uQUW z!{3~DQ5(=hSI_7R4Zd`;qwW{!3k?L9Nog81XB|*C8i4A^2-Nahgo?ll)XQWC>Om(_ z`@(tDi0-@N?@%30>bLXqppF;9Vpt9J_8aLBga&`NJBfysG@Qbs*f%6J_!3%!>d0wS z2cKXC{Dit;h0xI8e$foKQ~v>TV((a?!MUD?I&UxL#S54feX&D>1J53ypb^(Z%~>N< z()C4c!9y_umtbW)iaI~RXQ9D4O^KRyZV2qRT3K4B31;oKg6JNst=aH={Qj9{{)3W zG?b4Q8vKKW-FT9Ek@$84UxLu!J0UqL7xH5z9mi-Kf&=ge)G{oP&>|Rxic}10->Bnk zh8jQzOs4hUn}S}qW3UDuz>AnLQK+{J@1brmF0tKsDr&EvgWB=dp_1)5>TP-tHI<)G zbDtrJu@U6TsOoq_!TNb z@sio`B&Z)!YrFac)N_tu@Fy({e*ZtCprm_^S{7b%dr*AT1!PkDSp$6C_KtUn<+%@z?-FOr#dFG&Q zxB)enM^O>-rM09>gbHO&)Kry0Ew7rcKF%GVg?iw3sGlEpp*k3NLO~;noh~%^-+qXX z4X6)y{)*~AczWCU%A#&C618f!qc)i5s0XCVU^`nlR-;}E>*E}3hJU%^l`;nRgMinA zg0gWkR>9R+2>*6w&15@SBUJk^=LXbucd#D5$2wR$v)yMgR;B&`D`RAs<-h<``ys5M z^`9V%-JmJz25V6#yhS~rVpe-_Yt*`)jumkO=E7&F^D|^KJE0!90c+t4*IpsJy-g>f z?(?(c`QGmoI-);3H2Cv;XVe_;MdiW?=WW!!@Cp^`WD&MyXTibLbGrI6)C1OFBpyK} z?@P>&4RYA38jZp4|78^Va9}T%#>kx3)9$E_tU)E|c2trbz;OH(HNyX}0#?pNNPYYk z9n0c{+;*R2dF^FZ2g`6?f7HgcIWOx!4uyL(=zabe71HMzh8go&mPesR+!VE3JEQi6 z!I%Z-U_;!ES~ZFC+mwZ4cIr)0?ZZ(KorxWAZGP5&@PbHN4&kVJ6so6zZ?jdX6MuBxKy~PoGgZOR z;NOzZha+jd;u%J_B{Xb;wrDpZ`(N zhk?JiMIb9GWW}8^sE{>6ExW;(6!)N#^E7IM`VGVIxob~R!j5M_9nX(C9)sF3J7X%X z|6vp~hcn!Pg{Wn=2{nR~uKgBjB+pSD@RhWYCPyu|yr?OxhDy@bm<@Zm`nRb2u0#!J zKjzl@zehoDu|%cp?UomHgAS+%_IHlPa@41xlI$#M)%=F~0J)3m*n89i5|y?N7DPp$ zI%@g0M@6_V2EYGDQP8rOhnmxksF%pUs0ZaPV;w4rT6Qs53Ok|R6-!Y`_yV#2f*ufw>QNQcNV;MH9El3)W~_<7p(2s9g59Vw z>iTY|>qeuN-#paRZ9zp~FKX@&qatwuHPFCA3fhTYqehUtqMeW()#H+`9)rr}7Pu1w z7@JrZuVn9rsLFPIb^KiCp}r3eVqf%P>`SU2YJXXXiIR)R6N8m{1^37N>AUh?WHsUt5d&;*DzN- zTQ#Be`7+Y_Z%RQ~z77?#H>hP&yn!WCG-_S9Ld{(-R7b|5A~4al&%j@0#Bc{Nm|>S1ea zjvD!HR0mI>lK6u24r*CHMXi$eO<4cxS<0rCoh48^RXbGD3_^`$9_q$Bun!(XJ-B2u zYp;O1t^sOcKy``YBZ8t_CP*Bu`L1eTjOIzqy4jIVvLgQSB8`=QTt< zs2yrK4MBC_5Grz4Q4fBEW$-_DyhsbXUv<<}1=>*1TnxpUI1~MN$DME=)qzi_8>eV# zMxb(}gtH=QhpdgdaXZvj`z7l7k*H-m%hgvR0||J$DX6DM-GOtck^F(W;Rjbw(#l32 zfod;|id+n8N@}Ctj{8x|(raz&JPB5&TGTlVb^QU1r}ckTH03Y9y_+J^@JQ?J=@IQ8WiC_o{s zgXKUyR3y5i9xw^>;!;$$pF)NF5~?FNQ4jpfwZBD;(BIMalT;W^JtOLV6;T~&ii%*@ zj;w!OFqj588TEm&6cyT^P$NHw8tD@Z!{?|DrRZcG%80sgIBFv+=Gx0*PU@9iy(flI zAL#0HItA>)C9Yu;YGc@iTK~VIviLcwBmbcuknD5oU|Q5j@}gEzX$-?gmd(jO;qGwqwbfwizQk3bw4U>?I4VMKFfPyc67;o(RH!XAm$Qg#FX!s@ovlzE z=;9oLdV5a9DBOVM@d-A>$bR;@J{GG`{|WVS`m8_ezbb{26g20fQ8(C%_3#s4Q&L38DixzjNpHeSMzq z`Oov*{N|jQIdkUB^1k=Y&5eY9C@c@hK^Oeo)~7?+ML$4U^;=*yco51Ox;>ixFWV_{ zjMLErz69myT?%FY7Q*?kwgetS9zV`pY~=o-D{>m_4)4J@*m1mhNAxAEjl3I% z!araSA{R8loUCI~KQi}z%VBG&01v}vA3OPV3b#<7I34@o6)3AXbE4TDSD|!N>C8WRD+yUjF zISysY?!%{GiAhHGg>sDufU@s{;Vjq?j)8}u9No#2y^f|jI+Br&huTbq5~?XsZq0s# zGDQcWjO3E7S5u6>Iuv~)DD^u+*z8KH&VX`1u?hBp*S=)`?;`X1ET>}~tUBB2*aDBiY?zkj^nSNfhp(L8Z$fa* zaXOBp-vV>sS6`bar=91Tb73rC>>9MvTGKm zl95m^g%aXSDEoS=UBR)ytc{XTI;sTatgiuO5w?c1=(<8#LxZ8%84tyw=};D98kB9j z%4Qyv?U{O;jNHBYEi`9;7>q{l1!aGK1;xQ{p)9IZP!`z%C=t00<+58k-P|eFfhCY* zpcB@&Izjs+;bf~R2pxEW@zG#tCi{MIWj({MZd1bazqjKhcEbI6aOI9w}>DNLoK zE@Zl+7`WD4{SLw%$ko=F)p`j^s1w&a`6q+SHI!Ape*^m$#&0y&kj=0cvR}5-F#`^P zKSQ<2-1)46U8Q`pxxwiNQ+uE|My4@ru*K>964~J}2H8KyT=!eSTF5hCOSl%wK6Y$1 zkLx0#T%7tssrL>13GRjwaQHSeutiYxccIux-_HJ*j;?Gs2SmsY9ASiQVSV(|b~?Qu z7TW>kol(>-^Ba=SUHpP+v!*f=Rr9~I_xnAQMtWN?`Ozfg{{#~g73h?@FUo8 zU#io)U$gg_5jENGbS$EvAB@0}r*q9o*YJSTu^9bWSQmyKbb9}o^mQnU^&}KWZbI3< zNr%i@nG7c(m&`N#0u~?#<(m`mZmOMm>##ZNcR)EP{)WTg3r9=@zJp7U%O7=mzXyB` z?1=o*F>^A`g%ax4$IUfjIBbPH55~evZ~y~(=7br*v;yIFq4(O|&G5S%k9r7O79=gw(H8luwkfl0S zlW9Z22`C3i_&Ia+YXfC5jfHaLE``tD^3ehBL!uYz({d<8ax4X$u|F8g;38QBhbunP>jY9cZWrXX*J4PcFH zoMbrG9Tp>}UN={_-Z#w6>li4ZKMUociMeTx>h4gE-j85yI1|bMw!l4ea3%7}5|;Nn;@%?v5?X``MEBQcGIiMN_tv z<^9OSYWOT2HS)E*A?;S$a`d9%L@1Zzt5B}*_n}A7LYS5z4iqn#=OuZg+x#$i1L190QZ!r*?Thl%u-POZH#G3YPc2J`GC9RzUGI z2TG`qLz(M~Q2zJx41d$Xx{4;Wd2j;d1yI^|39uaB!htXf`d6~Nt3DCRV($*+Zuu1S zm;Ha6ObB!a8pGA0G;9nLV1HN_u7I-oi=d1!w6f*Bnl*sp@In|0*T5O@1Y88)4KnRZ zSFyZDeH;{fLtv_${Y%Kiz?0AqmUml@YVa8-2Sq%T4rfByrps+PAIdwTt8hM4Rn1f` zfUhI3glW(jY^HD?loN9q42HSER;t(YYbdIrP|uh-dlqtWa6AwBC+Ch=;mgQPs`34o zK78;P%GGbG$1KwGum$o<)h+KyHx)XOzlO317eKj8XV}~UWvU9Q^Z6&qTt^|>=5HvA zrhJ&0`zlZxhQp^|BPgr88I;}7&6Yp0<%O^s`khd=>t!eo+=UV;tA-g^RVcftX(}06 z<(;8S!7wO}{9tnEDeuAX;=hhaXy4%xKz01y~u<>*-agx*m(!a+86;x!|Cuf z=v&i7DD^EeawexhSqtN!oYlX;;V`h4)EDcO4UnI4E|Lp`3)>p*YgVOZMMjGO{X1LAe?(fQj$`ln_>^ zYkA)|c%XFD7bd_#P(qyn#c&Rkx!wa=qmEN{`B__k3(6F#XtT!3!pgG$E0GaHQLq(^ zhtI>wP}am6C>>vivZ{ZBa$fua!(iZxmiK{09F+56H(U)%#aNDsFdM!P6YE*tH#)1~ zT;$hd+5ch8;cYVSp{Ufr^8SKg0vv$sXlO<@5Xzhmhi%};P#n*Pvh7}LWH}bXIZ*a{ z!^W2PSx-Kc#nv{?a1m^cd=JVLHEqKF4=2;3iCH{TpvW0erlbJ&gOB0Q@V$7;dmHX< zYC6~qWvUt{nD*nLob^lLEO-~Tgp-?D-h0VBDA$UIP|lAR6WRZ@$V^SNymvI2P~^K% zLK*y$@wh7#!^@yV;&&(~rE1O`!g5fiuqJ#O)`zkdT0&VnlNb5scF7Nu zks1W0{4*$L{(M-Dxm*rq%5?)D zo+l8z@pH^!fO~ZME`R-2W`C;&y=3Uz%s};~F3$8QAMLxw9lV9QY!h!fB>^P8E=vH5 z^K`-*{^^SDx~8X!*Ewqzs2rV=ZdZGIri^s${ z(qaiS>2)2vHZXDwrN=0Jnm%?A=*to_5_i(v-Z~uP;R5uK{Y*0yX_62HsSivOA6 z_|@*Oh%xWQJ~4KjL>Ff3yU|*1wvuRbp0Z{#64D)X`}Li*{wh&h>q30XNyJH&b>zBm zHCT687ouYIuyyaM3c7GzQosS*D^rUn1K5exaqE*@HECH{whSqnS4BN%y<0`;%=Hn< zrHj^kV&1`*arhyr1nvCryA!Xc&<~=epY5xZkGAuhbb}4<$bELN8}NJ>B|T}?l>Yi5 zH@AwOjqD6aMydg<-({(nwRcW2PF(kB^J<`u8ErT~* zh}=e4#qPPfp1#qe0(Hj5Ky^g#*%;mYJhpzMl&}1EWZAWb;(?^@=n}CY-~S-HWjl3C zQ8pLPUSZZM@+wbxADxgL?&?IXkG<_UambI;?JoK2Y1x&nEwtOEmuE*c_??`jr}48R zt)C=?{0^3?*!~C8{*fK`mgtJKYm+C)W0y*+5PXv~gPH+4d6V0B4!P>Qs_DU-+^U+M zzNw|_DZ9mM=q1h8#hY5HA9dvBL29?2zd10h1vP%bt2bYHl@`vU9dS;S=zN_ zgqo=*Z}F(U`ll@saYw0hn&?U@#@iLxX=M8)x{=vq6& z)d}5hXT0jCXYPzpk979V_^?IPk>pR12D9*j8SHr`zYU#z2$!=MR_f4Q5h_b3?}`oj zoNkv=FNd;M$!F8nO`C0c{;p`>bgaFH_FuYSSG0Ob`|S=1dKX#J_jXU3d`qu`7pkQBR8Ste0^h2OI1_H>}{!D)MNL$eT%VKjuwq{`d*Lfu6OJW zS6B3ny-BV^lvE;imEltQ$<(d(C8?+NtbK_A+y7xdi5Qoqo}a$4&#jhd-~Ca3BPh2R zK^SpO(#`iL2Bo9<2rH7>;>jY|9m{KU`u-60yUy9~A25hIIapiGs~_cauv%MR+3yY; z_>cY;+6$o>t#6}GppU<(`LeE++txJzO%H19w6}POo}3#S)Z-uRSCb!%^^thdL>J_G z{K{hCNm{3U4@9epI_^LtRY#9J5aG9!eokXwQeB;KAWD6tiw=y4^uf+-dOAXU$B`e4 z*F4&B1dvZc??e8a=#WG7#Dgte56IQS(k*)KhSlr3@L*u%W3)MTWD0GsH_`S*ys8g1 zHe$%9QSXipJ>*vZ)^Ue=Dy`EGxn1kA^9-%hurPysXPtW}JfI%+r_xh2Z6sa7pEcSy zudVeKnhIP*1NG3n@@lM}nAcu~>ViDCU!)y{>Ueiat9(!JN$g4Dp{O_Y!4pZz)c95> z9MVRaHd#n|O>SnYuPh0Z(dR>Sp;!yXl` zT}PtSa-DD_+DgC;unZ#MOam59CNE@bnY>a8lvwU^Y_iAmd5k7+V6OXI;ta&$GXa3 zfj^~mgwwh!(O;*BQFdC-;^#Ly^LUhcMHe5J6CmtFxGJHOPsFO@dg2L>%GS&Ic}3@* z7^KeXxPlMVUpk}U-N*<$EzhejJ%!tG9D_e@bZuCJ)9Gn8dj96!k)xZRjJ4+CLxP@g z(qHB3Stq9kl%ghY=N!wa6+kUXi*(GX1*%XVJr&Ib-}iKT)m(Qy?NQtGgwy`&Q$6c+ zxQf)-r$f{PU3mKKS|za=M%$9~)(U$oi2DK}GaAlCw}Nth1H($~UD!xn(&>ebAafE-CD5Oz{ZaaS=+Yic4!@4cbpf zHy_uV>69Y>pk&*fdz6$%yN*fPKPf*y9>qmuQU^C1B>C@D(~i`R#QrzMtyb?*6iwL|+|2vHAp zBtJjY$rt20uLoXuhPj@8A)Z^8+za7BEot6@S0mfW#<-Ki%zdr>E{3RzI`U$oTBZkI zj0ieJt%r0{21o0X-$pG-4Rq#34>!977o)A_Sou=Bilfw2olrc;I)=6VIjT3F{`c#HG09v zde-G6rF7Bdo(Vsr>w`~{2GR0Kx=Wk3`1#Ltn!3Yje;hBmQ2qk)LOt=<@R(!d(&=*p zT1hi$S(?$ULO%_C8ZG!P5XS--4KvYyqKkg@54}%L(oZ%I;Psc}U!^tw;)*u{0axB= zzSu6UOX-u;6J04@am3|k`khCMGWHyNNxf+D`B?C!&TdASuQRT^?bi@(KT4aTZLEW@ zhWJhyAI^w;wu5 zhb1B~2>Dmt>6$zEIxYDxc@Bjp4+|S;u>*lEkt$p1k8BltYN4d%53zc$&kx6tNjbUcxD@D%`#s`$J_ z=iUqqxJJv7NOg$hDoQ1NqaWP#;7#zYz_?#1528Go(PlHM&B$ZOCt@v^9*|$z8h-cUXiw`HtS&{C zbe39A(r(@Ewx`p_l+?#|ASDy1%~Lr?Gx8q%X@I>aX%kjTQ@1~_UMTk>U&hB;mFH$KA<_yQ5}(oz-MoiKhoz zb?P^aej%&fpC!tbNxR|W6PGsM@|l(vVEH8dzhYL0Qa%GqSVMXb?K>oEZ)u;BDsAW@ zXT_}IGCqHlD)pMEQ+lOjU99Lc@6G>+X_E%{g#K5`7~tdoUui#Ob)Ph>)~k25#6dlV z^sen_(R;{{lmWd54owl||5QjzspPCx<{u?#?Fafa`mfp91AUsi{\n" "Language-Team: \n" "Language: pt_BR\n" @@ -5960,7 +5960,7 @@ msgstr "Ferramenta de QRCode" #: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 msgid "Copper Thieving Tool" -msgstr "Ferramenta de Retirada de Cobre" +msgstr "Ferramenta de Adição de Cobre" #: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 #: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 @@ -11885,14 +11885,14 @@ msgstr "Define a cor de fundo do QRCode." #: flatcamGUI/PreferencesUI.py:6043 msgid "Copper Thieving Tool Options" -msgstr "Opções da ferramenta Retirada de Cobre" +msgstr "Opções da ferramenta Adição de Cobre" #: flatcamGUI/PreferencesUI.py:6055 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." msgstr "" -"Uma ferramenta para gerar uma Retirada de cobre que pode ser adicionada\n" +"Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n" "para um arquivo Gerber selecionado." #: flatcamGUI/PreferencesUI.py:6063 @@ -11910,7 +11910,7 @@ msgid "" "(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 Retirada de cobre\n" +"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." @@ -11938,10 +11938,10 @@ msgid "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." msgstr "" -"- 'Própria' - a retirada de cobre é baseada no próprio objeto a ser limpo.\n" +"- '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' - retirará o cobre dentro da área do objeto " +"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " "especificado." #: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 @@ -11988,7 +11988,7 @@ msgid "" "- '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' - o cobre será retirado como um polígono sólido.\n" +"- 'Sólido' - o cobre será adicionado como 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." @@ -12075,7 +12075,7 @@ 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 retirada de cobre\n" +"Distância entre os possíveis elementos de adição de cobre\n" "e/ou barra e as aberturas reais na máscara." #: flatcamGUI/PreferencesUI.py:6298 @@ -12879,7 +12879,7 @@ msgstr "Não há nenhum objeto FlatCAM selecionado ..." #: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:260 msgid "Gerber Object to which will be added a copper thieving." -msgstr "Objeto Gerber ao qual será adicionada uma retirada de cobre." +msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre." #: flatcamTools/ToolCopperThieving.py:98 msgid "" @@ -12887,7 +12887,7 @@ msgid "" "(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 retirada de cobre\n" +"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." @@ -12900,10 +12900,10 @@ msgid "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." msgstr "" -"- 'Própria' - a retirada de cobre é baseada no próprio objeto a ser limpo.\n" +"- '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' - retirará o cobre dentro da área do objeto " +"- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " "especificado." #: flatcamTools/ToolCopperThieving.py:138 @@ -12912,16 +12912,11 @@ msgid "Ref. Type" msgstr "Tipo de Ref." #: flatcamTools/ToolCopperThieving.py:140 -#, fuzzy -#| msgid "" -#| "The type of FlatCAM object to be used as non copper clearing reference.\n" -#| "It can be Gerber, Excellon or Geometry." 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 retirada de " -"cobre.\n" +"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:144 flatcamTools/ToolDblSided.py:213 @@ -12964,14 +12959,14 @@ msgid "" "- '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 retirada de cobre será um polígono sólido.\n" +"- '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." #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" -msgstr "Inserir retirada de cobre" +msgstr "Inserir adição de cobre" #: flatcamTools/ToolCopperThieving.py:328 msgid "" @@ -13052,7 +13047,7 @@ msgid "" "the robber bar if those were generated." msgstr "" "Adicionará à geometria do gerber máscara de solda\n" -"as geometrias da retirada de cobre e/ou\n" +"as geometrias da adição de cobre e/ou\n" "a barra, se elas foram geradas." #: flatcamTools/ToolCopperThieving.py:620 @@ -13094,7 +13089,7 @@ msgstr "Anexar arquivo fonte" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 msgid "Copper Thieving Tool done." -msgstr "Área de Retirada de Cobre." +msgstr "Área de Adição de Cobre." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 @@ -13131,20 +13126,20 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:940 #: flatcamTools/ToolCopperThieving.py:1001 msgid "Thieving" -msgstr "Retirada" +msgstr "Adição" #: flatcamTools/ToolCopperThieving.py:947 msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Ferramenta de Retirada de Cobre iniciada. Lendo parâmetros." +msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros." #: flatcamTools/ToolCopperThieving.py:972 msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Ferramenta de Retirada de Cobre. Preparando polígonos de isolação." +msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação." #: flatcamTools/ToolCopperThieving.py:1017 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" -"Ferramenta de Retirada de Cobre. Preparando áreas para preencher com cobre." +"Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre." #: flatcamTools/ToolCopperThieving.py:1028 flatcamTools/ToolOptimal.py:349 #: flatcamTools/ToolPanelize.py:798 flatcamTools/ToolRulesCheck.py:1118 @@ -13167,7 +13162,7 @@ msgstr "O tipo do objeto de referência não é suportado." #: flatcamTools/ToolCopperThieving.py:1103 msgid "Copper Thieving Tool. Appending new geometry and buffering." -msgstr "Ferramenta de Retirada de Cobre. Anexando nova geometria e buffer." +msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer." #: flatcamTools/ToolCopperThieving.py:1119 msgid "Create geometry" @@ -13188,7 +13183,7 @@ msgstr "Geração de Máscara de Revestimento Padrão concluída." #: flatcamTools/ToolCopperThieving.py:1543 msgid "Copper Thieving Tool exit." -msgstr "Sair da Ferramenta de Retirada de Cobre." +msgstr "Sair da Ferramenta de Adição de Cobre." #: flatcamTools/ToolCutOut.py:42 msgid "Cutout PCB" From cee8c223a85d92bee65824159c832dc7f2626609 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 04:14:58 +0200 Subject: [PATCH 08/36] - small changes in the Geometry UI --- FlatCAMApp.py | 3 +-- README.md | 4 +++ camlib.py | 3 +-- flatcamGUI/ObjectUI.py | 57 ++++++++++++++++++++++++++++++++---------- 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 591a2088..f2d0d450 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -7385,8 +7385,7 @@ class App(QtCore.QObject): self.ui.rel_position_label.setText("Dx: %.4f   Dy: " "%.4f    " % (dx, dy)) - self.inform.emit('[success] %s' % - _("Done.")) + self.inform.emit('[success] %s' % _("Done.")) return location def on_copy_object(self): diff --git a/README.md b/README.md index 80de4179..6b41261a 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing. ================================================= +10.12.2019 + +- small changes in the Geometry UI + 9.12.2019 - updated the border for fit view on OpenGL graphic mode diff --git a/camlib.py b/camlib.py index 5132ded4..16841964 100644 --- a/camlib.py +++ b/camlib.py @@ -4602,8 +4602,7 @@ class CNCjob(Geometry): # For Incremental coordinates type G91 # next_x = pt[0] - prev_x # next_y = pt[1] - prev_y - self.app.inform.emit('[ERROR_NOTCL] %s' % - _('G91 coordinates not implemented ...')) + self.app.inform.emit('[ERROR_NOTCL] %s' % _('G91 coordinates not implemented ...')) next_x = pt[0] next_y = pt[1] diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index 26c53133..b31bbbc2 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -158,6 +158,8 @@ class GerberObjectUI(ObjectUI): ObjectUI.__init__(self, title=_('Gerber Object'), parent=parent, decimals=decimals) self.decimals = decimals + self.custom_box.addWidget(QtWidgets.QLabel('')) + # Plot options grid0 = QtWidgets.QGridLayout() grid0.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) @@ -165,10 +167,20 @@ class GerberObjectUI(ObjectUI): grid0.setColumnStretch(0, 0) grid0.setColumnStretch(1, 1) + # Plot CB + self.plot_cb = FCCheckBox() + self.plot_cb.setToolTip( + _("Plot (show) this object.") + ) + plot_label = QtWidgets.QLabel('%s:' % _("Plot")) + + grid0.addWidget(plot_label, 0, 0) + grid0.addWidget(self.plot_cb, 0, 1) + self.plot_options_label = QtWidgets.QLabel("%s:" % _("Plot Options")) self.plot_options_label.setMinimumWidth(90) - grid0.addWidget(self.plot_options_label, 0, 0) + grid0.addWidget(self.plot_options_label, 1, 0) # Solid CB self.solid_cb = FCCheckBox(label=_('Solid')) @@ -176,23 +188,15 @@ class GerberObjectUI(ObjectUI): _("Solid color polygons.") ) self.solid_cb.setMinimumWidth(50) - grid0.addWidget(self.solid_cb, 0, 1) + grid0.addWidget(self.solid_cb, 1, 1) # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_('M-Color')) + self.multicolored_cb = FCCheckBox(label=_('Multi-Color')) self.multicolored_cb.setToolTip( _("Draw polygons in different colors.") ) self.multicolored_cb.setMinimumWidth(55) - grid0.addWidget(self.multicolored_cb, 0, 2) - - # Plot CB - self.plot_cb = FCCheckBox(_('Plot')) - self.plot_cb.setToolTip( - _("Plot (show) this object.") - ) - self.plot_cb.setMinimumWidth(59) - grid0.addWidget(self.plot_cb, 0, 3) + grid0.addWidget(self.multicolored_cb, 1, 2) # ## Object name self.name_hlay = QtWidgets.QHBoxLayout() @@ -264,7 +268,10 @@ class GerberObjectUI(ObjectUI): # start with apertures table hidden self.apertures_table.setVisible(False) - self.custom_box.addWidget(QtWidgets.QLabel('')) + 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")) @@ -552,6 +559,12 @@ class GerberObjectUI(ObjectUI): _("Create the Geometry Object\n" "for non-copper routing.") ) + self.generate_ncc_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) grid2.addWidget(self.clearcopper_label, 1, 0) grid2.addWidget(self.generate_ncc_button, 1, 1) @@ -568,6 +581,12 @@ class GerberObjectUI(ObjectUI): _("Generate the geometry for\n" "the board cutout.") ) + self.generate_cutout_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) grid2.addWidget(self.board_cutout_label, 2, 0) grid2.addWidget(self.generate_cutout_button, 2, 1) @@ -1617,6 +1636,12 @@ class GeometryObjectUI(ObjectUI): self.generate_cnc_button.setToolTip( _("Generate the CNC Job object.") ) + self.generate_cnc_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) self.geo_param_box.addWidget(self.generate_cnc_button) # ############## @@ -1638,6 +1663,12 @@ class GeometryObjectUI(ObjectUI): self.paint_tool_button.setToolTip( _("Launch Paint Tool in Tools Tab.") ) + self.paint_tool_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) self.geo_tools_box.addWidget(self.paint_tool_button) From 511ebc274f767eda2db4c216bc46b4f30d6a46cb Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 05:28:02 +0200 Subject: [PATCH 09/36] - now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length --- FlatCAMApp.py | 2 + FlatCAMCommon.py | 37 +++++++++++----- FlatCAMObj.py | 19 ++++++-- README.md | 1 + camlib.py | 65 +++++++++++++++++++--------- flatcamGUI/ObjectUI.py | 17 +++++++- flatcamGUI/PreferencesUI.py | 15 ++++++- flatcamTools/ToolNonCopperClear.py | 1 + flatcamTools/ToolPaint.py | 2 + tclCommands/TclCommandCncjob.py | 5 +++ tclCommands/TclCommandCopperClear.py | 1 + tclCommands/TclCommandPaint.py | 1 + 12 files changed, 129 insertions(+), 37 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index f2d0d450..7249c5e2 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -668,6 +668,7 @@ class App(QtCore.QObject): "geometry_startz": None, "geometry_feedrate_rapid": 1500, "geometry_extracut": False, + "geometry_extracut_length": 0.1, "geometry_z_pdepth": -0.02, "geometry_f_plunge": False, "geometry_spindledir": 'CW', @@ -1260,6 +1261,7 @@ class App(QtCore.QObject): "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.cncfeedrate_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, diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py index e612247f..fee20344 100644 --- a/FlatCAMCommon.py +++ b/FlatCAMCommon.py @@ -505,7 +505,7 @@ class ToolsDB(QtWidgets.QWidget): self.table_widget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) table_hlay.addWidget(self.table_widget) - self.table_widget.setColumnCount(26) + self.table_widget.setColumnCount(27) # self.table_widget.setColumnWidth(0, 20) self.table_widget.setHorizontalHeaderLabels( [ @@ -530,6 +530,7 @@ class ToolsDB(QtWidgets.QWidget): _("Dwelltime"), _("Preprocessor"), _("ExtraCut"), + _("E-Cut Length"), _("Toolchange"), _("Toolchange XY"), _("Toolchange Z"), @@ -620,23 +621,30 @@ class ToolsDB(QtWidgets.QWidget): "such as that this point is covered by this extra cut to\n" "ensure a complete isolation.")) self.table_widget.horizontalHeaderItem(21).setToolTip( + _("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.")) + self.table_widget.horizontalHeaderItem(22).setToolTip( _("Toolchange.\n" "It will create a toolchange event.\n" "The kind of toolchange is determined by\n" "the preprocessor file.")) - self.table_widget.horizontalHeaderItem(22).setToolTip( + self.table_widget.horizontalHeaderItem(23).setToolTip( _("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.")) - self.table_widget.horizontalHeaderItem(23).setToolTip( + self.table_widget.horizontalHeaderItem(24).setToolTip( _("Toolchange Z.\n" "The position on Z plane where the tool change event take place.")) - self.table_widget.horizontalHeaderItem(24).setToolTip( + self.table_widget.horizontalHeaderItem(25).setToolTip( _("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.")) - self.table_widget.horizontalHeaderItem(25).setToolTip( + self.table_widget.horizontalHeaderItem(26).setToolTip( _("End Z.\n" "A position on Z plane to move immediately after job stop.")) @@ -913,12 +921,18 @@ class ToolsDB(QtWidgets.QWidget): ecut_item.set_value(data['extracut']) widget.setCellWidget(row, 20, ecut_item) + ecut_length_item = FCDoubleSpinner() + ecut_length_item.set_precision(self.decimals) + ecut_length_item.set_range(0.0, 9999.9999) + ecut_length_item.set_value(data['extracut_length']) + widget.setCellWidget(row, 21, ecut_length_item) + toolchange_item = FCCheckBox() toolchange_item.set_value(data['toolchange']) - widget.setCellWidget(row, 21, toolchange_item) + widget.setCellWidget(row, 22, toolchange_item) toolchangexy_item = QtWidgets.QTableWidgetItem(str(data['toolchangexy']) if data['toolchangexy'] else '') - widget.setItem(row, 22, toolchangexy_item) + widget.setItem(row, 23, toolchangexy_item) toolchangez_item = FCDoubleSpinner() toolchangez_item.set_precision(self.decimals) @@ -929,10 +943,10 @@ class ToolsDB(QtWidgets.QWidget): toolchangez_item.set_range(0.0000, 9999.9999) toolchangez_item.set_value(float(data['toolchangez'])) - widget.setCellWidget(row, 23, toolchangez_item) + widget.setCellWidget(row, 24, toolchangez_item) startz_item = QtWidgets.QTableWidgetItem(str(data['startz']) if data['startz'] else '') - widget.setItem(row, 24, startz_item) + widget.setItem(row, 25, startz_item) endz_item = FCDoubleSpinner() endz_item.set_precision(self.decimals) @@ -943,7 +957,7 @@ class ToolsDB(QtWidgets.QWidget): endz_item.set_range(0.0000, 9999.9999) endz_item.set_value(float(data['endz'])) - widget.setCellWidget(row, 25, endz_item) + widget.setCellWidget(row, 26, endz_item) def on_tool_add(self): """ @@ -970,6 +984,7 @@ class ToolsDB(QtWidgets.QWidget): "dwelltime": float(self.app.defaults["geometry_dwelltime"]), "ppname_g": self.app.defaults["geometry_ppname_g"], "extracut": self.app.defaults["geometry_extracut"], + "extracut_length": self.app.defaults["geometry_extracut_length"], "toolchange": self.app.defaults["geometry_toolchange"], "toolchangexy": self.app.defaults["geometry_toolchangexy"], "toolchangez": float(self.app.defaults["geometry_toolchangez"]), @@ -1267,6 +1282,8 @@ class ToolsDB(QtWidgets.QWidget): default_data['ppname_g'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'ExtraCut': default_data['extracut'] = self.table_widget.cellWidget(row, col).get_value() + elif column_header_text == "E-Cut Length": + default_data['extracut_length'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'Toolchange': default_data['toolchange'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'Toolchange XY': diff --git a/FlatCAMObj.py b/FlatCAMObj.py index d760d812..43f9661d 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -1242,6 +1242,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): "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'], @@ -3445,6 +3446,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): "multidepth": False, "depthperpass": 0.002, "extracut": False, + "extracut_length": 0.1, "endz": 2.0, "startz": None, "toolchange": False, @@ -3684,6 +3686,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): "feedrate_probe": self.ui.feedrate_probe_entry, "depthperpass": self.ui.maxdepth_entry, "extracut": self.ui.extracut_cb, + "extracut_length": self.ui.e_cut_entry, "toolchange": self.ui.toolchangeg_cb, "toolchangez": self.ui.toolchangez_entry, "endz": self.ui.gendz_entry, @@ -3722,6 +3725,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): "ppname_g": None, "depthperpass": None, "extracut": None, + "extracut_length": None, "toolchange": None, "toolchangez": None, "endz": None, @@ -3814,6 +3818,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.fr_rapidlabel.hide() self.ui.cncfeedrate_rapid_entry.hide() self.ui.extracut_cb.hide() + self.ui.e_cut_entry.hide() self.ui.pdepth_label.hide() self.ui.pdepth_entry.hide() self.ui.feedrate_probe_label.hide() @@ -3821,6 +3826,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): else: self.ui.level.setText('%s' % _('Advanced')) + self.ui.e_cut_entry.setDisabled(True) + self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click) self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False)) @@ -4975,6 +4982,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): feedrate_rapid = tools_dict[tooluid_key]['data']["feedrate_rapid"] multidepth = tools_dict[tooluid_key]['data']["multidepth"] extracut = tools_dict[tooluid_key]['data']["extracut"] + extracut_length = tools_dict[tooluid_key]['data']["extracut_length"] depthpercut = tools_dict[tooluid_key]['data']["depthperpass"] toolchange = tools_dict[tooluid_key]['data']["toolchange"] toolchangez = tools_dict[tooluid_key]['data']["toolchangez"] @@ -5006,7 +5014,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): feedrate=feedrate, feedrate_z=feedrate_z, feedrate_rapid=feedrate_rapid, spindlespeed=spindlespeed, spindledir=spindledir, dwell=dwell, dwelltime=dwelltime, multidepth=multidepth, depthpercut=depthpercut, - extracut=extracut, startz=startz, endz=endz, + extracut=extracut, extracut_length=extracut_length, startz=startz, endz=endz, toolchange=toolchange, toolchangez=toolchangez, toolchangexy=toolchangexy, pp_geometry_name=pp_geometry_name, tool_no=tool_cnt) @@ -5127,6 +5135,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): feedrate_rapid = tools_dict[tooluid_key]['data']["feedrate_rapid"] multidepth = tools_dict[tooluid_key]['data']["multidepth"] extracut = tools_dict[tooluid_key]['data']["extracut"] + extracut_length = tools_dict[tooluid_key]['data']["extracut_length"] depthpercut = tools_dict[tooluid_key]['data']["depthperpass"] toolchange = tools_dict[tooluid_key]['data']["toolchange"] toolchangez = tools_dict[tooluid_key]['data']["toolchangez"] @@ -5158,7 +5167,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): feedrate=feedrate, feedrate_z=feedrate_z, feedrate_rapid=feedrate_rapid, spindlespeed=spindlespeed, spindledir=spindledir, dwell=dwell, dwelltime=dwelltime, multidepth=multidepth, depthpercut=depthpercut, - extracut=extracut, startz=startz, endz=endz, + extracut=extracut, extracut_length=extracut_length, startz=startz, endz=endz, toolchange=toolchange, toolchangez=toolchangez, toolchangexy=toolchangexy, pp_geometry_name=pp_geometry_name, tool_no=tool_cnt) @@ -5226,7 +5235,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): spindlespeed=None, dwell=None, dwelltime=None, multidepth=None, depthperpass=None, toolchange=None, toolchangez=None, toolchangexy=None, - extracut=None, startz=None, endz=None, + extracut=None, extracut_length=None, startz=None, endz=None, pp=None, segx=None, segy=None, use_thread=True, @@ -5266,6 +5275,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): segy = segy if segy is not None else float(self.app.defaults['geometry_segy']) extracut = extracut if extracut is not None else float(self.options["extracut"]) + extracut_length = extracut_length if extracut_length is not None else float(self.options["extracut_length"]) + startz = startz if startz is not None else self.options["startz"] endz = endz if endz is not None else float(self.options["endz"]) @@ -5320,7 +5331,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): spindlespeed=spindlespeed, dwell=dwell, dwelltime=dwelltime, multidepth=multidepth, depthpercut=depthperpass, toolchange=toolchange, toolchangez=toolchangez, toolchangexy=toolchangexy, - extracut=extracut, startz=startz, endz=endz, + extracut=extracut, extracut_length=extracut_length, startz=startz, endz=endz, pp_geometry_name=ppname_g ) diff --git a/README.md b/README.md index 6b41261a..259e6554 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ CAD program, and create G-Code for Isolation routing. 10.12.2019 - small changes in the Geometry UI +- now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length 9.12.2019 diff --git a/camlib.py b/camlib.py index 16841964..090aeff5 100644 --- a/camlib.py +++ b/camlib.py @@ -2962,7 +2962,7 @@ class CNCjob(Geometry): feedrate=2.0, feedrate_z=2.0, feedrate_rapid=30, spindlespeed=None, spindledir='CW', dwell=False, dwelltime=1.0, multidepth=False, depthpercut=None, - toolchange=False, toolchangez=1.0, toolchangexy="0.0, 0.0", extracut=False, + toolchange=False, toolchangez=1.0, toolchangexy="0.0, 0.0", extracut=False, extracut_length=0.2, startz=None, endz=2.0, pp_geometry_name=None, tool_no=1): """ Algorithm to generate from multitool Geometry. @@ -2992,6 +2992,7 @@ class CNCjob(Geometry): :param toolchangexy: :param extracut: Adds (or not) an extra cut at the end of each path overlapping the first point in path to ensure complete copper removal + :param extracut_length: Extra cut legth at the end of the path :param startz: :param endz: :param pp_geometry_name: @@ -3213,7 +3214,8 @@ class CNCjob(Geometry): # calculate the cut distance total_cut = total_cut + geo.length - self.gcode += self.create_gcode_single_pass(geo, extracut, tolerance, old_point=current_pt) + self.gcode += self.create_gcode_single_pass(geo, extracut, extracut_length, tolerance, + old_point=current_pt) # --------- Multi-pass --------- else: @@ -3227,7 +3229,7 @@ class CNCjob(Geometry): total_cut += (geo.length * nr_cuts) - self.gcode += self.create_gcode_multi_pass(geo, extracut, tolerance, + self.gcode += self.create_gcode_multi_pass(geo, extracut, extracut_length, tolerance, postproc=p, old_point=current_pt) # calculate the total distance @@ -3270,7 +3272,7 @@ class CNCjob(Geometry): spindlespeed=None, spindledir='CW', dwell=False, dwelltime=1.0, multidepth=False, depthpercut=None, toolchange=False, toolchangez=1.0, toolchangexy="0.0, 0.0", - extracut=False, startz=None, endz=2.0, + extracut=False, extracut_length=0.1, startz=None, endz=2.0, pp_geometry_name=None, tool_no=1): """ Second algorithm to generate from Geometry. @@ -3288,6 +3290,7 @@ class CNCjob(Geometry): :param depthpercut: Maximum depth in each pass. :param extracut: Adds (or not) an extra cut at the end of each path overlapping the first point in path to ensure complete copper removal + :param extracut_length: The extra cut length :return: None """ @@ -3559,7 +3562,8 @@ class CNCjob(Geometry): if not multidepth: # calculate the cut distance total_cut += geo.length - self.gcode += self.create_gcode_single_pass(geo, extracut, tolerance, old_point=current_pt) + self.gcode += self.create_gcode_single_pass(geo, extracut, extracut_length, tolerance, + old_point=current_pt) # --------- Multi-pass --------- else: @@ -3573,7 +3577,7 @@ class CNCjob(Geometry): total_cut += (geo.length * nr_cuts) - self.gcode += self.create_gcode_multi_pass(geo, extracut, tolerance, + self.gcode += self.create_gcode_multi_pass(geo, extracut, extracut_length, tolerance, postproc=p, old_point=current_pt) # calculate the travel distance @@ -3798,7 +3802,7 @@ class CNCjob(Geometry): gcode += self.doformat(p.lift_code) return gcode - def create_gcode_single_pass(self, geometry, extracut, tolerance, 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. gcode_single_pass = '' @@ -3807,7 +3811,8 @@ class CNCjob(Geometry): gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point) else: if geometry.is_ring: - gcode_single_pass = self.linear2gcode_extra(geometry, tolerance=tolerance, old_point=old_point) + gcode_single_pass = self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance, + old_point=old_point) else: gcode_single_pass = self.linear2gcode(geometry, tolerance=tolerance, old_point=old_point) elif type(geometry) == Point: @@ -3818,7 +3823,7 @@ class CNCjob(Geometry): return gcode_single_pass - def create_gcode_multi_pass(self, geometry, extracut, tolerance, postproc, old_point=(0, 0)): + def create_gcode_multi_pass(self, geometry, extracut, extracut_length, tolerance, postproc, old_point=(0, 0)): gcode_multi_pass = '' @@ -3851,8 +3856,8 @@ class CNCjob(Geometry): old_point=old_point) else: if geometry.is_ring: - gcode_multi_pass += self.linear2gcode_extra(geometry, tolerance=tolerance, z_cut=depth, - up=False, old_point=old_point) + gcode_multi_pass += self.linear2gcode_extra(geometry, extracut_length, tolerance=tolerance, + z_cut=depth, up=False, old_point=old_point) else: gcode_multi_pass += self.linear2gcode(geometry, tolerance=tolerance, z_cut=depth, up=False, old_point=old_point) @@ -4513,13 +4518,14 @@ 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, 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)): """ Generates G-code to cut along the linear feature. :param linear: The path to cut along. + :param extracut_length: how much to cut extra over the first point at the end of the path :type: Shapely.LinearRing or Shapely.Linear String :param tolerance: All points in the simplified object will be within the tolerance distance of the original geometry. @@ -4613,19 +4619,36 @@ class CNCjob(Geometry): # this line is added to create an extra cut over the first point in patch # to make sure that we remove the copper leftovers # Linear motion to the 1st point in the cut path - if self.coordinates_type == "G90": - # For Absolute coordinates type G90 - last_x = path[1][0] - last_y = path[1][1] + # if self.coordinates_type == "G90": + # # For Absolute coordinates type G90 + # last_x = path[1][0] + # last_y = path[1][1] + # else: + # # For Incremental coordinates type G91 + # last_x = path[1][0] - first_x + # last_y = path[1][1] - first_y + # gcode += self.doformat(p.linear_code, x=last_x, y=last_y) + + # the first point for extracut is always mandatory if the extracut is enabled. But if the length of distance + # between point 0 and point 1 is more than the distance we set for the extra cut then make an interpolation + # along the path and find the point at the distance extracut_length + + if abs(distance(path[1], path[0])) > extracut_length: + i_point = LineString([path[0], path[1]]).interpolate(extracut_length) + gcode += self.doformat(p.linear_code, x=i_point.x, y=i_point.y) else: - # For Incremental coordinates type G91 - last_x = path[1][0] - first_x - last_y = path[1][1] - first_y - gcode += self.doformat(p.linear_code, x=last_x, y=last_y) + last_pt = path[0] + for pt in path[1:]: + extracut_distance = abs(distance(pt, last_pt)) + if extracut_distance <= extracut_length: + gcode += self.doformat(p.linear_code, x=pt[0], y=pt[1]) + last_pt = pt + else: + break # Up to travelling height. if up: - gcode += self.doformat(p.lift_code, x=last_x, y=last_y, z_move=z_move) # Stop cutting + gcode += self.doformat(p.lift_code, x=pt[0], y=pt[1], z_move=z_move) # Stop cutting return gcode diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index b31bbbc2..62aa4526 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -1520,14 +1520,29 @@ class GeometryObjectUI(ObjectUI): self.cncfeedrate_rapid_entry.hide() # Cut over 1st point in path - self.extracut_cb = FCCheckBox('%s' % _('Re-cut 1st pt.')) + self.extracut_cb = FCCheckBox('%s' % _('Re-cut')) self.extracut_cb.setToolTip( _("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.") ) + + self.e_cut_entry = FCDoubleSpinner() + self.e_cut_entry.set_range(0, 99999) + self.e_cut_entry.set_precision(self.decimals) + self.e_cut_entry.setSingleStep(0.1) + self.e_cut_entry.setWrapping(True) + self.e_cut_entry.setToolTip( + _("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.") + ) self.grid3.addWidget(self.extracut_cb, 13, 0) + self.grid3.addWidget(self.e_cut_entry, 13, 1) + + self.ois_e_cut = OptionalInputSection(self.extracut_cb, [self.e_cut_entry]) # Spindlespeed spdlabel = QtWidgets.QLabel('%s:' % _('Spindle speed')) diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 17dcac52..7eb6c759 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -3440,14 +3440,27 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.cncfeedrate_rapid_entry, 4, 1) # End move extra cut - self.extracut_cb = FCCheckBox(label='%s' % _('Re-cut 1st pt.')) + self.extracut_cb = FCCheckBox('%s' % _('Re-cut')) self.extracut_cb.setToolTip( _("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.") ) + + self.e_cut_entry = FCDoubleSpinner() + self.e_cut_entry.set_range(0, 99999) + self.e_cut_entry.set_precision(self.decimals) + self.e_cut_entry.setSingleStep(0.1) + self.e_cut_entry.setWrapping(True) + self.e_cut_entry.setToolTip( + _("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.") + ) grid1.addWidget(self.extracut_cb, 5, 0) + grid1.addWidget(self.e_cut_entry, 5, 1) # Probe depth self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth")) diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index 1717e0e7..188d031c 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -681,6 +681,7 @@ class NonCopperClear(FlatCAMTool, Gerber): "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"], diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 45442680..499d93b8 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -440,6 +440,7 @@ class ToolPaint(FlatCAMTool, Gerber): "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"], @@ -633,6 +634,7 @@ class ToolPaint(FlatCAMTool, Gerber): "ppname_g": self.app.defaults["geometry_ppname_g"], "depthperpass": float(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": float(self.app.defaults["geometry_toolchangez"]), "endz": float(self.app.defaults["geometry_endz"]), diff --git a/tclCommands/TclCommandCncjob.py b/tclCommands/TclCommandCncjob.py index 33cb023f..0d5fd686 100644 --- a/tclCommands/TclCommandCncjob.py +++ b/tclCommands/TclCommandCncjob.py @@ -35,6 +35,7 @@ class TclCommandCncjob(TclCommandSignaled): ('feedrate_rapid', float), ('multidepth', bool), ('extracut', bool), + ('extracut_length', float), ('depthperpass', float), ('toolchange', int), ('toolchangez', float), @@ -65,6 +66,7 @@ class TclCommandCncjob(TclCommandSignaled): ('feedrate_rapid', 'Rapid moving at speed when cutting.'), ('multidepth', 'Use or not multidepth cnc cut. (True or False)'), ('extracut', 'Use or not an extra cnccut over the first point in path,in the job end (example: True)'), + ('extracut', 'The value for extra cnccut over the first point in path,in the job end; float'), ('depthperpass', 'Height of one layer for multidepth.'), ('toolchange', 'Enable tool changes (example: True).'), ('toolchangez', 'Z distance for toolchange (example: 30.0).'), @@ -136,6 +138,8 @@ class TclCommandCncjob(TclCommandSignaled): args["multidepth"] = bool(args["multidepth"]) if "multidepth" in args else obj.options["multidepth"] args["extracut"] = bool(args["extracut"]) if "extracut" in args else obj.options["extracut"] + args["extracut_length"] = float(args["extracut_length"]) if "extracut_length" in args else \ + obj.options["extracut_length"] args["depthperpass"] = args["depthperpass"] if "depthperpass" in args and args["depthperpass"] else \ obj.options["depthperpass"] @@ -189,6 +193,7 @@ class TclCommandCncjob(TclCommandSignaled): local_tools_dict[tool_uid]['data']['feedrate_rapid'] = args["feedrate_rapid"] local_tools_dict[tool_uid]['data']['multidepth'] = args["multidepth"] local_tools_dict[tool_uid]['data']['extracut'] = args["extracut"] + local_tools_dict[tool_uid]['data']['extracut_length'] = args["extracut_length"] local_tools_dict[tool_uid]['data']['depthperpass'] = args["depthperpass"] local_tools_dict[tool_uid]['data']['toolchange'] = args["toolchange"] local_tools_dict[tool_uid]['data']['toolchangez'] = args["toolchangez"] diff --git a/tclCommands/TclCommandCopperClear.py b/tclCommands/TclCommandCopperClear.py index ff4647de..b107cf26 100644 --- a/tclCommands/TclCommandCopperClear.py +++ b/tclCommands/TclCommandCopperClear.py @@ -170,6 +170,7 @@ class TclCommandCopperClear(TclCommand): "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"], diff --git a/tclCommands/TclCommandPaint.py b/tclCommands/TclCommandPaint.py index 3c9a7ec2..d7675f2c 100644 --- a/tclCommands/TclCommandPaint.py +++ b/tclCommands/TclCommandPaint.py @@ -159,6 +159,7 @@ class TclCommandPaint(TclCommand): "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"], From 932f8143cd5566f9bf7e731c6375052d43ba1525 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 05:33:32 +0200 Subject: [PATCH 10/36] - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is --- README.md | 1 + camlib.py | 29 +++++++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 259e6554..5b496e4d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ CAD program, and create G-Code for Isolation routing. - small changes in the Geometry UI - now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length +- if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is 9.12.2019 diff --git a/camlib.py b/camlib.py index 090aeff5..63d4c52c 100644 --- a/camlib.py +++ b/camlib.py @@ -4633,22 +4633,27 @@ class CNCjob(Geometry): # between point 0 and point 1 is more than the distance we set for the extra cut then make an interpolation # along the path and find the point at the distance extracut_length - if abs(distance(path[1], path[0])) > extracut_length: - i_point = LineString([path[0], path[1]]).interpolate(extracut_length) - gcode += self.doformat(p.linear_code, x=i_point.x, y=i_point.y) + if extracut_length == 0.0: + gcode += self.doformat(p.linear_code, x=path[1][0], y=path[1][1]) + last_pt = path[1] else: - last_pt = path[0] - for pt in path[1:]: - extracut_distance = abs(distance(pt, last_pt)) - if extracut_distance <= extracut_length: - gcode += self.doformat(p.linear_code, x=pt[0], y=pt[1]) - last_pt = pt - else: - break + if abs(distance(path[1], path[0])) > extracut_length: + i_point = LineString([path[0], path[1]]).interpolate(extracut_length) + gcode += self.doformat(p.linear_code, x=i_point.x, y=i_point.y) + last_pt = (i_point.x, i_point.y) + else: + last_pt = path[0] + for pt in path[1:]: + extracut_distance = abs(distance(pt, last_pt)) + if extracut_distance <= extracut_length: + gcode += self.doformat(p.linear_code, x=pt[0], y=pt[1]) + last_pt = pt + else: + break # Up to travelling height. if up: - gcode += self.doformat(p.lift_code, x=pt[0], y=pt[1], z_move=z_move) # Stop cutting + gcode += self.doformat(p.lift_code, x=last_pt[0], y=last_pt[1], z_move=z_move) # Stop cutting return gcode From 6d43c6c4fd4c3fecdaa16d6ed220769e678b5ea8 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 13:38:29 +0200 Subject: [PATCH 11/36] - in Gerber isolation when selection mode is checked now area selection works too --- FlatCAMApp.py | 13 +++----- FlatCAMObj.py | 87 ++++++++++++++++++++++++++++++++++++++++++++++++--- README.md | 1 + 3 files changed, 87 insertions(+), 14 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 7249c5e2..439b1a39 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -2478,6 +2478,7 @@ class App(QtCore.QObject): # variable to store coordinates self.pos = (0, 0) + self.pos_canvas = (0, 0) self.pos_jump = (0, 0) # variable to store mouse coordinates @@ -8441,23 +8442,17 @@ class App(QtCore.QObject): was clicked, the pixel coordinates and the axes coordinates. :return: None """ - self.pos = [] + self.pos = list() if self.is_legacy is False: event_pos = event.pos - if self.defaults["global_pan_button"] == '2': - pan_button = 2 - else: - pan_button = 3 + pan_button = 2 if self.defaults["global_pan_button"] == '2'else 3 # Set the mouse button for panning self.plotcanvas.view.camera.pan_button_setting = pan_button else: event_pos = (event.xdata, event.ydata) # Matplotlib has the middle and right buttons mapped in reverse compared with VisPy - if self.defaults["global_pan_button"] == '2': - pan_button = 3 - else: - pan_button = 2 + pan_button = 3 if self.defaults["global_pan_button"] == '2'else 2 # So it can receive key presses self.plotcanvas.native.setFocus() diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 43f9661d..8d9d8abc 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -625,6 +625,8 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # Mouse events self.mr = None + self.mm = None + self.mp = None # dict to store the polygons selected for isolation; key is the shape added to be plotted and value is the poly self.poly_dict = dict() @@ -1066,11 +1068,11 @@ class FlatCAMGerber(FlatCAMObj, Gerber): if self.app.is_legacy is False: event_pos = event.pos right_button = 2 - event_is_dragging = self.app.event_is_dragging + self.app.event_is_dragging = self.app.event_is_dragging else: event_pos = (event.xdata, event.ydata) right_button = 3 - event_is_dragging = self.app.ui.popMenu.mouse_is_panning + self.app.event_is_dragging = self.app.ui.popMenu.mouse_is_panning try: x = float(event_pos[0]) @@ -1080,11 +1082,18 @@ class FlatCAMGerber(FlatCAMObj, Gerber): 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 clicked_poly: + 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', @@ -1113,8 +1122,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): self.app.tool_shapes.redraw() else: self.app.inform.emit(_("No polygon detected under click position.")) - - elif event.button == right_button and event_is_dragging is False: + 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() @@ -1136,6 +1144,75 @@ class FlatCAMGerber(FlatCAMObj, Gerber): 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): """ diff --git a/README.md b/README.md index 5b496e4d..c9022369 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing. - small changes in the Geometry UI - now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is +- in Gerber isolation when selection mode is checked now area selection works too 9.12.2019 From 33f764efb50109baaa4fc887e011e42478b35ab7 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 15:26:51 +0200 Subject: [PATCH 12/36] - in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits) --- FlatCAMCommon.py | 10 +++ FlatCAMObj.py | 120 ++++++++++++++++++++++++++++---- README.md | 3 +- flatcamGUI/ObjectUI.py | 29 +++++++- flatcamGUI/PlotCanvas.py | 2 +- flatcamTools/ToolSolderPaste.py | 6 +- 6 files changed, 150 insertions(+), 20 deletions(-) diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py index fee20344..547e4fef 100644 --- a/FlatCAMCommon.py +++ b/FlatCAMCommon.py @@ -848,6 +848,16 @@ class ToolsDB(QtWidgets.QWidget): multidepth_item.set_value(data['multidepth']) widget.setCellWidget(row, 8, multidepth_item) + # to make the checkbox centered but it can no longer have it's value accessed - needs a fix using findchild() + # multidepth_item = QtWidgets.QWidget() + # cb = FCCheckBox() + # cb.set_value(data['multidepth']) + # qhboxlayout = QtWidgets.QHBoxLayout(multidepth_item) + # qhboxlayout.addWidget(cb) + # qhboxlayout.setAlignment(QtCore.Qt.AlignCenter) + # qhboxlayout.setContentsMargins(0, 0, 0, 0) + # widget.setCellWidget(row, 8, multidepth_item) + depth_per_pass_item = FCDoubleSpinner() depth_per_pass_item.set_precision(self.decimals) depth_per_pass_item.setSingleStep(0.1) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 8d9d8abc..d017bab2 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -6039,15 +6039,22 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.ui_disconnect() FlatCAMObj.build_ui(self) - - # if the FlatCAM object is Excellon don't build the CNC Tools Table but hide it - if self.cnc_tools: - self.ui.cnc_tools_table.show() - else: - self.ui.cnc_tools_table.hide() - self.units = self.app.defaults['units'].upper() + # if the FlatCAM object is Excellon don't build the CNC Tools Table but hide it + self.ui.cnc_tools_table.hide() + if self.cnc_tools: + self.ui.cnc_tools_table.show() + self.build_cnc_tools_table() + + self.ui.exc_cnc_tools_table.hide() + if self.exc_cnc_tools: + self.ui.exc_cnc_tools_table.show() + self.build_excellon_cnc_tools() + # + self.ui_connect() + + def build_cnc_tools_table(self): offset = 0 tool_idx = 0 @@ -6146,7 +6153,86 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.ui.cnc_tools_table.setMinimumHeight(self.ui.cnc_tools_table.getHeight()) self.ui.cnc_tools_table.setMaximumHeight(self.ui.cnc_tools_table.getHeight()) - self.ui_connect() + def build_excellon_cnc_tools(self): + tool_idx = 0 + + n = len(self.exc_cnc_tools) + self.ui.exc_cnc_tools_table.setRowCount(n) + + for tooldia_key, dia_value in self.exc_cnc_tools.items(): + + tool_idx += 1 + row_no = tool_idx - 1 + + id = QtWidgets.QTableWidgetItem('%d' % int(tool_idx)) + dia_item = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, float(tooldia_key))) + nr_drills_item = QtWidgets.QTableWidgetItem('%d' % int(dia_value['nr_drills'])) + nr_slots_item = QtWidgets.QTableWidgetItem('%d' % int(dia_value['nr_slots'])) + + id.setFlags(QtCore.Qt.ItemIsEnabled) + dia_item.setFlags(QtCore.Qt.ItemIsEnabled) + nr_drills_item.setFlags(QtCore.Qt.ItemIsEnabled) + nr_slots_item.setFlags(QtCore.Qt.ItemIsEnabled) + + # hack so the checkbox stay centered in the table cell + # used this: + # https://stackoverflow.com/questions/32458111/pyqt-allign-checkbox-and-put-it-in-every-row + # plot_item = QtWidgets.QWidget() + # checkbox = FCCheckBox() + # checkbox.setCheckState(QtCore.Qt.Checked) + # qhboxlayout = QtWidgets.QHBoxLayout(plot_item) + # qhboxlayout.addWidget(checkbox) + # qhboxlayout.setAlignment(QtCore.Qt.AlignCenter) + # qhboxlayout.setContentsMargins(0, 0, 0, 0) + + plot_item = FCCheckBox() + plot_item.setLayoutDirection(QtCore.Qt.RightToLeft) + tool_uid_item = QtWidgets.QTableWidgetItem(str(dia_value['tool'])) + if self.ui.plot_cb.isChecked(): + plot_item.setChecked(True) + + # TODO until the feature of individual plot for an Excellon tool is implemented + plot_item.setDisabled(True) + + self.ui.exc_cnc_tools_table.setItem(row_no, 0, id) # Tool name/id + self.ui.exc_cnc_tools_table.setItem(row_no, 1, dia_item) # Diameter + self.ui.exc_cnc_tools_table.setItem(row_no, 2, nr_drills_item) # Nr of drills + self.ui.exc_cnc_tools_table.setItem(row_no, 3, nr_slots_item) # Nr of slots + + # ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ## + self.ui.exc_cnc_tools_table.setItem(row_no, 4, tool_uid_item) # Tool unique ID) + self.ui.exc_cnc_tools_table.setCellWidget(row_no, 5, plot_item) + + for row in range(tool_idx): + self.ui.exc_cnc_tools_table.item(row, 0).setFlags( + self.ui.exc_cnc_tools_table.item(row, 0).flags() ^ QtCore.Qt.ItemIsSelectable) + + self.ui.exc_cnc_tools_table.resizeColumnsToContents() + self.ui.exc_cnc_tools_table.resizeRowsToContents() + + vertical_header = self.ui.exc_cnc_tools_table.verticalHeader() + vertical_header.hide() + self.ui.exc_cnc_tools_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + + horizontal_header = self.ui.exc_cnc_tools_table.horizontalHeader() + horizontal_header.setMinimumSectionSize(10) + horizontal_header.setDefaultSectionSize(70) + horizontal_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed) + horizontal_header.resizeSection(0, 20) + horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch) + horizontal_header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents) + horizontal_header.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents) + + horizontal_header.setSectionResizeMode(5, QtWidgets.QHeaderView.Fixed) + + # horizontal_header.setStretchLastSection(True) + self.ui.exc_cnc_tools_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + + self.ui.exc_cnc_tools_table.setColumnWidth(0, 20) + self.ui.exc_cnc_tools_table.setColumnWidth(5, 17) + + self.ui.exc_cnc_tools_table.setMinimumHeight(self.ui.exc_cnc_tools_table.getHeight()) + self.ui.exc_cnc_tools_table.setMaximumHeight(self.ui.exc_cnc_tools_table.getHeight()) def set_ui(self, ui): FlatCAMObj.set_ui(self, ui) @@ -6733,10 +6819,20 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.plot2(dia_plot, obj=self, visible=visible, kind=kind) else: # multiple tools usage - for tooluid_key in self.cnc_tools: - tooldia = float('%.*f' % (self.decimals, float(self.cnc_tools[tooluid_key]['tooldia']))) - gcode_parsed = self.cnc_tools[tooluid_key]['gcode_parsed'] - self.plot2(tooldia=tooldia, obj=self, visible=visible, gcode_parsed=gcode_parsed, kind=kind) + if self.cnc_tools: + for tooluid_key in self.cnc_tools: + tooldia = float('%.*f' % (self.decimals, float(self.cnc_tools[tooluid_key]['tooldia']))) + gcode_parsed = self.cnc_tools[tooluid_key]['gcode_parsed'] + 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 + 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): self.shapes.clear(update=True) diff --git a/README.md b/README.md index c9022369..ca19410c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ CAD program, and create G-Code for Isolation routing. - small changes in the Geometry UI - now extracut option in the Geometry Object will recut as many points as many they are within the specified re-cut length - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is -- in Gerber isolation when selection mode is checked now area selection works too +- in Gerber isolation, when selection mode is checked, now area selection works too +- in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits) 9.12.2019 diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index 62aa4526..ee49b74e 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -1030,6 +1030,12 @@ class ExcellonObjectUI(ObjectUI): self.generate_cnc_button.setToolTip( _("Generate the CNC Job.") ) + self.generate_cnc_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) grid2.addWidget(self.generate_cnc_button, 2, 0, 1, 3) # ### Milling Holes Drills #### @@ -1055,6 +1061,12 @@ class ExcellonObjectUI(ObjectUI): _("Create the Geometry Object\n" "for milling DRILLS toolpaths.") ) + self.generate_milling_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) grid2.addWidget(self.tdlabel, 4, 0) grid2.addWidget(self.tooldia_entry, 4, 1) @@ -1076,6 +1088,12 @@ class ExcellonObjectUI(ObjectUI): _("Create the Geometry Object\n" "for milling SLOTS toolpaths.") ) + self.generate_milling_slots_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) grid2.addWidget(self.stdlabel, 5, 0) grid2.addWidget(self.slot_tooldia_entry, 5, 1) @@ -1827,12 +1845,19 @@ class CNCObjectUI(ObjectUI): self.cnc_tools_table.setColumnCount(7) self.cnc_tools_table.setColumnWidth(0, 20) - self.cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Offset'), _('Type'), _('TT'), '', - _('P')]) + self.cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Offset'), _('Type'), _('TT'), '', _('P')]) self.cnc_tools_table.setColumnHidden(5, True) # stylesheet = "::section{Background-color:rgb(239,239,245)}" # self.cnc_tools_table.horizontalHeader().setStyleSheet(stylesheet) + self.exc_cnc_tools_table = FCTable() + self.custom_box.addWidget(self.exc_cnc_tools_table) + + self.exc_cnc_tools_table.setColumnCount(6) + self.exc_cnc_tools_table.setColumnWidth(0, 20) + self.exc_cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Drills'), _('Slots'), '', _('P')]) + self.exc_cnc_tools_table.setColumnHidden(4, True) + self.tooldia_entry = FCDoubleSpinner() self.tooldia_entry.set_range(0, 9999.9999) self.tooldia_entry.set_precision(self.decimals) diff --git a/flatcamGUI/PlotCanvas.py b/flatcamGUI/PlotCanvas.py index 174617e0..15495dab 100644 --- a/flatcamGUI/PlotCanvas.py +++ b/flatcamGUI/PlotCanvas.py @@ -303,7 +303,7 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): p2 = np.array(curr_pos)[:2] self.view.camera.pan(p2 - p1) - if self.fcapp.grid_status() == True: + if self.fcapp.grid_status(): pos_canvas = self.translate_coords(curr_pos) pos = self.fcapp.geo_editor.snap(pos_canvas[0], pos_canvas[1]) diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 25c50b0d..518236ca 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -1283,8 +1283,7 @@ class SolderPaste(FlatCAMTool): obj = self.app.collection.get_by_name(name) if name == '': - self.app.inform.emit('[WARNING_NOTCL] %s' % - _("There is no Geometry object available.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Geometry object available.")) return 'fail' if obj.special_group != 'solder_paste_tool': @@ -1298,8 +1297,7 @@ class SolderPaste(FlatCAMTool): if obj.tools[tooluid_key]['solid_geometry'] is None: a += 1 if a == len(obj.tools): - self.app.inform.emit('[ERROR_NOTCL] %s...' % - _('Cancelled. Empty file, it has no geometry')) + self.app.inform.emit('[ERROR_NOTCL] %s...' % _('Cancelled. Empty file, it has no geometry')) return 'fail' # use the name of the first tool selected in self.geo_tools_table which has the diameter passed as tool_dia From 621ac9a598af3b6b5b3e0b0bf13822924ceb4a0f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 16:00:37 +0200 Subject: [PATCH 13/36] - fixed a cummulative error when using the Tool Offset for Excellon objects - added the dipaly of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object --- FlatCAMObj.py | 14 +++++++++----- README.md | 2 ++ camlib.py | 24 +++++++++++++++++------- flatcamGUI/ObjectUI.py | 5 +++-- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index d017bab2..aac9f8a0 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -2206,10 +2206,10 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): }) # TODO: Document this. - self.tool_cbs = {} + self.tool_cbs = dict() # dict to hold the tool number as key and tool offset as value - self.tool_offset = {} + self.tool_offset = dict() # variable to store the total amount of drills per job self.tot_drill_cnt = 0 @@ -6168,11 +6168,13 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): dia_item = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, float(tooldia_key))) nr_drills_item = QtWidgets.QTableWidgetItem('%d' % int(dia_value['nr_drills'])) nr_slots_item = QtWidgets.QTableWidgetItem('%d' % int(dia_value['nr_slots'])) + cutz_item = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, float(dia_value['offset_z']) + self.z_cut)) id.setFlags(QtCore.Qt.ItemIsEnabled) dia_item.setFlags(QtCore.Qt.ItemIsEnabled) nr_drills_item.setFlags(QtCore.Qt.ItemIsEnabled) nr_slots_item.setFlags(QtCore.Qt.ItemIsEnabled) + cutz_item.setFlags(QtCore.Qt.ItemIsEnabled) # hack so the checkbox stay centered in the table cell # used this: @@ -6201,7 +6203,8 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): # ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ## self.ui.exc_cnc_tools_table.setItem(row_no, 4, tool_uid_item) # Tool unique ID) - self.ui.exc_cnc_tools_table.setCellWidget(row_no, 5, plot_item) + self.ui.exc_cnc_tools_table.setItem(row_no, 5, cutz_item) + self.ui.exc_cnc_tools_table.setCellWidget(row_no, 6, plot_item) for row in range(tool_idx): self.ui.exc_cnc_tools_table.item(row, 0).setFlags( @@ -6222,14 +6225,15 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch) horizontal_header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents) horizontal_header.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents) + horizontal_header.setSectionResizeMode(5, QtWidgets.QHeaderView.ResizeToContents) - horizontal_header.setSectionResizeMode(5, QtWidgets.QHeaderView.Fixed) + horizontal_header.setSectionResizeMode(6, QtWidgets.QHeaderView.Fixed) # horizontal_header.setStretchLastSection(True) self.ui.exc_cnc_tools_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.ui.exc_cnc_tools_table.setColumnWidth(0, 20) - self.ui.exc_cnc_tools_table.setColumnWidth(5, 17) + self.ui.exc_cnc_tools_table.setColumnWidth(6, 17) self.ui.exc_cnc_tools_table.setMinimumHeight(self.ui.exc_cnc_tools_table.getHeight()) self.ui.exc_cnc_tools_table.setMaximumHeight(self.ui.exc_cnc_tools_table.getHeight()) diff --git a/README.md b/README.md index ca19410c..bb3b7b46 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ CAD program, and create G-Code for Isolation routing. - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is - in Gerber isolation, when selection mode is checked, now area selection works too - in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits) +- fixed a cummulative error when using the Tool Offset for Excellon objects +- added the dipaly of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object 9.12.2019 diff --git a/camlib.py b/camlib.py index 63d4c52c..98b28775 100644 --- a/camlib.py +++ b/camlib.py @@ -2158,7 +2158,7 @@ class CNCjob(Geometry): self.units = units self.z_cut = z_cut - self.tool_offset = {} + self.tool_offset = dict() self.z_move = z_move @@ -2359,7 +2359,9 @@ class CNCjob(Geometry): self.exc_drills = deepcopy(exobj.drills) self.exc_tools = deepcopy(exobj.tools) - self.z_cut = drillz + self.z_cut = deepcopy(drillz) + old_zcut = deepcopy(drillz) + if self.machinist_setting == 0: if drillz > 0: self.app.inform.emit('[WARNING] %s' % @@ -2441,10 +2443,16 @@ class CNCjob(Geometry): LineString([start, stop]).buffer((it[1] / 2.0), resolution=self.geo_steps_per_circle) ) + try: + z_off = float(self.tool_offset[it[1]]) * (-1) + except KeyError: + z_off = 0 + self.exc_cnc_tools[it[1]] = dict() self.exc_cnc_tools[it[1]]['tool'] = it[0] self.exc_cnc_tools[it[1]]['nr_drills'] = drill_no self.exc_cnc_tools[it[1]]['nr_slots'] = slot_no + self.exc_cnc_tools[it[1]]['offset_z'] = z_off self.exc_cnc_tools[it[1]]['solid_geometry'] = deepcopy(sol_geo) self.app.inform.emit(_("Creating a list of points to drill...")) @@ -2635,7 +2643,7 @@ class CNCjob(Geometry): z_offset = float(self.tool_offset[current_tooldia]) * (-1) except KeyError: z_offset = 0 - self.z_cut += z_offset + self.z_cut = z_offset + old_zcut self.coordinates_type = self.app.defaults["cncjob_coords_type"] if self.coordinates_type == "G90": @@ -2682,11 +2690,11 @@ class CNCjob(Geometry): else: self.app.inform.emit('[ERROR_NOTCL] %s...' % _('G91 coordinates not implemented')) return 'fail' + self.z_cut = deepcopy(old_zcut) else: log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> " "The loaded Excellon file has no drills ...") - self.app.inform.emit('[ERROR_NOTCL] %s...' % - _('The loaded Excellon file has no drills')) + self.app.inform.emit('[ERROR_NOTCL] %s...' % _('The loaded Excellon file has no drills')) return 'fail' log.debug("The total travel distance with OR-TOOLS Metaheuristics is: %s" % str(measured_distance)) @@ -2778,7 +2786,7 @@ class CNCjob(Geometry): z_offset = float(self.tool_offset[current_tooldia]) * (-1) except KeyError: z_offset = 0 - self.z_cut += z_offset + self.z_cut = z_offset + old_zcut self.coordinates_type = self.app.defaults["cncjob_coords_type"] if self.coordinates_type == "G90": @@ -2825,6 +2833,7 @@ class CNCjob(Geometry): else: self.app.inform.emit('[ERROR_NOTCL] %s...' % _('G91 coordinates not implemented')) return 'fail' + self.z_cut = deepcopy(old_zcut) else: log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> " "The loaded Excellon file has no drills ...") @@ -2879,7 +2888,7 @@ class CNCjob(Geometry): z_offset = float(self.tool_offset[current_tooldia]) * (-1) except KeyError: z_offset = 0 - self.z_cut += z_offset + self.z_cut = z_offset + old_zcut self.coordinates_type = self.app.defaults["cncjob_coords_type"] if self.coordinates_type == "G90": @@ -2933,6 +2942,7 @@ class CNCjob(Geometry): self.app.inform.emit('[ERROR_NOTCL] %s...' % _('The loaded Excellon file has no drills')) return 'fail' + self.z_cut = deepcopy(old_zcut) log.debug("The total travel distance with Travelling Salesman Algorithm is: %s" % str(measured_distance)) gcode += self.doformat(p.spindle_stop_code) # Spindle stop diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index ee49b74e..ad8ca9cf 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -1853,9 +1853,10 @@ class CNCObjectUI(ObjectUI): self.exc_cnc_tools_table = FCTable() self.custom_box.addWidget(self.exc_cnc_tools_table) - self.exc_cnc_tools_table.setColumnCount(6) + self.exc_cnc_tools_table.setColumnCount(7) self.exc_cnc_tools_table.setColumnWidth(0, 20) - self.exc_cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Drills'), _('Slots'), '', _('P')]) + self.exc_cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Drills'), _('Slots'), '', _("Cut Z"), + _('P')]) self.exc_cnc_tools_table.setColumnHidden(4, True) self.tooldia_entry = FCDoubleSpinner() From 660f69cfc5df7f6b02abdf1e527a65a77b31a3f6 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 17:24:28 +0200 Subject: [PATCH 14/36] - for OpenGL graphic mode added a fit_view() execution on canvas initialization --- README.md | 3 ++- flatcamGUI/PlotCanvas.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bb3b7b46..6e5d96b5 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@ CAD program, and create G-Code for Isolation routing. - in Gerber isolation, when selection mode is checked, now area selection works too - in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits) - fixed a cummulative error when using the Tool Offset for Excellon objects -- added the dipaly of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object +- added the display of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object +- for OpenGL graphic mode added a fit_view() execution on canvas initialization 9.12.2019 diff --git a/flatcamGUI/PlotCanvas.py b/flatcamGUI/PlotCanvas.py index 15495dab..99cb1472 100644 --- a/flatcamGUI/PlotCanvas.py +++ b/flatcamGUI/PlotCanvas.py @@ -156,7 +156,7 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas): self.big_cursor = None # Keep VisPy canvas happy by letting it be "frozen" again. self.freeze() - + self.fit_view() self.graph_event_connect('mouse_wheel', self.on_mouse_scroll) def draw_workspace(self, workspace_size): From e26953a6f3a5a57e16c4c56e66b79b37e740a449 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 17:42:51 +0200 Subject: [PATCH 15/36] - small fix --- flatcamParsers/ParseExcellon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flatcamParsers/ParseExcellon.py b/flatcamParsers/ParseExcellon.py index 558a2cfa..cf2c6293 100644 --- a/flatcamParsers/ParseExcellon.py +++ b/flatcamParsers/ParseExcellon.py @@ -790,7 +790,7 @@ class Excellon(Geometry): # ## Units and number format # ## match = self.units_re.match(eline) if match: - self.units = self.units = {"METRIC": "MM", "INCH": "IN"}[match.group(1)] + self.units = {"METRIC": "MM", "INCH": "IN"}[match.group(1)] self.zeros = match.group(2) # "T" or "L". Might be empty self.excellon_format = match.group(3) if self.excellon_format: From 5f739d1baf0a26dc4ff4fce085ea7b5a2c452fd4 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 10 Dec 2019 23:57:00 +0200 Subject: [PATCH 16/36] - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is --- FlatCAMApp.py | 4 +-- FlatCAMCommon.py | 12 ++++--- FlatCAMObj.py | 56 ++++++++++++++++----------------- README.md | 2 ++ camlib.py | 4 +-- flatcamGUI/ObjectUI.py | 8 +++-- flatcamGUI/PreferencesUI.py | 9 ++++-- flatcamParsers/ParseExcellon.py | 14 ++++----- tclCommands/TclCommandCncjob.py | 2 +- 9 files changed, 62 insertions(+), 49 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 439b1a39..c0f8cb48 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -591,7 +591,7 @@ class App(QtCore.QObject): "excellon_travelz": 2, "excellon_endz": 0.5, "excellon_feedrate": 300, - "excellon_spindlespeed": None, + "excellon_spindlespeed": 0, "excellon_dwell": False, "excellon_dwelltime": 1, "excellon_toolchange": False, @@ -658,7 +658,7 @@ class App(QtCore.QObject): "geometry_endz": 15.0, "geometry_feedrate": 120, "geometry_feedrate_z": 60, - "geometry_spindlespeed": None, + "geometry_spindlespeed": 0, "geometry_dwell": False, "geometry_dwelltime": 1, "geometry_ppname_g": 'default', diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py index 547e4fef..ec6db2b8 100644 --- a/FlatCAMCommon.py +++ b/FlatCAMCommon.py @@ -12,7 +12,7 @@ # ########################################################## from PyQt5 import QtGui, QtCore, QtWidgets -from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox +from flatcamGUI.GUIElements import FCTable, FCEntry, FCButton, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner from camlib import to_dict import sys @@ -908,8 +908,11 @@ class ToolsDB(QtWidgets.QWidget): frrapids_item.set_value(float(data['feedrate_rapid'])) widget.setCellWidget(row, 15, frrapids_item) - spindlespeed_item = QtWidgets.QTableWidgetItem(str(data['spindlespeed']) if data['spindlespeed'] else '') - widget.setItem(row, 16, spindlespeed_item) + spindlespeed_item = FCSpinner() + spindlespeed_item.set_range(0, 1000000) + spindlespeed_item.set_range(int(data['spindlespeed'])) + spindlespeed_item.setSingleStep(100) + widget.setCellWidget(row, 16, spindlespeed_item) dwell_item = FCCheckBox() dwell_item.set_value(data['dwell']) @@ -1282,8 +1285,7 @@ class ToolsDB(QtWidgets.QWidget): elif column_header_text == 'FR Rapids': default_data['feedrate_rapid'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'Spindle Speed': - default_data['spindlespeed'] = float(self.table_widget.item(row, col).text()) \ - if self.table_widget.item(row, col).text() is not '' else None + default_data['spindlespeed'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'Dwell': default_data['dwell'] = self.table_widget.cellWidget(row, col).get_value() elif column_header_text == 'Dwelltime': diff --git a/FlatCAMObj.py b/FlatCAMObj.py index aac9f8a0..5f85e0f7 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -2195,7 +2195,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): "toolchangexy": "0.0, 0.0", "endz": 2.0, "startz": None, - "spindlespeed": None, + "spindlespeed": 0, "dwell": True, "dwelltime": 1000, "ppname_e": 'defaults', @@ -3253,7 +3253,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): job_obj.feedrate = float(self.options["feedrate"]) job_obj.feedrate_rapid = float(self.options["feedrate_rapid"]) - job_obj.spindlespeed = float(self.options["spindlespeed"]) if self.options["spindlespeed"] else None + job_obj.spindlespeed = float(self.options["spindlespeed"]) if self.options["spindlespeed"] != 0 else None job_obj.spindledir = self.app.defaults['excellon_spindledir'] job_obj.dwell = self.options["dwell"] job_obj.dwelltime = float(self.options["dwelltime"]) @@ -3332,30 +3332,31 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): def convert_units(self, units): log.debug("FlatCAMObj.FlatCAMExcellon.convert_units()") - factor = Excellon.convert_units(self, units) + Excellon.convert_units(self, units) - self.options['drillz'] = float(self.options['drillz']) * factor - self.options['travelz'] = float(self.options['travelz']) * factor - self.options['feedrate'] = float(self.options['feedrate']) * factor - self.options['feedrate_rapid'] = float(self.options['feedrate_rapid']) * factor - self.options['toolchangez'] = float(self.options['toolchangez']) * factor - - if self.app.defaults["excellon_toolchangexy"] == '': - self.options['toolchangexy'] = "0.0, 0.0" - else: - coords_xy = [float(eval(coord)) for coord in self.app.defaults["excellon_toolchangexy"].split(",")] - if len(coords_xy) < 2: - self.app.inform.emit('[ERROR] %s' % _("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. ")) - return 'fail' - coords_xy[0] *= factor - coords_xy[1] *= factor - self.options['toolchangexy'] = "%f, %f" % (coords_xy[0], coords_xy[1]) - - if self.options['startz'] is not None: - self.options['startz'] = float(self.options['startz']) * factor - self.options['endz'] = float(self.options['endz']) * factor + # factor = Excellon.convert_units(self, units) + # self.options['drillz'] = float(self.options['drillz']) * factor + # self.options['travelz'] = float(self.options['travelz']) * factor + # self.options['feedrate'] = float(self.options['feedrate']) * factor + # self.options['feedrate_rapid'] = float(self.options['feedrate_rapid']) * factor + # self.options['toolchangez'] = float(self.options['toolchangez']) * factor + # + # if self.app.defaults["excellon_toolchangexy"] == '': + # self.options['toolchangexy'] = "0.0, 0.0" + # else: + # coords_xy = [float(eval(coord)) for coord in self.app.defaults["excellon_toolchangexy"].split(",")] + # if len(coords_xy) < 2: + # self.app.inform.emit('[ERROR] %s' % _("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. ")) + # return 'fail' + # coords_xy[0] *= factor + # coords_xy[1] *= factor + # self.options['toolchangexy'] = "%f, %f" % (coords_xy[0], coords_xy[1]) + # + # if self.options['startz'] is not None: + # self.options['startz'] = float(self.options['startz']) * factor + # self.options['endz'] = float(self.options['endz']) * factor def on_solid_cb_click(self, *args): if self.muted_ui: @@ -3517,7 +3518,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): "feedrate": 5.0, "feedrate_z": 5.0, "feedrate_rapid": 5.0, - "spindlespeed": None, + "spindlespeed": 0, "dwell": True, "dwelltime": 1000, "multidepth": False, @@ -3806,7 +3807,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): "toolchange": None, "toolchangez": None, "endz": None, - "spindlespeed": None, + "spindlespeed": 0, "toolchangexy": None, "startz": None }) @@ -5713,7 +5714,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tooldia = self.ui.addtool_entry.get_value() if tooldia: tooldia *= factor - # limit the decimals to 2 for METRIC and 3 for INCH tooldia = float('%.*f' % (self.decimals, tooldia)) self.ui.addtool_entry.set_value(tooldia) diff --git a/README.md b/README.md index 6e5d96b5..cefa4748 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ CAD program, and create G-Code for Isolation routing. - fixed a cummulative error when using the Tool Offset for Excellon objects - added the display of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object - for OpenGL graphic mode added a fit_view() execution on canvas initialization +- fixed Excellon scaling the UI values +- replaced the SpindleSpeed entry with a FCSpinner() GUI element; if speed is set to 0 it will amount to None 9.12.2019 diff --git a/camlib.py b/camlib.py index 98b28775..0e86f66a 100644 --- a/camlib.py +++ b/camlib.py @@ -3036,7 +3036,7 @@ class CNCjob(Geometry): self.z_feedrate = float(feedrate_z) if feedrate_z is not None else None self.feedrate_rapid = float(feedrate_rapid) if feedrate_rapid else None - self.spindlespeed = int(spindlespeed) if spindlespeed else None + self.spindlespeed = int(spindlespeed) if spindlespeed != 0 else None self.spindledir = spindledir self.dwell = dwell self.dwelltime = float(dwelltime) if dwelltime else None @@ -3388,7 +3388,7 @@ class CNCjob(Geometry): self.z_feedrate = float(feedrate_z) if feedrate_z is not None else None self.feedrate_rapid = float(feedrate_rapid) if feedrate_rapid else None - self.spindlespeed = int(spindlespeed) if spindlespeed else None + self.spindlespeed = int(spindlespeed) if spindlespeed != 0 else None self.spindledir = spindledir self.dwell = dwell self.dwelltime = float(dwelltime) if dwelltime else None diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index ad8ca9cf..a7bd2875 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -932,7 +932,9 @@ class ExcellonObjectUI(ObjectUI): "in RPM (optional)") ) grid1.addWidget(spdlabel, 8, 0) - self.spindlespeed_entry = IntEntry(allow_empty=True) + self.spindlespeed_entry = FCSpinner() + self.spindlespeed_entry.set_range(0, 1000000) + self.spindlespeed_entry.setSingleStep(100) grid1.addWidget(self.spindlespeed_entry, 8, 1) # Dwell @@ -1571,7 +1573,9 @@ class GeometryObjectUI(ObjectUI): "this value is the power of laser." ) ) - self.cncspindlespeed_entry = IntEntry(allow_empty=True) + self.cncspindlespeed_entry = FCSpinner() + self.cncspindlespeed_entry.set_range(0, 1000000) + self.cncspindlespeed_entry.setSingleStep(100) self.grid3.addWidget(spdlabel, 14, 0) self.grid3.addWidget(self.cncspindlespeed_entry, 14, 1) diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 7eb6c759..00d75118 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -2430,7 +2430,9 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): "in RPM (optional)") ) grid2.addWidget(spdlabel, 6, 0) - self.spindlespeed_entry = IntEntry(allow_empty=True) + self.spindlespeed_entry = FCSpinner() + self.spindlespeed_entry.set_range(0, 1000000) + self.spindlespeed_entry.setSingleStep(100) grid2.addWidget(self.spindlespeed_entry, 6, 1) # Dwell @@ -3341,7 +3343,10 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): ) ) grid1.addWidget(spdlabel, 9, 0) - self.cncspindlespeed_entry = IntEntry(allow_empty=True) + self.cncspindlespeed_entry = FCSpinner() + self.cncspindlespeed_entry.set_range(0, 1000000) + self.cncspindlespeed_entry.setSingleStep(100) + grid1.addWidget(self.cncspindlespeed_entry, 9, 1) # Dwell diff --git a/flatcamParsers/ParseExcellon.py b/flatcamParsers/ParseExcellon.py index cf2c6293..7bccf8f0 100644 --- a/flatcamParsers/ParseExcellon.py +++ b/flatcamParsers/ParseExcellon.py @@ -94,11 +94,11 @@ class Excellon(Geometry): Geometry.__init__(self, geo_steps_per_circle=int(geo_steps_per_circle)) # dictionary to store tools, see above for description - self.tools = {} + self.tools = dict() # list to store the drills, see above for description - self.drills = [] + self.drills = list() # self.slots (list) to store the slots; each is a dictionary - self.slots = [] + self.slots = list() self.source_file = '' @@ -109,8 +109,8 @@ class Excellon(Geometry): self.match_routing_start = None self.match_routing_stop = None - self.num_tools = [] # List for keeping the tools sorted - self.index_per_tool = {} # Dictionary to store the indexed points for each tool + self.num_tools = list() # List for keeping the tools sorted + self.index_per_tool = dict() # Dictionary to store the indexed points for each tool # ## IN|MM -> Units are inherited from Geometry self.units = self.app.defaults['units'] @@ -118,8 +118,8 @@ class Excellon(Geometry): # Trailing "T" or leading "L" (default) # self.zeros = "T" self.zeros = zeros or self.defaults["zeros"] - self.zeros_found = self.zeros - self.units_found = self.units + self.zeros_found = deepcopy(self.zeros) + self.units_found = deepcopy(self.units) # this will serve as a default if the Excellon file has no info regarding of tool diameters (this info may be # in another file like for PCB WIzard ECAD software diff --git a/tclCommands/TclCommandCncjob.py b/tclCommands/TclCommandCncjob.py index 0d5fd686..3b08e8f6 100644 --- a/tclCommands/TclCommandCncjob.py +++ b/tclCommands/TclCommandCncjob.py @@ -147,7 +147,7 @@ class TclCommandCncjob(TclCommandSignaled): self.app.defaults["geometry_startz"] 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"] else None + args["spindlespeed"] = args["spindlespeed"] if "spindlespeed" in args and args["spindlespeed"] != 0 else None args["dwell"] = bool(args["dwell"]) if "dwell" in args else obj.options["dwell"] args["dwelltime"] = args["dwelltime"] if "dwelltime" in args and args["dwelltime"] else obj.options["dwelltime"] From 2e0c07381aa9482280fa7c27d16acf5f866e6c44 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 11 Dec 2019 00:29:26 +0200 Subject: [PATCH 17/36] - fixed typo --- FlatCAMCommon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py index ec6db2b8..ac6441dc 100644 --- a/FlatCAMCommon.py +++ b/FlatCAMCommon.py @@ -910,7 +910,7 @@ class ToolsDB(QtWidgets.QWidget): spindlespeed_item = FCSpinner() spindlespeed_item.set_range(0, 1000000) - spindlespeed_item.set_range(int(data['spindlespeed'])) + spindlespeed_item.set_value(int(data['spindlespeed'])) spindlespeed_item.setSingleStep(100) widget.setCellWidget(row, 16, spindlespeed_item) From a664f21dc1317be5f13b4c82f4b5788642c6e8ac Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 11 Dec 2019 14:32:01 +0200 Subject: [PATCH 18/36] - started work in HPGL2 parser --- README.md | 4 + camlib.py | 2 +- flatcamParsers/ParseHPGL2.py | 1249 ++++++++++++++++++++++++++++++++++ 3 files changed, 1254 insertions(+), 1 deletion(-) create mode 100644 flatcamParsers/ParseHPGL2.py diff --git a/README.md b/README.md index cefa4748..95c1c311 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing. ================================================= +11.12.2019 + +- started work in HPGL2 parser + 10.12.2019 - small changes in the Geometry UI diff --git a/camlib.py b/camlib.py index 0e86f66a..0ac35ff4 100644 --- a/camlib.py +++ b/camlib.py @@ -459,7 +459,7 @@ class Geometry(object): defaults = { "units": 'in', - "geo_steps_per_circle": 128 + "geo_steps_per_circle": 64 } def __init__(self, geo_steps_per_circle=None): diff --git a/flatcamParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py new file mode 100644 index 00000000..fc6e315b --- /dev/null +++ b/flatcamParsers/ParseHPGL2.py @@ -0,0 +1,1249 @@ +# ############################################################ +# FlatCAM: 2D Post-processing for Manufacturing # +# http://flatcam.org # +# File Author: Marius Adrina Stanciu (c) # +# Date: 12/11/2019 # +# MIT Licence # +# ############################################################ + +from camlib import Geometry, arc, arc_angle +import FlatCAMApp + +import numpy as np +import re +import logging +import traceback +from copy import deepcopy +import sys + +from shapely.ops import cascaded_union, unary_union +from shapely.geometry import Polygon, MultiPolygon, LineString, Point +import shapely.affinity as affinity +from shapely.geometry import box as shply_box + +import FlatCAMTranslation as fcTranslate +import gettext +import builtins + +if '_' not in builtins.__dict__: + _ = gettext.gettext + +log = logging.getLogger('base') + + +class HPGL2(Geometry): + """ + HPGL2 parsing. + """ + + defaults = { + "steps_per_circle": 64, + "use_buffer_for_union": True + } + + def __init__(self, steps_per_circle=None): + """ + The constructor takes no parameters. + + :return: Geometry object + :rtype: Geometry + """ + + # How to approximate a circle with lines. + self.steps_per_circle = steps_per_circle if steps_per_circle is not None else \ + int(self.app.defaults["geometry_circle_steps"]) + + self.decimals = self.app.decimals + + # Initialize parent + Geometry.__init__(self, geo_steps_per_circle=self.steps_per_circle) + + # Number format + self.coord_mm_factor = 0.040 + + # store the file units here: + self.units = self.app.defaults['gerber_def_units'] + + # will store the geometry's as solids + self.solid_geometry = None + + # will store the geometry's as paths + self.follow_geometry = [] + + self.source_file = '' + + # Attributes to be included in serialization + # Always append to it because it carries contents + # from Geometry. + self.ser_attrs += ['solid_geometry', 'follow_geometry', 'source_file'] + + # ### Parser patterns ## ## + + # comment + self.comment_re = re.compile(r"^CO\s*[\"']([a-zA-Z0-9\s]*)[\"'];?$") + # absolute move to x, y + self.abs_move_re = re.compile(r"^PA\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") + # relative move to x, y + self.rel_move_re = re.compile(r"^PR\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") + # pen position + self.pen_re = re.compile(r"^(P[U|D]);?$") + # Initialize + self.mode_re = re.compile(r'^(IN);?$') + # select pen + self.sp_re = re.compile(r'SP(\d);?$') + + + self.fmt_re_alt = re.compile(r'%FS([LTD])?([AI])X(\d)(\d)Y\d\d\*MO(IN|MM)\*%$') + self.fmt_re_orcad = re.compile(r'(G\d+)*\**%FS([LTD])?([AI]).*X(\d)(\d)Y\d\d\*%$') + + # G01... - Linear interpolation plus flashes with coordinates + # Operation code (D0x) missing is deprecated... oh well I will support it. + self.lin_re = re.compile(r'^(?:G0?(1))?(?=.*X([+-]?\d+))?(?=.*Y([+-]?\d+))?[XY][^DIJ]*(?:D0?([123]))?\*$') + + # G02/3... - Circular interpolation with coordinates + # 2-clockwise, 3-counterclockwise + # Operation code (D0x) missing is deprecated... oh well I will support it. + # Optional start with G02 or G03, optional end with D01 or D02 with + # optional coordinates but at least one in any order. + self.circ_re = re.compile(r'^(?:G0?([23]))?(?=.*X([+-]?\d+))?(?=.*Y([+-]?\d+))' + + '?(?=.*I([+-]?\d+))?(?=.*J([+-]?\d+))?[XYIJ][^D]*(?:D0([12]))?\*$') + + # G01/2/3 Occurring without coordinates + self.interp_re = re.compile(r'^(?:G0?([123]))\*') + + # Single G74 or multi G75 quadrant for circular interpolation + self.quad_re = re.compile(r'^G7([45]).*\*$') + + # Absolute/Relative G90/1 (OBSOLETE) + self.absrel_re = re.compile(r'^G9([01])\*$') + + # flag to store if a conversion was done. It is needed because multiple units declarations can be found + # in a Gerber file (normal or obsolete ones) + self.conversion_done = False + + self.use_buffer_for_union = self.app.defaults["gerber_use_buffer_for_union"] + + def parse_file(self, filename, follow=False): + """ + Calls Gerber.parse_lines() with generator of lines + read from the given file. Will split the lines if multiple + statements are found in a single original line. + + The following line is split into two:: + + G54D11*G36* + + First is ``G54D11*`` and seconds is ``G36*``. + + :param filename: Gerber file to parse. + :type filename: str + :param follow: If true, will not create polygons, just lines + following the gerber path. + :type follow: bool + :return: None + """ + + with open(filename, 'r') as gfile: + self.parse_lines([line.rstrip('\n') for line in gfile]) + + def parse_lines(self, glines): + """ + Main Gerber parser. Reads Gerber and populates ``self.paths``, ``self.apertures``, + ``self.flashes``, ``self.regions`` and ``self.units``. + + :param glines: Gerber code as list of strings, each element being + one line of the source file. + :type glines: list + :return: None + :rtype: None + """ + + # Coordinates of the current path, each is [x, y] + path = [] + + # this is for temporary storage of solid geometry until it is added to poly_buffer + geo_s = None + + # this is for temporary storage of follow geometry until it is added to follow_buffer + geo_f = None + + # Polygons are stored here until there is a change in polarity. + # Only then they are combined via cascaded_union and added or + # subtracted from solid_geometry. This is ~100 times faster than + # applying a union for every new polygon. + poly_buffer = [] + + # store here the follow geometry + follow_buffer = [] + + last_path_aperture = None + current_aperture = None + + # 1,2 or 3 from "G01", "G02" or "G03" + current_interpolation_mode = None + + # 1 or 2 from "D01" or "D02" + # Note this is to support deprecated Gerber not putting + # an operation code at the end of every coordinate line. + current_operation_code = None + + # Current coordinates + current_x = None + current_y = None + previous_x = None + previous_y = None + + current_d = None + + # Absolute or Relative/Incremental coordinates + # Not implemented + absolute = True + + # How to interpret circular interpolation: SINGLE or MULTI + quadrant_mode = None + + # Indicates we are parsing an aperture macro + current_macro = None + + # Indicates the current polarity: D-Dark, C-Clear + current_polarity = 'D' + + # If a region is being defined + making_region = False + + # ### Parsing starts here ## ## + line_num = 0 + gline = "" + + s_tol = float(self.app.defaults["gerber_simp_tolerance"]) + + self.app.inform.emit('%s %d %s.' % (_("Gerber processing. Parsing"), len(glines), _("lines"))) + try: + for gline in glines: + if self.app.abort_flag: + # graceful abort requested by the user + raise FlatCAMApp.GracefulException + + line_num += 1 + self.source_file += gline + '\n' + + # Cleanup # + gline = gline.strip(' \r\n') + # log.debug("Line=%3s %s" % (line_num, gline)) + + # ################### + # Ignored lines ##### + # Comments ##### + # ################### + match = self.comm_re.search(gline) + if match: + continue + + # ## Mode (IN/MM) + # Example: %MOIN*% + match = self.mode_re.search(gline) + if match: + self.units = match.group(1) + log.debug("Gerber units found = %s" % self.units) + # Changed for issue #80 + # self.convert_units(match.group(1)) + self.conversion_done = True + continue + + # ############################################################# ## + # Absolute/relative coordinates G90/1 OBSOLETE ######## ## + # ##################################################### ## + match = self.absrel_re.search(gline) + if match: + absolute = {'0': "Absolute", '1': "Relative"}[match.group(1)] + log.warning("Gerber obsolete coordinates type found = %s (Absolute or Relative) " % absolute) + continue + + # ## G01 - Linear interpolation plus flashes + # Operation code (D0x) missing is deprecated... oh well I will support it. + # REGEX: r'^(?:G0?(1))?(?:X(-?\d+))?(?:Y(-?\d+))?(?:D0([123]))?\*$' + match = self.lin_re.search(gline) + if match: + # Parse coordinates + if match.group(2) is not None: + linear_x = parse_number(match.group(2), + self.int_digits, self.frac_digits, self.gerber_zeros) + current_x = linear_x + else: + linear_x = current_x + if match.group(3) is not None: + linear_y = parse_number(match.group(3), + self.int_digits, self.frac_digits, self.gerber_zeros) + current_y = linear_y + else: + linear_y = current_y + + # Parse operation code + if match.group(4) is not None: + current_operation_code = int(match.group(4)) + + # Pen down: add segment + if current_operation_code == 1: + # if linear_x or linear_y are None, ignore those + if current_x is not None and current_y is not None: + # only add the point if it's a new one otherwise skip it (harder to process) + if path[-1] != [current_x, current_y]: + path.append([current_x, current_y]) + + if making_region is False: + # if the aperture is rectangle then add a rectangular shape having as parameters the + # coordinates of the start and end point and also the width and height + # of the 'R' aperture + try: + if self.apertures[current_aperture]["type"] == 'R': + width = self.apertures[current_aperture]['width'] + height = self.apertures[current_aperture]['height'] + minx = min(path[0][0], path[1][0]) - width / 2 + maxx = max(path[0][0], path[1][0]) + width / 2 + miny = min(path[0][1], path[1][1]) - height / 2 + maxy = max(path[0][1], path[1][1]) + height / 2 + log.debug("Coords: %s - %s - %s - %s" % (minx, miny, maxx, maxy)) + + geo_dict = dict() + geo_f = Point([current_x, current_y]) + follow_buffer.append(geo_f) + geo_dict['follow'] = geo_f + + geo_s = shply_box(minx, miny, maxx, maxy) + if self.app.defaults['gerber_simplification']: + poly_buffer.append(geo_s.simplify(s_tol)) + else: + poly_buffer.append(geo_s) + + if self.is_lpc is True: + geo_dict['clear'] = geo_s + else: + geo_dict['solid'] = geo_s + + if current_aperture not in self.apertures: + self.apertures[current_aperture] = dict() + if 'geometry' not in self.apertures[current_aperture]: + self.apertures[current_aperture]['geometry'] = [] + self.apertures[current_aperture]['geometry'].append(deepcopy(geo_dict)) + except Exception as e: + pass + last_path_aperture = current_aperture + # we do this for the case that a region is done without having defined any aperture + if last_path_aperture is None: + if '0' not in self.apertures: + self.apertures['0'] = {} + self.apertures['0']['type'] = 'REG' + self.apertures['0']['size'] = 0.0 + self.apertures['0']['geometry'] = [] + last_path_aperture = '0' + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("GERBER file might be CORRUPT. Check the file !!!")) + elif current_operation_code == 2: + if len(path) > 1: + geo_s = None + + geo_dict = dict() + # --- BUFFERED --- + # this treats the case when we are storing geometry as paths only + if making_region: + # we do this for the case that a region is done without having defined any aperture + if last_path_aperture is None: + if '0' not in self.apertures: + self.apertures['0'] = {} + self.apertures['0']['type'] = 'REG' + self.apertures['0']['size'] = 0.0 + self.apertures['0']['geometry'] = [] + last_path_aperture = '0' + geo_f = Polygon() + else: + geo_f = LineString(path) + + try: + if self.apertures[last_path_aperture]["type"] != 'R': + if not geo_f.is_empty: + follow_buffer.append(geo_f) + geo_dict['follow'] = geo_f + except Exception as e: + log.debug("camlib.Gerber.parse_lines() --> %s" % str(e)) + if not geo_f.is_empty: + follow_buffer.append(geo_f) + geo_dict['follow'] = geo_f + + # this treats the case when we are storing geometry as solids + if making_region: + # we do this for the case that a region is done without having defined any aperture + if last_path_aperture is None: + if '0' not in self.apertures: + self.apertures['0'] = {} + self.apertures['0']['type'] = 'REG' + self.apertures['0']['size'] = 0.0 + self.apertures['0']['geometry'] = [] + last_path_aperture = '0' + + try: + geo_s = Polygon(path) + except ValueError: + log.warning("Problem %s %s" % (gline, line_num)) + self.app.inform.emit('[ERROR] %s: %s' % + (_("Region does not have enough points. " + "File will be processed but there are parser errors. " + "Line number"), str(line_num))) + else: + if last_path_aperture is None: + log.warning("No aperture defined for curent path. (%d)" % line_num) + width = self.apertures[last_path_aperture]["size"] # TODO: WARNING this should fail! + geo_s = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4)) + + try: + if self.apertures[last_path_aperture]["type"] != 'R': + if not geo_s.is_empty: + if self.app.defaults['gerber_simplification']: + poly_buffer.append(geo_s.simplify(s_tol)) + else: + poly_buffer.append(geo_s) + + if self.is_lpc is True: + geo_dict['clear'] = geo_s + else: + geo_dict['solid'] = geo_s + except Exception as e: + log.debug("camlib.Gerber.parse_lines() --> %s" % str(e)) + if self.app.defaults['gerber_simplification']: + poly_buffer.append(geo_s.simplify(s_tol)) + else: + poly_buffer.append(geo_s) + + if self.is_lpc is True: + geo_dict['clear'] = geo_s + else: + geo_dict['solid'] = geo_s + + if last_path_aperture not in self.apertures: + self.apertures[last_path_aperture] = dict() + if 'geometry' not in self.apertures[last_path_aperture]: + self.apertures[last_path_aperture]['geometry'] = [] + self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) + + # if linear_x or linear_y are None, ignore those + if linear_x is not None and linear_y is not None: + path = [[linear_x, linear_y]] # Start new path + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("GERBER file might be CORRUPT. Check the file !!!")) + + # maybe those lines are not exactly needed but it is easier to read the program as those coordinates + # are used in case that circular interpolation is encountered within the Gerber file + current_x = linear_x + current_y = linear_y + + # log.debug("Line_number=%3s X=%s Y=%s (%s)" % (line_num, linear_x, linear_y, gline)) + continue + + # ## G02/3 - Circular interpolation + # 2-clockwise, 3-counterclockwise + # Ex. format: G03 X0 Y50 I-50 J0 where the X, Y coords are the coords of the End Point + match = self.circ_re.search(gline) + if match: + arcdir = [None, None, "cw", "ccw"] + + mode, circular_x, circular_y, i, j, d = match.groups() + + try: + circular_x = parse_number(circular_x, + self.int_digits, self.frac_digits, self.gerber_zeros) + except Exception as e: + circular_x = current_x + + try: + circular_y = parse_number(circular_y, + self.int_digits, self.frac_digits, self.gerber_zeros) + except Exception as e: + circular_y = current_y + + # According to Gerber specification i and j are not modal, which means that when i or j are missing, + # they are to be interpreted as being zero + try: + i = parse_number(i, self.int_digits, self.frac_digits, self.gerber_zeros) + except Exception as e: + i = 0 + + try: + j = parse_number(j, self.int_digits, self.frac_digits, self.gerber_zeros) + except Exception as e: + j = 0 + + if quadrant_mode is None: + log.error("Found arc without preceding quadrant specification G74 or G75. (%d)" % line_num) + log.error(gline) + continue + + if mode is None and current_interpolation_mode not in [2, 3]: + log.error("Found arc without circular interpolation mode defined. (%d)" % line_num) + log.error(gline) + continue + elif mode is not None: + current_interpolation_mode = int(mode) + + # Set operation code if provided + if d is not None: + current_operation_code = int(d) + + # Nothing created! Pen Up. + if current_operation_code == 2: + log.warning("Arc with D2. (%d)" % line_num) + if len(path) > 1: + geo_dict = dict() + + if last_path_aperture is None: + log.warning("No aperture defined for curent path. (%d)" % line_num) + + # --- BUFFERED --- + width = self.apertures[last_path_aperture]["size"] + + # this treats the case when we are storing geometry as paths + geo_f = LineString(path) + if not geo_f.is_empty: + follow_buffer.append(geo_f) + geo_dict['follow'] = geo_f + + # this treats the case when we are storing geometry as solids + buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle)) + if not buffered.is_empty: + if self.app.defaults['gerber_simplification']: + poly_buffer.append(buffered.simplify(s_tol)) + else: + poly_buffer.append(buffered) + + if self.is_lpc is True: + geo_dict['clear'] = buffered + else: + geo_dict['solid'] = buffered + + if last_path_aperture not in self.apertures: + self.apertures[last_path_aperture] = dict() + if 'geometry' not in self.apertures[last_path_aperture]: + self.apertures[last_path_aperture]['geometry'] = [] + self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) + + current_x = circular_x + current_y = circular_y + path = [[current_x, current_y]] # Start new path + continue + + # Flash should not happen here + if current_operation_code == 3: + log.error("Trying to flash within arc. (%d)" % line_num) + continue + + if quadrant_mode == 'MULTI': + center = [i + current_x, j + current_y] + radius = np.sqrt(i ** 2 + j ** 2) + start = np.arctan2(-j, -i) # Start angle + # Numerical errors might prevent start == stop therefore + # we check ahead of time. This should result in a + # 360 degree arc. + if current_x == circular_x and current_y == circular_y: + stop = start + else: + stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle + + this_arc = arc(center, radius, start, stop, + arcdir[current_interpolation_mode], + self.steps_per_circle) + + # The last point in the computed arc can have + # numerical errors. The exact final point is the + # specified (x, y). Replace. + this_arc[-1] = (circular_x, circular_y) + + # Last point in path is current point + # current_x = this_arc[-1][0] + # current_y = this_arc[-1][1] + current_x, current_y = circular_x, circular_y + + # Append + path += this_arc + last_path_aperture = current_aperture + + continue + + if quadrant_mode == 'SINGLE': + + center_candidates = [ + [i + current_x, j + current_y], + [-i + current_x, j + current_y], + [i + current_x, -j + current_y], + [-i + current_x, -j + current_y] + ] + + valid = False + log.debug("I: %f J: %f" % (i, j)) + for center in center_candidates: + radius = np.sqrt(i ** 2 + j ** 2) + + # Make sure radius to start is the same as radius to end. + radius2 = np.sqrt((center[0] - circular_x) ** 2 + (center[1] - circular_y) ** 2) + if radius2 < radius * 0.95 or radius2 > radius * 1.05: + continue # Not a valid center. + + # Correct i and j and continue as with multi-quadrant. + i = center[0] - current_x + j = center[1] - current_y + + start = np.arctan2(-j, -i) # Start angle + stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle + angle = abs(arc_angle(start, stop, arcdir[current_interpolation_mode])) + log.debug("ARC START: %f, %f CENTER: %f, %f STOP: %f, %f" % + (current_x, current_y, center[0], center[1], circular_x, circular_y)) + log.debug("START Ang: %f, STOP Ang: %f, DIR: %s, ABS: %.12f <= %.12f: %s" % + (start * 180 / np.pi, stop * 180 / np.pi, arcdir[current_interpolation_mode], + angle * 180 / np.pi, np.pi / 2 * 180 / np.pi, angle <= (np.pi + 1e-6) / 2)) + + if angle <= (np.pi + 1e-6) / 2: + log.debug("########## ACCEPTING ARC ############") + this_arc = arc(center, radius, start, stop, + arcdir[current_interpolation_mode], + self.steps_per_circle) + + # Replace with exact values + this_arc[-1] = (circular_x, circular_y) + + # current_x = this_arc[-1][0] + # current_y = this_arc[-1][1] + current_x, current_y = circular_x, circular_y + + path += this_arc + last_path_aperture = current_aperture + valid = True + break + + if valid: + continue + else: + log.warning("Invalid arc in line %d." % line_num) + + + # ## Line did not match any pattern. Warn user. + log.warning("Line ignored (%d): %s" % (line_num, gline)) + + # --- Apply buffer --- + # this treats the case when we are storing geometry as paths + self.follow_geometry = follow_buffer + + # this treats the case when we are storing geometry as solids + + if len(poly_buffer) == 0 and len(self.solid_geometry) == 0: + log.error("Object is not Gerber file or empty. Aborting Object creation.") + return 'fail' + + log.warning("Joining %d polygons." % len(poly_buffer)) + self.app.inform.emit('%s: %d.' % (_("Gerber processing. Joining polygons"), len(poly_buffer))) + + if self.use_buffer_for_union: + log.debug("Union by buffer...") + + new_poly = MultiPolygon(poly_buffer) + if self.app.defaults["gerber_buffering"] == 'full': + new_poly = new_poly.buffer(0.00000001) + new_poly = new_poly.buffer(-0.00000001) + log.warning("Union(buffer) done.") + else: + log.debug("Union by union()...") + new_poly = cascaded_union(poly_buffer) + new_poly = new_poly.buffer(0, int(self.steps_per_circle / 4)) + log.warning("Union done.") + + if current_polarity == 'D': + self.app.inform.emit('%s' % _("Gerber processing. Applying Gerber polarity.")) + if new_poly.is_valid: + self.solid_geometry = self.solid_geometry.union(new_poly) + else: + # I do this so whenever the parsed geometry of the file is not valid (intersections) it is still + # loaded. Instead of applying a union I add to a list of polygons. + final_poly = [] + try: + for poly in new_poly: + final_poly.append(poly) + except TypeError: + final_poly.append(new_poly) + + try: + for poly in self.solid_geometry: + final_poly.append(poly) + except TypeError: + final_poly.append(self.solid_geometry) + + self.solid_geometry = final_poly + + else: + self.solid_geometry = self.solid_geometry.difference(new_poly) + + # init this for the following operations + self.conversion_done = False + except Exception as err: + ex_type, ex, tb = sys.exc_info() + traceback.print_tb(tb) + # print traceback.format_exc() + + log.error("Gerber PARSING FAILED. Line %d: %s" % (line_num, gline)) + + loc = '%s #%d %s: %s\n' % (_("Gerber Line"), line_num, _("Gerber Line Content"), gline) + repr(err) + self.app.inform.emit('[ERROR] %s\n%s:' % + (_("Gerber Parser ERROR"), loc)) + + def create_geometry(self): + """ + :rtype : None + :return: None + """ + pass + + def get_bounding_box(self, margin=0.0, rounded=False): + """ + Creates and returns a rectangular polygon bounding at a distance of + margin from the object's ``solid_geometry``. If margin > 0, the polygon + can optionally have rounded corners of radius equal to margin. + + :param margin: Distance to enlarge the rectangular bounding + box in both positive and negative, x and y axes. + :type margin: float + :param rounded: Wether or not to have rounded corners. + :type rounded: bool + :return: The bounding box. + :rtype: Shapely.Polygon + """ + + bbox = self.solid_geometry.envelope.buffer(margin) + if not rounded: + bbox = bbox.envelope + return bbox + + def bounds(self): + """ + Returns coordinates of rectangular bounds + of Gerber geometry: (xmin, ymin, xmax, ymax). + """ + # fixed issue of getting bounds only for one level lists of objects + # now it can get bounds for nested lists of objects + + log.debug("parseGerber.Gerber.bounds()") + + if self.solid_geometry is None: + log.debug("solid_geometry is None") + return 0, 0, 0, 0 + + def bounds_rec(obj): + if type(obj) is list and type(obj) is not MultiPolygon: + minx = np.Inf + miny = np.Inf + maxx = -np.Inf + maxy = -np.Inf + + for k in obj: + if type(k) is dict: + for key in k: + minx_, miny_, maxx_, maxy_ = bounds_rec(k[key]) + minx = min(minx, minx_) + miny = min(miny, miny_) + maxx = max(maxx, maxx_) + maxy = max(maxy, maxy_) + else: + if not k.is_empty: + try: + minx_, miny_, maxx_, maxy_ = bounds_rec(k) + except Exception as e: + log.debug("camlib.Gerber.bounds() --> %s" % str(e)) + return + + minx = min(minx, minx_) + miny = min(miny, miny_) + maxx = max(maxx, maxx_) + maxy = max(maxy, maxy_) + return minx, miny, maxx, maxy + else: + # it's a Shapely object, return it's bounds + return obj.bounds + + bounds_coords = bounds_rec(self.solid_geometry) + return bounds_coords + + def convert_units(self, obj_units): + """ + Converts the units of the object to ``units`` by scaling all + the geometry appropriately. This call ``scale()``. Don't call + it again in descendants. + + :param obj_units: "IN" or "MM" + :type obj_units: str + :return: Scaling factor resulting from unit change. + :rtype: float + """ + + if obj_units.upper() == self.units.upper(): + log.debug("parseGerber.Gerber.convert_units() --> Factor: 1") + return 1.0 + + if obj_units.upper() == "MM": + factor = 25.4 + log.debug("parseGerber.Gerber.convert_units() --> Factor: 25.4") + elif obj_units.upper() == "IN": + factor = 1 / 25.4 + log.debug("parseGerber.Gerber.convert_units() --> Factor: %s" % str(1 / 25.4)) + else: + log.error("Unsupported units: %s" % str(obj_units)) + log.debug("parseGerber.Gerber.convert_units() --> Factor: 1") + return 1.0 + + self.units = obj_units + self.file_units_factor = factor + self.scale(factor, factor) + return factor + + def scale(self, xfactor, yfactor=None, point=None): + """ + Scales the objects' geometry on the XY plane by a given factor. + These are: + + * ``buffered_paths`` + * ``flash_geometry`` + * ``solid_geometry`` + * ``regions`` + + NOTE: + Does not modify the data used to create these elements. If these + are recreated, the scaling will be lost. This behavior was modified + because of the complexity reached in this class. + + :param xfactor: Number by which to scale on X axis. + :type xfactor: float + :param yfactor: Number by which to scale on Y axis. + :type yfactor: float + :param point: reference point for scaling operation + :rtype : None + """ + log.debug("parseGerber.Gerber.scale()") + + try: + xfactor = float(xfactor) + except Exception: + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Scale factor has to be a number: integer or float.")) + return + + if yfactor is None: + yfactor = xfactor + else: + try: + yfactor = float(yfactor) + except Exception: + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Scale factor has to be a number: integer or float.")) + return + + if xfactor == 0 and yfactor == 0: + return + + if point is None: + px = 0 + py = 0 + else: + px, py = point + + # variables to display the percentage of work done + self.geo_len = 0 + try: + self.geo_len = len(self.solid_geometry) + except TypeError: + self.geo_len = 1 + + self.old_disp_number = 0 + self.el_count = 0 + + def scale_geom(obj): + if type(obj) is list: + new_obj = [] + for g in obj: + new_obj.append(scale_geom(g)) + return new_obj + else: + try: + self.el_count += 1 + disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) + if self.old_disp_number < disp_number <= 100: + self.app.proc_container.update_view_text(' %d%%' % disp_number) + self.old_disp_number = disp_number + + return affinity.scale(obj, xfactor, yfactor, origin=(px, py)) + except AttributeError: + return obj + + self.solid_geometry = scale_geom(self.solid_geometry) + self.follow_geometry = scale_geom(self.follow_geometry) + + # we need to scale the geometry stored in the Gerber apertures, too + try: + for apid in self.apertures: + new_geometry = list() + if 'geometry' in self.apertures[apid]: + for geo_el in self.apertures[apid]['geometry']: + new_geo_el = dict() + if 'solid' in geo_el: + new_geo_el['solid'] = scale_geom(geo_el['solid']) + if 'follow' in geo_el: + new_geo_el['follow'] = scale_geom(geo_el['follow']) + if 'clear' in geo_el: + new_geo_el['clear'] = scale_geom(geo_el['clear']) + new_geometry.append(new_geo_el) + + self.apertures[apid]['geometry'] = deepcopy(new_geometry) + + try: + if str(self.apertures[apid]['type']) == 'R' or str(self.apertures[apid]['type']) == 'O': + self.apertures[apid]['width'] *= xfactor + self.apertures[apid]['height'] *= xfactor + elif str(self.apertures[apid]['type']) == 'P': + self.apertures[apid]['diam'] *= xfactor + self.apertures[apid]['nVertices'] *= xfactor + except KeyError: + pass + + try: + if self.apertures[apid]['size'] is not None: + self.apertures[apid]['size'] = float(self.apertures[apid]['size'] * xfactor) + except KeyError: + pass + + except Exception as e: + log.debug('camlib.Gerber.scale() Exception --> %s' % str(e)) + return 'fail' + + self.app.inform.emit('[success] %s' % _("Gerber Scale done.")) + self.app.proc_container.new_text = '' + + # ## solid_geometry ??? + # It's a cascaded union of objects. + # self.solid_geometry = affinity.scale(self.solid_geometry, factor, + # factor, origin=(0, 0)) + + # # Now buffered_paths, flash_geometry and solid_geometry + # self.create_geometry() + + def offset(self, vect): + """ + Offsets the objects' geometry on the XY plane by a given vector. + These are: + + * ``buffered_paths`` + * ``flash_geometry`` + * ``solid_geometry`` + * ``regions`` + + NOTE: + Does not modify the data used to create these elements. If these + are recreated, the scaling will be lost. This behavior was modified + because of the complexity reached in this class. + + :param vect: (x, y) offset vector. + :type vect: tuple + :return: None + """ + log.debug("parseGerber.Gerber.offset()") + + try: + dx, dy = vect + except TypeError: + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("An (x,y) pair of values are needed. " + "Probable you entered only one value in the Offset field.")) + return + + if dx == 0 and dy == 0: + return + + # variables to display the percentage of work done + self.geo_len = 0 + try: + for __ in self.solid_geometry: + self.geo_len += 1 + except TypeError: + self.geo_len = 1 + + self.old_disp_number = 0 + self.el_count = 0 + + def offset_geom(obj): + if type(obj) is list: + new_obj = [] + for g in obj: + new_obj.append(offset_geom(g)) + return new_obj + else: + try: + self.el_count += 1 + disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) + if self.old_disp_number < disp_number <= 100: + self.app.proc_container.update_view_text(' %d%%' % disp_number) + self.old_disp_number = disp_number + + return affinity.translate(obj, xoff=dx, yoff=dy) + except AttributeError: + return obj + + # ## Solid geometry + self.solid_geometry = offset_geom(self.solid_geometry) + self.follow_geometry = offset_geom(self.follow_geometry) + + # we need to offset the geometry stored in the Gerber apertures, too + try: + for apid in self.apertures: + if 'geometry' in self.apertures[apid]: + for geo_el in self.apertures[apid]['geometry']: + if 'solid' in geo_el: + geo_el['solid'] = offset_geom(geo_el['solid']) + if 'follow' in geo_el: + geo_el['follow'] = offset_geom(geo_el['follow']) + if 'clear' in geo_el: + geo_el['clear'] = offset_geom(geo_el['clear']) + + except Exception as e: + log.debug('camlib.Gerber.offset() Exception --> %s' % str(e)) + return 'fail' + + self.app.inform.emit('[success] %s' % + _("Gerber Offset done.")) + self.app.proc_container.new_text = '' + + def mirror(self, axis, point): + """ + Mirrors the object around a specified axis passing through + the given point. What is affected: + + * ``buffered_paths`` + * ``flash_geometry`` + * ``solid_geometry`` + * ``regions`` + + NOTE: + Does not modify the data used to create these elements. If these + are recreated, the scaling will be lost. This behavior was modified + because of the complexity reached in this class. + + :param axis: "X" or "Y" indicates around which axis to mirror. + :type axis: str + :param point: [x, y] point belonging to the mirror axis. + :type point: list + :return: None + """ + log.debug("parseGerber.Gerber.mirror()") + + px, py = point + xscale, yscale = {"X": (1.0, -1.0), "Y": (-1.0, 1.0)}[axis] + + # variables to display the percentage of work done + self.geo_len = 0 + try: + for __ in self.solid_geometry: + self.geo_len += 1 + except TypeError: + self.geo_len = 1 + + self.old_disp_number = 0 + self.el_count = 0 + + def mirror_geom(obj): + if type(obj) is list: + new_obj = [] + for g in obj: + new_obj.append(mirror_geom(g)) + return new_obj + else: + try: + self.el_count += 1 + disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) + if self.old_disp_number < disp_number <= 100: + self.app.proc_container.update_view_text(' %d%%' % disp_number) + self.old_disp_number = disp_number + + return affinity.scale(obj, xscale, yscale, origin=(px, py)) + except AttributeError: + return obj + + self.solid_geometry = mirror_geom(self.solid_geometry) + self.follow_geometry = mirror_geom(self.follow_geometry) + + # we need to mirror the geometry stored in the Gerber apertures, too + try: + for apid in self.apertures: + if 'geometry' in self.apertures[apid]: + for geo_el in self.apertures[apid]['geometry']: + if 'solid' in geo_el: + geo_el['solid'] = mirror_geom(geo_el['solid']) + if 'follow' in geo_el: + geo_el['follow'] = mirror_geom(geo_el['follow']) + if 'clear' in geo_el: + geo_el['clear'] = mirror_geom(geo_el['clear']) + except Exception as e: + log.debug('camlib.Gerber.mirror() Exception --> %s' % str(e)) + return 'fail' + + self.app.inform.emit('[success] %s' % + _("Gerber Mirror done.")) + self.app.proc_container.new_text = '' + + def skew(self, angle_x, angle_y, point): + """ + Shear/Skew the geometries of an object by angles along x and y dimensions. + + Parameters + ---------- + angle_x, angle_y : float, float + The shear angle(s) for the x and y axes respectively. These can be + specified in either degrees (default) or radians by setting + use_radians=True. + + See shapely manual for more information: + http://toblerity.org/shapely/manual.html#affine-transformations + :param angle_x: the angle on X axis for skewing + :param angle_y: the angle on Y axis for skewing + :param point: reference point for skewing operation + :return None + """ + log.debug("parseGerber.Gerber.skew()") + + px, py = point + + if angle_x == 0 and angle_y == 0: + return + + # variables to display the percentage of work done + self.geo_len = 0 + try: + self.geo_len = len(self.solid_geometry) + except TypeError: + self.geo_len = 1 + + self.old_disp_number = 0 + self.el_count = 0 + + def skew_geom(obj): + if type(obj) is list: + new_obj = [] + for g in obj: + new_obj.append(skew_geom(g)) + return new_obj + else: + try: + self.el_count += 1 + disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 100])) + if self.old_disp_number < disp_number <= 100: + self.app.proc_container.update_view_text(' %d%%' % disp_number) + self.old_disp_number = disp_number + + return affinity.skew(obj, angle_x, angle_y, origin=(px, py)) + except AttributeError: + return obj + + self.solid_geometry = skew_geom(self.solid_geometry) + self.follow_geometry = skew_geom(self.follow_geometry) + + # we need to skew the geometry stored in the Gerber apertures, too + try: + for apid in self.apertures: + if 'geometry' in self.apertures[apid]: + for geo_el in self.apertures[apid]['geometry']: + if 'solid' in geo_el: + geo_el['solid'] = skew_geom(geo_el['solid']) + if 'follow' in geo_el: + geo_el['follow'] = skew_geom(geo_el['follow']) + if 'clear' in geo_el: + geo_el['clear'] = skew_geom(geo_el['clear']) + except Exception as e: + log.debug('camlib.Gerber.skew() Exception --> %s' % str(e)) + return 'fail' + + self.app.inform.emit('[success] %s' % _("Gerber Skew done.")) + self.app.proc_container.new_text = '' + + def rotate(self, angle, point): + """ + Rotate an object by a given angle around given coords (point) + :param angle: + :param point: + :return: + """ + log.debug("parseGerber.Gerber.rotate()") + + px, py = point + + if angle == 0: + return + + # variables to display the percentage of work done + self.geo_len = 0 + try: + for __ in self.solid_geometry: + self.geo_len += 1 + except TypeError: + self.geo_len = 1 + + self.old_disp_number = 0 + self.el_count = 0 + + def rotate_geom(obj): + if type(obj) is list: + new_obj = [] + for g in obj: + new_obj.append(rotate_geom(g)) + return new_obj + else: + try: + self.el_count += 1 + disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 100])) + if self.old_disp_number < disp_number <= 100: + self.app.proc_container.update_view_text(' %d%%' % disp_number) + self.old_disp_number = disp_number + + return affinity.rotate(obj, angle, origin=(px, py)) + except AttributeError: + return obj + + self.solid_geometry = rotate_geom(self.solid_geometry) + self.follow_geometry = rotate_geom(self.follow_geometry) + + # we need to rotate the geometry stored in the Gerber apertures, too + try: + for apid in self.apertures: + if 'geometry' in self.apertures[apid]: + for geo_el in self.apertures[apid]['geometry']: + if 'solid' in geo_el: + geo_el['solid'] = rotate_geom(geo_el['solid']) + if 'follow' in geo_el: + geo_el['follow'] = rotate_geom(geo_el['follow']) + if 'clear' in geo_el: + geo_el['clear'] = rotate_geom(geo_el['clear']) + except Exception as e: + log.debug('camlib.Gerber.rotate() Exception --> %s' % str(e)) + return 'fail' + self.app.inform.emit('[success] %s' % + _("Gerber Rotate done.")) + self.app.proc_container.new_text = '' + + +def parse_number(strnumber): + """ + Parse a single number of HPGL2 coordinates. + + :param strnumber: String containing a number + from a coordinate data block, possibly with a leading sign. + :type strnumber: str + :return: The number in floating point. + :rtype: float + """ + + return float(strnumber) * 40.0 # in milimeters + From cd4d0cefb83f50c41c10ccec6bd9fee883477921 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 11 Dec 2019 17:54:33 +0200 Subject: [PATCH 19/36] - some more work in Calibration Tool --- FlatCAMApp.py | 7 +- README.md | 1 + flatcamGUI/FlatCAMGUI.py | 2 +- flatcamTools/ToolCalibration.py | 111 ++++++++++++++++++++++++++++++-- share/calibrate_16.png | Bin 0 -> 242 bytes share/calibrate_32.png | Bin 0 -> 381 bytes 6 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 share/calibrate_16.png create mode 100644 share/calibrate_32.png diff --git a/FlatCAMApp.py b/FlatCAMApp.py index c0f8cb48..56ddf1fa 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -2982,7 +2982,7 @@ class App(QtCore.QObject): self.dblsidedtool.install(icon=QtGui.QIcon('share/doubleside16.png'), separator=True) self.cal_exc_tool = ToolCalibration(self) - self.cal_exc_tool.install(icon=QtGui.QIcon('share/drill16.png'), pos=self.ui.menutool, + self.cal_exc_tool.install(icon=QtGui.QIcon('share/calibrate_16.png'), pos=self.ui.menutool, before=self.dblsidedtool.menuAction, separator=False) self.distance_tool = Distance(self) @@ -4471,10 +4471,11 @@ class App(QtCore.QObject): attributions_label = QtWidgets.QLabel( _( 'Some of the icons used are from the following sources:
' - '

' - 'Icons by Icons8' + '
Icons by Icons8
' + 'Icons by oNline Web Fonts' ) ) diff --git a/README.md b/README.md index 95c1c311..9e46f20c 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ CAD program, and create G-Code for Isolation routing. 11.12.2019 - started work in HPGL2 parser +- some more work in Calibration Tool 10.12.2019 diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index f8930f7b..438a153f 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -2530,7 +2530,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.dblsidedtool.run(toggle=True) return - # Calibrate Tool + # Calibration Tool if key == QtCore.Qt.Key_E: self.app.cal_exc_tool.run(toggle=True) return diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index 555adafb..25430844 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -14,6 +14,7 @@ from flatcamEditors.FlatCAMTextEditor import TextEditor from shapely.geometry import Point from shapely.geometry.base import * +from shapely.affinity import scale, skew import math from datetime import datetime @@ -646,18 +647,36 @@ class ToolCalibration(FlatCAMTool): # calibrated object self.cal_object = None + # target values + self.bl_x = 0.0 + self.bl_y = 0.0 + + self.br_x = 0.0 + self.br_y = 0.0 + + self.tl_x = 0.0 + self.tl_y = 0.0 + + self.tr_x = 0.0 + self.tr_y = 0.0 + # ## Signals - self.start_button.clicked.connect(self.on_start_collect_points) - self.gcode_button.clicked.connect(self.generate_verification_gcode) - self.generate_factors_button.clicked.connect(self.calculate_factors) - self.reset_button.clicked.connect(self.set_tool_ui) - self.cal_source_radio.activated_custom.connect(self.on_cal_source_radio) - self.obj_type_combo.currentIndexChanged.connect(self.on_obj_type_combo) self.adj_object_type_combo.currentIndexChanged.connect(self.on_adj_obj_type_combo) + self.start_button.clicked.connect(self.on_start_collect_points) + + self.gcode_button.clicked.connect(self.generate_verification_gcode) + self.adj_gcode_button.clicked.connect(self.generate_verification_gcode) + + self.generate_factors_button.clicked.connect(self.calculate_factors) + + self.scale_button.clicked.connect(self.on_scale_button) + self.skew_button.clicked.connect(self.on_skew_button) + self.cal_button.clicked.connect(self.on_cal_button_click) + self.reset_button.clicked.connect(self.set_tool_ui) def run(self, toggle=True): self.app.report_usage("ToolCalibration()") @@ -1029,6 +1048,86 @@ class ToolCalibration(FlatCAMTool): self.skewy_entry.set_value(skew_angle_y) + @property + def target_values_from_table(self): + self.bl_x = self.bottom_left_coordx_tgt.get_value() + self.bl_y = self.bottom_left_coordy_tgt.get_value() + + self.br_x = self.bottom_right_coordx_tgt.get_value() + self.br_y = self.bottom_right_coordy_tgt.get_value() + + self.tl_x = self.top_left_coordx_tgt.get_value() + self.tl_y = self.top_left_coordy_tgt.get_value() + + self.tr_x = self.top_right_coordx_tgt.get_value() + self.tr_y = self.top_right_coordy_tgt.get_value() + + return (self.bl_x, self.bl_y), (self.br_x, self.br_y), (self.tl_x, self.tl_y), (self.tr_x, self.tr_x) + + @target_values_from_table.setter + def target_values_from_table(self, param): + bl_pt, br_pt, tl_pt, tr_pt = param + + self.bl_x = bl_pt[0] + self.bl_y = bl_pt[1] + + self.br_x = br_pt[0] + self.br_y = br_pt[1] + + self.tl_x = tl_pt[0] + self.tl_y = tl_pt[1] + + self.tr_x = tr_pt[0] + self.tr_y = tr_pt[1] + + self.bottom_left_coordx_tgt.set_value(bl_pt[0]) + self.bottom_left_coordy_tgt.set_value(bl_pt[1]) + + self.bottom_right_coordx_tgt.set_value(br_pt[0]) + self.bottom_right_coordy_tgt.set_value(br_pt[1]) + + self.top_left_coordx_tgt.set_value(tl_pt[0]) + self.top_left_coordy_tgt.set_value(tl_pt[1]) + + self.top_right_coordx_tgt.set_value(tr_pt[0]) + self.top_right_coordy_tgt.set_value(tr_pt[1]) + + def on_scale_button(self): + scalex_fact = self.scalex_entry.get_value() + scaley_fact = self.scaley_entry.get_value() + bl, br, tl, tr = self.target_values_from_table + + bl_scaled = scale(Point(bl), xfact=scalex_fact, yfact=scaley_fact, origin=bl) + br_scaled = scale(Point(br), xfact=scalex_fact, yfact=scaley_fact, origin=bl) + tl_scaled = scale(Point(tl), xfact=scalex_fact, yfact=scaley_fact, origin=bl) + tr_scaled = scale(Point(tr), xfact=scalex_fact, yfact=scaley_fact, origin=bl) + + scaled_values = ( + (bl_scaled.x, bl_scaled.y), + (br_scaled.x, br_scaled.y), + (tl_scaled.x, tl_scaled.y), + (tr_scaled.x, tr_scaled.y) + ) + self.target_values_from_table = scaled_values + + def on_skew_button(self): + skewx_angle = self.skewx_entry.get_value() + skewy_angle = self.skewy_entry.get_value() + bl, br, tl, tr = self.target_values_from_table + + bl_skewed = skew(Point(bl), xs=skewx_angle, ys=skewy_angle, origin=bl) + br_skewed = skew(Point(br), xs=skewx_angle, ys=skewy_angle, origin=bl) + tl_skewed = skew(Point(tl), xs=skewx_angle, ys=skewy_angle, origin=bl) + tr_skewed = skew(Point(tr), xs=skewx_angle, ys=skewy_angle, origin=bl) + + skewed_values = ( + (bl_skewed.x, bl_skewed.y), + (br_skewed.x, br_skewed.y), + (tl_skewed.x, tl_skewed.y), + (tr_skewed.x, tr_skewed.y) + ) + self.target_values_from_table = skewed_values + def on_cal_button_click(self): # get the FlatCAM object to calibrate selection_index = self.adj_object_combo.currentIndex() diff --git a/share/calibrate_16.png b/share/calibrate_16.png new file mode 100644 index 0000000000000000000000000000000000000000..a05ce1d3703d29b38621bc85afee18bed022ccee GIT binary patch literal 242 zcmV{tbZ5#BN~%;%WrZZRLlLUVR%GA#&c?13<&S-* z$`Xj8q&Lz35PPMe!z}k$!9s`>sV{VEoMSPU7D92lq#^Voy-6U5Hmn60~8 z9TLa(2H8P!AYeJ552?tSsGaEaKB zMJKc*;85aR!7n$IQes(_n60r^k$Ro%u`%YZwLWG3!p3^+MW7R&8!l4i3A@l-3NdB! zWBggwDNwXx!X$4ZE>(;68dH1-@m5k{tyNOWM`XjTRvxryGcmZ=E39vUCueP*=W|t6 bw=m!dk-AbJCXvV900000NkvXXu0mjfnxLv@ literal 0 HcmV?d00001 From 1cb66f3faf79d1824b71fd5d9fb5a5a3b6d1376d Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 01:55:04 +0200 Subject: [PATCH 20/36] - finished the Calibration Tool - changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4 --- FlatCAMApp.py | 5 + FlatCAMObj.py | 3 +- README.md | 5 + flatcamGUI/FlatCAMGUI.py | 2 + flatcamGUI/ObjectUI.py | 9 +- flatcamGUI/PreferencesUI.py | 27 ++ flatcamTools/ToolCalibration.py | 638 ++++++++++++++++++-------------- flatcamTools/ToolDblSided.py | 2 +- 8 files changed, 410 insertions(+), 281 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 56ddf1fa..c3f9f2f5 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -902,6 +902,8 @@ class App(QtCore.QObject): "tools_cal_verz": 0.1, "tools_cal_zeroz": False, "tools_cal_toolchangez": 15, + "tools_cal_toolchange_xy": '', + "tools_cal_sec_point": 'tl', # Utilities # file associations @@ -1484,6 +1486,8 @@ class App(QtCore.QObject): "tools_cal_verz": self.ui.tools2_defaults_form.tools2_cal_group.verz_entry, "tools_cal_zeroz": self.ui.tools2_defaults_form.tools2_cal_group.zeroz_cb, "tools_cal_toolchangez": self.ui.tools2_defaults_form.tools2_cal_group.toolchangez_entry, + "tools_cal_toolchange_xy": self.ui.tools2_defaults_form.tools2_cal_group.toolchange_xy_entry, + "tools_cal_sec_point": self.ui.tools2_defaults_form.tools2_cal_group.second_point_radio, # Utilities # File associations @@ -3151,6 +3155,7 @@ class App(QtCore.QObject): # Tools Toolbar Signals self.ui.dblsided_btn.triggered.connect(lambda: self.dblsidedtool.run(toggle=True)) + self.ui.cal_btn.triggered.connect(lambda: self.cal_exc_tool.run(toggle=True)) 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)) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 5f85e0f7..41c19d5a 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -199,6 +199,7 @@ class FlatCAMObj(QtCore.QObject): # self.ui.scale_entry.returnPressed.connect(self.on_scale_button_click) # except (TypeError, AttributeError): # pass + # self.ui.skew_button.clicked.connect(self.on_skew_button_click) def build_ui(self): @@ -267,7 +268,7 @@ class FlatCAMObj(QtCore.QObject): def on_scale_button_click(self): self.read_form() - factor = self.ui.scale_entry.get_value() + factor = eval(self.ui.scale_entry.get_value()) # if factor is 1.0 do nothing, there is no point in scaling with a factor of 1.0 if factor == 1.0: return diff --git a/README.md b/README.md index 9e46f20c..5dcdb1ca 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing. ================================================= +12.12.2019 + +- finished the Calibration Tool +- changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4 + 11.12.2019 - started work in HPGL2 parser diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 438a153f..678b727c 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -754,6 +754,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): _("Copper Thieving Tool")) self.fiducials_btn = self.toolbartools.addAction(QtGui.QIcon('share/fiducials_32.png'), _("Fiducials Tool")) + self.cal_btn = self.toolbartools.addAction(QtGui.QIcon('share/calibrate_32.png'), _("Calibration Tool")) # ######################################################################## # ########################## Excellon Editor Toolbar# #################### @@ -2198,6 +2199,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): _("Copper Thieving Tool")) self.fiducials_btn = self.toolbartools.addAction(QtGui.QIcon('share/fiducials_32.png'), _("Fiducials Tool")) + self.cal_btn = self.toolbartools.addAction(QtGui.QIcon('share/calibrate_32.png'), _("Calibration Tool")) # ## Excellon Editor Toolbar # ## self.select_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _("Select")) diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index a7bd2875..c40f38bb 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -100,13 +100,10 @@ class ObjectUI(QtWidgets.QWidget): faclabel = QtWidgets.QLabel('%s:' % _('Factor')) faclabel.setToolTip( _("Factor by which to multiply\n" - "geometric features of this object.") + "geometric features of this object.\n" + "Expressions are allowed. E.g: 1/25.4") ) - self.scale_entry = FCDoubleSpinner() - self.scale_entry.set_precision(self.decimals) - self.scale_entry.setRange(0.0, 9999.9999) - self.scale_entry.setSingleStep(0.1) - + self.scale_entry = FCEntry() self.scale_entry.set_value(1.0) # GO Button diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 00d75118..090535d2 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -6513,6 +6513,33 @@ class Tools2CalPrefGroupUI(OptionsGroupUI): grid_lay.addWidget(toolchangez_lbl, 6, 0) grid_lay.addWidget(self.toolchangez_entry, 6, 1, 1, 2) + # Toolchange X-Y entry + toolchangexy_lbl = QtWidgets.QLabel('%s:' % _('Toolchange X-Y')) + toolchangexy_lbl.setToolTip( + _("Toolchange X,Y position.\n" + "If no value is entered then the current\n" + "(x, y) point will be used,") + ) + + self.toolchange_xy_entry = FCEntry() + + grid_lay.addWidget(toolchangexy_lbl, 7, 0) + grid_lay.addWidget(self.toolchange_xy_entry, 7, 1, 1, 2) + + # Second point choice + second_point_lbl = QtWidgets.QLabel('%s:' % _("Second point")) + second_point_lbl.setToolTip( + _("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") + ) + self.second_point_radio = RadioSet([{'label': _('Top-Left'), 'value': 'tl'}, + {'label': _('Bottom-Right'), 'value': 'br'}], + orientation='vertical') + + grid_lay.addWidget(second_point_lbl, 8, 0) + grid_lay.addWidget(self.second_point_radio, 8, 1, 1, 2) + self.layout.addStretch() diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index 25430844..3a045783 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -8,7 +8,7 @@ from PyQt5 import QtWidgets, QtCore, QtGui from FlatCAMTool import FlatCAMTool -from flatcamGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection +from flatcamGUI.GUIElements import FCDoubleSpinner, EvalEntry, FCCheckBox, OptionalInputSection, FCEntry from flatcamGUI.GUIElements import FCTable, FCComboBox, RadioSet from flatcamEditors.FlatCAMTextEditor import TextEditor @@ -64,13 +64,119 @@ class ToolCalibration(FlatCAMTool): grid_lay.setColumnStretch(1, 1) grid_lay.setColumnStretch(2, 0) + self.gcode_title_label = QtWidgets.QLabel('%s' % _('GCode Parameters')) + self.gcode_title_label.setToolTip( + _("Parameters used when creating the GCode in this tool.") + ) + grid_lay.addWidget(self.gcode_title_label, 0, 0, 1, 3) + + # Travel Z entry + travelz_lbl = QtWidgets.QLabel('%s:' % _("Travel Z")) + travelz_lbl.setToolTip( + _("Height (Z) for travelling between the points.") + ) + + self.travelz_entry = FCDoubleSpinner() + self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_precision(self.decimals) + self.travelz_entry.setSingleStep(0.1) + + grid_lay.addWidget(travelz_lbl, 1, 0) + grid_lay.addWidget(self.travelz_entry, 1, 1, 1, 2) + + # Verification Z entry + verz_lbl = QtWidgets.QLabel('%s:' % _("Verification Z")) + verz_lbl.setToolTip( + _("Height (Z) for checking the point.") + ) + + self.verz_entry = FCDoubleSpinner() + self.verz_entry.set_range(-9999.9999, 9999.9999) + self.verz_entry.set_precision(self.decimals) + self.verz_entry.setSingleStep(0.1) + + grid_lay.addWidget(verz_lbl, 2, 0) + grid_lay.addWidget(self.verz_entry, 2, 1, 1, 2) + + # Zero the Z of the verification tool + self.zeroz_cb = FCCheckBox('%s' % _("Zero Z tool")) + self.zeroz_cb.setToolTip( + _("Include a sequence to zero the height (Z)\n" + "of the verification tool.") + ) + + grid_lay.addWidget(self.zeroz_cb, 3, 0, 1, 3) + + # Toolchange Z entry + toolchangez_lbl = QtWidgets.QLabel('%s:' % _("Toolchange Z")) + toolchangez_lbl.setToolTip( + _("Height (Z) for mounting the verification probe.") + ) + + self.toolchangez_entry = FCDoubleSpinner() + self.toolchangez_entry.set_range(0.0000, 9999.9999) + self.toolchangez_entry.set_precision(self.decimals) + self.toolchangez_entry.setSingleStep(0.1) + + grid_lay.addWidget(toolchangez_lbl, 4, 0) + grid_lay.addWidget(self.toolchangez_entry, 4, 1, 1, 2) + + # Toolchange X-Y entry + toolchangexy_lbl = QtWidgets.QLabel('%s:' % _('Toolchange X-Y')) + toolchangexy_lbl.setToolTip( + _("Toolchange X,Y position.\n" + "If no value is entered then the current\n" + "(x, y) point will be used,") + ) + + self.toolchange_xy_entry = FCEntry() + + grid_lay.addWidget(toolchangexy_lbl, 5, 0) + grid_lay.addWidget(self.toolchange_xy_entry, 5, 1, 1, 2) + + self.z_ois = OptionalInputSection( + self.zeroz_cb, + [ + toolchangez_lbl, + self.toolchangez_entry, + toolchangexy_lbl, + self.toolchange_xy_entry + ] + ) + + separator_line1 = QtWidgets.QFrame() + separator_line1.setFrameShape(QtWidgets.QFrame.HLine) + separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) + grid_lay.addWidget(separator_line1, 6, 0, 1, 3) + + # Second point choice + second_point_lbl = QtWidgets.QLabel('%s:' % _("Second point")) + second_point_lbl.setToolTip( + _("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") + ) + self.second_point_radio = RadioSet([{'label': _('Top-Left'), 'value': 'tl'}, + {'label': _('Bottom-Right'), 'value': 'br'}], + orientation='vertical') + + grid_lay.addWidget(second_point_lbl, 7, 0) + grid_lay.addWidget(self.second_point_radio, 7, 1, 1, 2) + + separator_line1 = QtWidgets.QFrame() + separator_line1.setFrameShape(QtWidgets.QFrame.HLine) + separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) + grid_lay.addWidget(separator_line1, 8, 0, 1, 3) + + grid_lay.addWidget(QtWidgets.QLabel(''), 9, 0, 1, 3) + step_1 = QtWidgets.QLabel('%s' % _("STEP 1: Acquire Calibration Points")) step_1.setToolTip( _("Pick four points by clicking inside the drill holes.\n" "Those four points should be in the four\n" "(as much as possible) corners of the Excellon object.") ) - grid_lay.addWidget(step_1, 0, 0, 1, 3) + grid_lay.addWidget(step_1, 10, 0, 1, 3) self.cal_source_lbl = QtWidgets.QLabel("%s:" % _("Source Type")) self.cal_source_lbl.setToolTip(_("The source of calibration points.\n" @@ -81,8 +187,8 @@ class ToolCalibration(FlatCAMTool): {'label': _('Free'), 'value': 'free'}], stretch=False) - grid_lay.addWidget(self.cal_source_lbl, 1, 0) - grid_lay.addWidget(self.cal_source_radio, 1, 1, 1, 2) + grid_lay.addWidget(self.cal_source_lbl, 11, 0) + grid_lay.addWidget(self.cal_source_radio, 11, 1, 1, 2) self.obj_type_label = QtWidgets.QLabel("%s:" % _("Object Type")) @@ -91,8 +197,8 @@ class ToolCalibration(FlatCAMTool): self.obj_type_combo.addItem(_("Excellon")) self.obj_type_combo.setCurrentIndex(1) - grid_lay.addWidget(self.obj_type_label, 2, 0) - grid_lay.addWidget(self.obj_type_combo, 2, 1, 1, 2) + grid_lay.addWidget(self.obj_type_label, 12, 0) + grid_lay.addWidget(self.obj_type_combo, 12, 1, 1, 2) self.object_combo = FCComboBox() self.object_combo.setModel(self.app.collection) @@ -104,20 +210,20 @@ class ToolCalibration(FlatCAMTool): _("FlatCAM Object to be used as a source for reference points.") ) - grid_lay.addWidget(self.object_label, 3, 0, 1, 3) - grid_lay.addWidget(self.object_combo, 4, 0, 1, 3) + grid_lay.addWidget(self.object_label, 13, 0, 1, 3) + grid_lay.addWidget(self.object_combo, 14, 0, 1, 3) self.points_table_label = QtWidgets.QLabel('%s' % _('Calibration Points')) self.points_table_label.setToolTip( _("Contain the expected calibration points and the\n" "ones measured.") ) - grid_lay.addWidget(self.points_table_label, 5, 0, 1, 3) + grid_lay.addWidget(self.points_table_label, 15, 0, 1, 3) self.points_table = FCTable() self.points_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) # self.points_table.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents) - grid_lay.addWidget(self.points_table, 6, 0, 1, 3) + grid_lay.addWidget(self.points_table, 16, 0, 1, 3) self.points_table.setColumnCount(4) self.points_table.setHorizontalHeaderLabels( @@ -221,6 +327,7 @@ class ToolCalibration(FlatCAMTool): self.points_table.setCellWidget(row, 2, self.top_right_coordx_tgt) self.top_right_coordx_tgt.setReadOnly(True) self.top_right_coordx_found = EvalEntry() + self.top_right_coordx_found.setDisabled(True) self.points_table.setCellWidget(row, 3, self.top_right_coordx_found) row += 1 @@ -230,6 +337,7 @@ class ToolCalibration(FlatCAMTool): self.points_table.setCellWidget(row, 2, self.top_right_coordy_tgt) self.top_right_coordy_tgt.setReadOnly(True) self.top_right_coordy_found = EvalEntry() + self.top_right_coordy_found.setDisabled(True) self.points_table.setCellWidget(row, 3, self.top_right_coordy_found) vertical_header = self.points_table.verticalHeader() @@ -269,87 +377,38 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.start_button, 7, 0, 1, 3) + grid_lay.addWidget(self.start_button, 17, 0, 1, 3) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line, 8, 0, 1, 3) + grid_lay.addWidget(separator_line, 18, 0, 1, 3) - grid_lay.addWidget(QtWidgets.QLabel(''), 9, 0) + grid_lay.addWidget(QtWidgets.QLabel(''), 19, 0) # STEP 2 # step_2 = QtWidgets.QLabel('%s' % _("STEP 2: Verification GCode")) step_2.setToolTip( _("Generate GCode file to locate and align the PCB by using\n" - "the four points acquired above.") + "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.") ) - grid_lay.addWidget(step_2, 10, 0, 1, 3) - - self.gcode_title_label = QtWidgets.QLabel('%s' % _('GCode Parameters')) - self.gcode_title_label.setToolTip( - _("Parameters used when creating the GCode in this tool.") - ) - grid_lay.addWidget(self.gcode_title_label, 11, 0, 1, 3) - - # Travel Z entry - travelz_lbl = QtWidgets.QLabel('%s:' % _("Travel Z")) - travelz_lbl.setToolTip( - _("Height (Z) for travelling between the points.") - ) - - self.travelz_entry = FCDoubleSpinner() - self.travelz_entry.set_range(-9999.9999, 9999.9999) - self.travelz_entry.set_precision(self.decimals) - self.travelz_entry.setSingleStep(0.1) - - grid_lay.addWidget(travelz_lbl, 12, 0) - grid_lay.addWidget(self.travelz_entry, 12, 1, 1, 2) - - # Verification Z entry - verz_lbl = QtWidgets.QLabel('%s:' % _("Verification Z")) - verz_lbl.setToolTip( - _("Height (Z) for checking the point.") - ) - - self.verz_entry = FCDoubleSpinner() - self.verz_entry.set_range(-9999.9999, 9999.9999) - self.verz_entry.set_precision(self.decimals) - self.verz_entry.setSingleStep(0.1) - - grid_lay.addWidget(verz_lbl, 13, 0) - grid_lay.addWidget(self.verz_entry, 13, 1, 1, 2) - - # Zero the Z of the verification tool - self.zeroz_cb = FCCheckBox('%s' % _("Zero Z tool")) - self.zeroz_cb.setToolTip( - _("Include a sequence to zero the height (Z)\n" - "of the verification tool.") - ) - - grid_lay.addWidget(self.zeroz_cb, 14, 0, 1, 3) - - # Toochange Z entry - toolchangez_lbl = QtWidgets.QLabel('%s:' % _("Toolchange Z")) - toolchangez_lbl.setToolTip( - _("Height (Z) for mounting the verification probe.") - ) - - self.toolchangez_entry = FCDoubleSpinner() - self.toolchangez_entry.set_range(0.0000, 9999.9999) - self.toolchangez_entry.set_precision(self.decimals) - self.toolchangez_entry.setSingleStep(0.1) - - grid_lay.addWidget(toolchangez_lbl, 15, 0) - grid_lay.addWidget(self.toolchangez_entry, 15, 1, 1, 2) - - self.z_ois = OptionalInputSection(self.zeroz_cb, [toolchangez_lbl, self.toolchangez_entry]) + grid_lay.addWidget(step_2, 20, 0, 1, 3) # ## GCode Button self.gcode_button = QtWidgets.QPushButton(_("Generate GCode")) self.gcode_button.setToolTip( _("Generate GCode file to locate and align the PCB by using\n" - "the four points acquired above.") + "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.") ) self.gcode_button.setStyleSheet(""" QPushButton @@ -357,14 +416,14 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.gcode_button, 16, 0, 1, 3) + grid_lay.addWidget(self.gcode_button, 21, 0, 1, 3) separator_line1 = QtWidgets.QFrame() separator_line1.setFrameShape(QtWidgets.QFrame.HLine) separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line1, 17, 0, 1, 3) + grid_lay.addWidget(separator_line1, 22, 0, 1, 3) - grid_lay.addWidget(QtWidgets.QLabel(''), 18, 0, 1, 3) + grid_lay.addWidget(QtWidgets.QLabel(''), 23, 0, 1, 3) # STEP 3 # step_3 = QtWidgets.QLabel('%s' % _("STEP 3: Adjustments")) @@ -373,7 +432,7 @@ class ToolCalibration(FlatCAMTool): "found when checking the PCB pattern. The differences must be filled\n" "in the fields Found (Delta).") ) - grid_lay.addWidget(step_3, 19, 0, 1, 3) + grid_lay.addWidget(step_3, 24, 0, 1, 3) # ## Factors Button self.generate_factors_button = QtWidgets.QPushButton(_("Calculate Factors")) @@ -388,14 +447,14 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.generate_factors_button, 20, 0, 1, 3) + grid_lay.addWidget(self.generate_factors_button, 25, 0, 1, 3) separator_line1 = QtWidgets.QFrame() separator_line1.setFrameShape(QtWidgets.QFrame.HLine) separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line1, 21, 0, 1, 3) + grid_lay.addWidget(separator_line1, 26, 0, 1, 3) - grid_lay.addWidget(QtWidgets.QLabel(''), 22, 0, 1, 3) + grid_lay.addWidget(QtWidgets.QLabel(''), 27, 0, 1, 3) # STEP 4 # step_4 = QtWidgets.QLabel('%s' % _("STEP 4: Adjusted GCode")) @@ -403,7 +462,7 @@ class ToolCalibration(FlatCAMTool): _("Generate verification GCode file adjusted with\n" "the factors above.") ) - grid_lay.addWidget(step_4, 23, 0, 1, 3) + grid_lay.addWidget(step_4, 28, 0, 1, 3) self.scalex_label = QtWidgets.QLabel(_("Scale Factor X:")) self.scalex_label.setToolTip( @@ -414,8 +473,8 @@ class ToolCalibration(FlatCAMTool): self.scalex_entry.set_precision(self.decimals) self.scalex_entry.setSingleStep(0.1) - grid_lay.addWidget(self.scalex_label, 24, 0) - grid_lay.addWidget(self.scalex_entry, 24, 1, 1, 2) + grid_lay.addWidget(self.scalex_label, 29, 0) + grid_lay.addWidget(self.scalex_entry, 29, 1, 1, 2) self.scaley_label = QtWidgets.QLabel(_("Scale Factor Y:")) self.scaley_label.setToolTip( @@ -426,8 +485,8 @@ class ToolCalibration(FlatCAMTool): self.scaley_entry.set_precision(self.decimals) self.scaley_entry.setSingleStep(0.1) - grid_lay.addWidget(self.scaley_label, 25, 0) - grid_lay.addWidget(self.scaley_entry, 25, 1, 1, 2) + grid_lay.addWidget(self.scaley_label, 30, 0) + grid_lay.addWidget(self.scaley_entry, 30, 1, 1, 2) self.scale_button = QtWidgets.QPushButton(_("Apply Scale Factors")) self.scale_button.setToolTip( @@ -439,7 +498,7 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.scale_button, 26, 0, 1, 3) + grid_lay.addWidget(self.scale_button, 31, 0, 1, 3) self.skewx_label = QtWidgets.QLabel(_("Skew Angle X:")) self.skewx_label.setToolTip( @@ -451,8 +510,8 @@ class ToolCalibration(FlatCAMTool): self.skewx_entry.set_precision(self.decimals) self.skewx_entry.setSingleStep(0.1) - grid_lay.addWidget(self.skewx_label, 27, 0) - grid_lay.addWidget(self.skewx_entry, 27, 1, 1, 2) + grid_lay.addWidget(self.skewx_label, 32, 0) + grid_lay.addWidget(self.skewx_entry, 32, 1, 1, 2) self.skewy_label = QtWidgets.QLabel(_("Skew Angle Y:")) self.skewy_label.setToolTip( @@ -464,8 +523,8 @@ class ToolCalibration(FlatCAMTool): self.skewy_entry.set_precision(self.decimals) self.skewy_entry.setSingleStep(0.1) - grid_lay.addWidget(self.skewy_label, 28, 0) - grid_lay.addWidget(self.skewy_entry, 28, 1, 1, 2) + grid_lay.addWidget(self.skewy_label, 33, 0) + grid_lay.addWidget(self.skewy_entry, 33, 1, 1, 2) self.skew_button = QtWidgets.QPushButton(_("Apply Skew Factors")) self.skew_button.setToolTip( @@ -477,7 +536,7 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.skew_button, 29, 0, 1, 3) + grid_lay.addWidget(self.skew_button, 34, 0, 1, 3) # final_factors_lbl = QtWidgets.QLabel('%s' % _("Final Factors")) # final_factors_lbl.setToolTip( @@ -541,7 +600,9 @@ class ToolCalibration(FlatCAMTool): self.adj_gcode_button = QtWidgets.QPushButton(_("Generate Adjusted GCode")) self.adj_gcode_button.setToolTip( _("Generate verification GCode file adjusted with\n" - "the factors above.") + "the factors set above.\n" + "The GCode parameters can be readjusted\n" + "before clicking this button.") ) self.adj_gcode_button.setStyleSheet(""" QPushButton @@ -549,14 +610,14 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.adj_gcode_button, 35, 0, 1, 3) + grid_lay.addWidget(self.adj_gcode_button, 42, 0, 1, 3) separator_line1 = QtWidgets.QFrame() separator_line1.setFrameShape(QtWidgets.QFrame.HLine) separator_line1.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line1, 36, 0, 1, 3) + grid_lay.addWidget(separator_line1, 43, 0, 1, 3) - grid_lay.addWidget(QtWidgets.QLabel(''), 37, 0, 1, 3) + grid_lay.addWidget(QtWidgets.QLabel(''), 44, 0, 1, 3) # STEP 5 # step_5 = QtWidgets.QLabel('%s' % _("STEP 5: Calibrate FlatCAM Objects")) @@ -564,7 +625,7 @@ class ToolCalibration(FlatCAMTool): _("Adjust the FlatCAM objects\n" "with the factors determined and verified above.") ) - grid_lay.addWidget(step_5, 38, 0, 1, 3) + grid_lay.addWidget(step_5, 45, 0, 1, 3) self.adj_object_type_combo = QtWidgets.QComboBox() self.adj_object_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")]) @@ -575,8 +636,8 @@ class ToolCalibration(FlatCAMTool): _("Type of the FlatCAM Object to be adjusted.") ) - grid_lay.addWidget(self.adj_object_type_label, 39, 0, 1, 3) - grid_lay.addWidget(self.adj_object_type_combo, 40, 0, 1, 3) + grid_lay.addWidget(self.adj_object_type_label, 46, 0, 1, 3) + grid_lay.addWidget(self.adj_object_type_combo, 47, 0, 1, 3) self.adj_object_combo = FCComboBox() self.adj_object_combo.setModel(self.app.collection) @@ -588,8 +649,8 @@ class ToolCalibration(FlatCAMTool): _("The FlatCAM Object to be adjusted.") ) - grid_lay.addWidget(self.adj_object_label, 41, 0, 1, 3) - grid_lay.addWidget(self.adj_object_combo, 42, 0, 1, 3) + grid_lay.addWidget(self.adj_object_label, 48, 0, 1, 3) + grid_lay.addWidget(self.adj_object_combo, 49, 0, 1, 3) # ## Adjust Objects Button self.cal_button = QtWidgets.QPushButton(_("Calibrate")) @@ -603,14 +664,14 @@ class ToolCalibration(FlatCAMTool): font-weight: bold; } """) - grid_lay.addWidget(self.cal_button, 43, 0, 1, 3) + grid_lay.addWidget(self.cal_button, 50, 0, 1, 3) separator_line2 = QtWidgets.QFrame() separator_line2.setFrameShape(QtWidgets.QFrame.HLine) separator_line2.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line2, 44, 0, 1, 3) + grid_lay.addWidget(separator_line2, 51, 0, 1, 3) - grid_lay.addWidget(QtWidgets.QLabel(''), 45, 0, 1, 3) + grid_lay.addWidget(QtWidgets.QLabel(''), 52, 0, 1, 3) self.layout.addStretch() @@ -631,7 +692,7 @@ class ToolCalibration(FlatCAMTool): self.units = '' # here store 4 points to be used for calibration - self.click_points = list() + self.click_points = [[], [], [], []] # store the status of the grid self.grid_status_memory = None @@ -647,19 +708,6 @@ class ToolCalibration(FlatCAMTool): # calibrated object self.cal_object = None - # target values - self.bl_x = 0.0 - self.bl_y = 0.0 - - self.br_x = 0.0 - self.br_y = 0.0 - - self.tl_x = 0.0 - self.tl_y = 0.0 - - self.tr_x = 0.0 - self.tr_y = 0.0 - # ## Signals self.cal_source_radio.activated_custom.connect(self.on_cal_source_radio) self.obj_type_combo.currentIndexChanged.connect(self.on_obj_type_combo) @@ -722,6 +770,9 @@ class ToolCalibration(FlatCAMTool): self.verz_entry.set_value(self.app.defaults['tools_cal_verz']) self.zeroz_cb.set_value(self.app.defaults['tools_cal_zeroz']) self.toolchangez_entry.set_value(self.app.defaults['tools_cal_toolchangez']) + self.toolchange_xy_entry.set_value(self.app.defaults['tools_cal_toolchange_xy']) + + self.second_point_radio.set_value(self.app.defaults['tools_cal_sec_point']) self.scalex_entry.set_value(1.0) self.scaley_entry.set_value(1.0) @@ -762,7 +813,7 @@ class ToolCalibration(FlatCAMTool): model_index = self.app.collection.index(selection_index, 0, self.object_combo.rootModelIndex()) try: self.target_obj = model_index.internalPointer().obj - except Exception: + except AttributeError: self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no source FlatCAM object selected...")) return @@ -787,50 +838,65 @@ class ToolCalibration(FlatCAMTool): self.app.inform.emit(_("Get First calibration point. Bottom Left...")) def on_mouse_click_release(self, event): - if event.button == 1: - if self.app.is_legacy is False: - event_pos = event.pos - else: - event_pos = (event.xdata, event.ydata) + 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 - pos_canvas = self.canvas.translate_coords(event_pos) + pos_canvas = self.canvas.translate_coords(event_pos) + + if event.button == 1: click_pt = Point([pos_canvas[0], pos_canvas[1]]) - if self.cal_source_radio.get_value() == 'object': - if self.target_obj.kind.lower() == 'excellon': - for tool, tool_dict in self.target_obj.tools.items(): - for geo in tool_dict['solid_geometry']: - if click_pt.within(geo): - center_pt = geo.centroid - self.click_points.append( - ( - float('%.*f' % (self.decimals, center_pt.x)), - float('%.*f' % (self.decimals, center_pt.y)) - ) - ) - self.check_points() - else: - for apid, apid_val in self.target_obj.apertures.items(): - for geo_el in apid_val['geometry']: - if 'solid' in geo_el: - if click_pt.within(geo_el['solid']): - if isinstance(geo_el['follow'], Point): - center_pt = geo_el['solid'].centroid - self.click_points.append( - ( - float('%.*f' % (self.decimals, center_pt.x)), - float('%.*f' % (self.decimals, center_pt.y)) - ) - ) - self.check_points() + if self.app.selection_type is not None: + # delete previous selection shape + self.app.delete_selection_shape() + self.app.selection_type = None else: - self.click_points.append( - ( - float('%.*f' % (self.decimals, click_pt.x)), - float('%.*f' % (self.decimals, click_pt.y)) + if self.cal_source_radio.get_value() == 'object': + if self.target_obj.kind.lower() == 'excellon': + for tool, tool_dict in self.target_obj.tools.items(): + for geo in tool_dict['solid_geometry']: + if click_pt.within(geo): + center_pt = geo.centroid + self.click_points.append( + [ + float('%.*f' % (self.decimals, center_pt.x)), + float('%.*f' % (self.decimals, center_pt.y)) + ] + ) + self.check_points() + else: + for apid, apid_val in self.target_obj.apertures.items(): + for geo_el in apid_val['geometry']: + if 'solid' in geo_el: + if click_pt.within(geo_el['solid']): + if isinstance(geo_el['follow'], Point): + center_pt = geo_el['solid'].centroid + self.click_points.append( + [ + float('%.*f' % (self.decimals, center_pt.x)), + float('%.*f' % (self.decimals, center_pt.y)) + ] + ) + self.check_points() + else: + self.click_points.append( + [ + float('%.*f' % (self.decimals, click_pt.x)), + float('%.*f' % (self.decimals, click_pt.y)) + ] ) - ) - self.check_points() + self.check_points() + elif event.button == right_button and self.app.event_is_dragging is False: + if len(self.click_points) != 4: + self.reset_calibration_points() + self.disconnect_cal_events() + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled by user request.")) def check_points(self): if len(self.click_points) == 1: @@ -866,6 +932,12 @@ class ToolCalibration(FlatCAMTool): self.top_right_coordx_tgt.set_value('') self.top_right_coordy_tgt.set_value('') + self.bottom_right_coordx_found.set_value('') + self.bottom_right_coordy_found.set_value('') + + self.top_left_coordx_found.set_value('') + self.top_left_coordy_found.set_value('') + def gcode_header(self): log.debug("ToolCalibration.gcode_header()") time_str = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) @@ -875,8 +947,8 @@ class ToolCalibration(FlatCAMTool): gcode += '(Name: ' + _('Verification GCode for FlatCAM Calibrate Tool') + ')\n' - gcode += '(Units: ' + self.units.upper() + ')\n' + "\n" - gcode += '(Created on ' + time_str + ')\n' + '\n' + gcode += '(Units: ' + self.units.upper() + ')\n\n' + gcode += '(Created on ' + time_str + ')\n\n' gcode += 'G20\n' if self.units.upper() == 'IN' else 'G21\n' gcode += 'G90\n' gcode += 'G17\n' @@ -891,9 +963,13 @@ class ToolCalibration(FlatCAMTool): self.app.ui.plot_tab_area.removeTab(idx) def generate_verification_gcode(self): + sec_point = self.second_point_radio.get_value() travel_z = '%.*f' % (self.decimals, self.travelz_entry.get_value()) toolchange_z = '%.*f' % (self.decimals, self.toolchangez_entry.get_value()) + toolchange_xy_temp = self.toolchange_xy_entry.get_value().split(",") + toolchange_xy = [float(eval(a)) for a in toolchange_xy_temp if a != ''] + verification_z = '%.*f' % (self.decimals, self.verz_entry.get_value()) if len(self.click_points) != 4: @@ -903,36 +979,64 @@ class ToolCalibration(FlatCAMTool): gcode = self.gcode_header() if self.zeroz_cb.get_value(): gcode += 'M5\n' - gcode += f'G00 Z{toolchange_z}\n' + gcode += 'G00 Z%s\n' % toolchange_z + if toolchange_xy: + gcode += 'G00 X%s Y%s\n' % (toolchange_xy[0], toolchange_xy[1]) gcode += 'M0\n' gcode += 'G01 Z0\n' gcode += 'M0\n' - gcode += f'G00 Z{toolchange_z}\n' + gcode += 'G00 Z%s\n' % toolchange_z gcode += 'M0\n' - gcode += f'G00 Z{travel_z}\n' - gcode += f'G00 X{self.click_points[0][0]} Y{self.click_points[0][1]}\n' - gcode += f'G01 Z{verification_z}\n' + # first point: bottom - left -> ORIGIN set + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[0][0], self.click_points[0][1]) + gcode += 'G01 Z%s\n' % verification_z gcode += 'M0\n' - gcode += f'G00 Z{travel_z}\n' - gcode += f'G00 X{self.click_points[2][0]} Y{self.click_points[2][1]}\n' - gcode += f'G01 Z{verification_z}\n' - gcode += 'M0\n' + if sec_point == 'tl': + # second point: top - left -> align the PCB to this point + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[2][0], self.click_points[2][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' - gcode += f'G00 Z{travel_z}\n' - gcode += f'G00 X{self.click_points[3][0]} Y{self.click_points[3][1]}\n' - gcode += f'G01 Z{verification_z}\n' - gcode += 'M0\n' + # third point: bottom - right -> check for scale on X axis or for skew on Y axis + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[1][0], self.click_points[1][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' - gcode += f'G00 Z{travel_z}\n' - gcode += f'G00 X{self.click_points[1][0]} Y{self.click_points[1][1]}\n' - gcode += f'G01 Z{verification_z}\n' - gcode += 'M0\n' + # forth point: top - right -> verification point + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[3][0], self.click_points[3][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' + else: + # second point: bottom - right -> align the PCB to this point + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[1][0], self.click_points[1][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' - gcode += f'G00 Z{travel_z}\n' - gcode += f'G00 X0 Y0\n' - gcode += f'G00 Z{toolchange_z}\n' + # third point: top - left -> check for scale on Y axis or for skew on X axis + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[2][0], self.click_points[2][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' + + # forth point: top - right -> verification point + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X%s Y%s\n' % (self.click_points[3][0], self.click_points[3][1]) + gcode += 'G01 Z%s\n' % verification_z + gcode += 'M0\n' + + # return to (toolchange_xy[0], toolchange_xy[1], toolchange_z) point for toolchange event + gcode += 'G00 Z%s\n' % travel_z + gcode += 'G00 X0 Y0\n' + gcode += 'G00 Z%s\n' % toolchange_z + if toolchange_xy: + gcode += 'G00 X%s Y%s\n' % (toolchange_xy[0], toolchange_xy[1]) gcode += 'M2' @@ -980,153 +1084,141 @@ class ToolCalibration(FlatCAMTool): origin_x = self.click_points[0][0] origin_y = self.click_points[0][1] - top_left_x = float('%.*f' % (self.decimals, self.click_points[2][0])) - top_left_y = float('%.*f' % (self.decimals, self.click_points[2][1])) + top_left_x = self.click_points[2][0] + top_left_y = self.click_points[2][1] + + bot_right_x = self.click_points[1][0] + bot_right_y = self.click_points[1][1] try: - top_left_dx = float('%.*f' % (self.decimals, self.top_left_coordx_found.get_value())) + top_left_dx = float(self.top_left_coordx_found.get_value()) except TypeError: top_left_dx = top_left_x try: - top_left_dy = float('%.*f' % (self.decimals, self.top_left_coordy_found.get_value())) + top_left_dy = float(self.top_left_coordy_found.get_value()) except TypeError: top_left_dy = top_left_y - # top_right_x = float('%.*f' % (self.decimals, self.click_points[3][0])) - # top_right_y = float('%.*f' % (self.decimals, self.click_points[3][1])) - - # try: - # top_right_dx = float('%.*f' % (self.decimals, self.top_right_coordx_found.get_value())) - # except TypeError: - # top_right_dx = top_right_x - # - # try: - # top_right_dy = float('%.*f' % (self.decimals, self.top_right_coordy_found.get_value())) - # except TypeError: - # top_right_dy = top_right_y - - bot_right_x = float('%.*f' % (self.decimals, self.click_points[1][0])) - bot_right_y = float('%.*f' % (self.decimals, self.click_points[1][1])) - try: - bot_right_dx = float('%.*f' % (self.decimals, self.bottom_right_coordx_found.get_value())) + bot_right_dx = float(self.bottom_right_coordx_found.get_value()) except TypeError: bot_right_dx = bot_right_x try: - bot_right_dy = float('%.*f' % (self.decimals, self.bottom_right_coordy_found.get_value())) + bot_right_dy = float(self.bottom_right_coordy_found.get_value()) except TypeError: bot_right_dy = bot_right_y # ------------------------------------------------------------------------------- # # --------------------------- FACTORS CALCULUS ---------------------------------- # # ------------------------------------------------------------------------------- # - if top_left_dy != float('%.*f' % (self.decimals, 0.0)): + if bot_right_dx != float('%.*f' % (self.decimals, bot_right_x)): + # we have scale on X + scale_x = (bot_right_dx / (bot_right_x - origin_x)) + 1 + self.scalex_entry.set_value(scale_x) + + if top_left_dy != float('%.*f' % (self.decimals, top_left_y)): # we have scale on Y - scale_y = (top_left_dy + top_left_y - origin_y) / (top_left_y - origin_y) + scale_y = (top_left_dy / (top_left_y - origin_y)) + 1 self.scaley_entry.set_value(scale_y) - if top_left_dx != float('%.*f' % (self.decimals, 0.0)): + if top_left_dx != float('%.*f' % (self.decimals, top_left_x)): # we have skew on X dx = top_left_dx dy = top_left_y - origin_y skew_angle_x = math.degrees(math.atan(dx / dy)) - self.skewx_entry.set_value(skew_angle_x) - if bot_right_dx != float('%.*f' % (self.decimals, 0.0)): - # we have scale on X - scale_x = (bot_right_dx + bot_right_x - origin_x) / (bot_right_x - origin_x) - self.scalex_entry.set_value(scale_x) - - if bot_right_dy != float('%.*f' % (self.decimals, 0.0)): + if bot_right_dy != float('%.*f' % (self.decimals, bot_right_y)): # we have skew on Y dx = bot_right_x - origin_x dy = bot_right_dy + origin_y skew_angle_y = math.degrees(math.atan(dy / dx)) - self.skewy_entry.set_value(skew_angle_y) @property - def target_values_from_table(self): - self.bl_x = self.bottom_left_coordx_tgt.get_value() - self.bl_y = self.bottom_left_coordy_tgt.get_value() + def target_values_in_table(self): + self.click_points[0][0] = self.bottom_left_coordx_tgt.get_value() + self.click_points[0][1] = self.bottom_left_coordy_tgt.get_value() - self.br_x = self.bottom_right_coordx_tgt.get_value() - self.br_y = self.bottom_right_coordy_tgt.get_value() + self.click_points[1][0] = self.bottom_right_coordx_tgt.get_value() + self.click_points[1][1] = self.bottom_right_coordy_tgt.get_value() - self.tl_x = self.top_left_coordx_tgt.get_value() - self.tl_y = self.top_left_coordy_tgt.get_value() + self.click_points[2][0] = self.top_left_coordx_tgt.get_value() + self.click_points[2][1] = self.top_left_coordy_tgt.get_value() - self.tr_x = self.top_right_coordx_tgt.get_value() - self.tr_y = self.top_right_coordy_tgt.get_value() + self.click_points[3][0] = self.top_right_coordx_tgt.get_value() + self.click_points[3][1] = self.top_right_coordy_tgt.get_value() - return (self.bl_x, self.bl_y), (self.br_x, self.br_y), (self.tl_x, self.tl_y), (self.tr_x, self.tr_x) + return self.click_points - @target_values_from_table.setter - def target_values_from_table(self, param): + @target_values_in_table.setter + def target_values_in_table(self, param): bl_pt, br_pt, tl_pt, tr_pt = param - self.bl_x = bl_pt[0] - self.bl_y = bl_pt[1] + self.click_points[0] = [bl_pt[0], bl_pt[1]] + self.click_points[1] = [br_pt[0], br_pt[1]] + self.click_points[2] = [tl_pt[0], tl_pt[1]] + self.click_points[3] = [tr_pt[0], tr_pt[1]] - self.br_x = br_pt[0] - self.br_y = br_pt[1] + self.bottom_left_coordx_tgt.set_value(float('%.*f' % (self.decimals, bl_pt[0]))) + self.bottom_left_coordy_tgt.set_value(float('%.*f' % (self.decimals, bl_pt[1]))) - self.tl_x = tl_pt[0] - self.tl_y = tl_pt[1] + self.bottom_right_coordx_tgt.set_value(float('%.*f' % (self.decimals, br_pt[0]))) + self.bottom_right_coordy_tgt.set_value(float('%.*f' % (self.decimals, br_pt[1]))) - self.tr_x = tr_pt[0] - self.tr_y = tr_pt[1] + self.top_left_coordx_tgt.set_value(float('%.*f' % (self.decimals, tl_pt[0]))) + self.top_left_coordy_tgt.set_value(float('%.*f' % (self.decimals, tl_pt[1]))) - self.bottom_left_coordx_tgt.set_value(bl_pt[0]) - self.bottom_left_coordy_tgt.set_value(bl_pt[1]) - - self.bottom_right_coordx_tgt.set_value(br_pt[0]) - self.bottom_right_coordy_tgt.set_value(br_pt[1]) - - self.top_left_coordx_tgt.set_value(tl_pt[0]) - self.top_left_coordy_tgt.set_value(tl_pt[1]) - - self.top_right_coordx_tgt.set_value(tr_pt[0]) - self.top_right_coordy_tgt.set_value(tr_pt[1]) + self.top_right_coordx_tgt.set_value(float('%.*f' % (self.decimals, tr_pt[0]))) + self.top_right_coordy_tgt.set_value(float('%.*f' % (self.decimals, tr_pt[1]))) def on_scale_button(self): scalex_fact = self.scalex_entry.get_value() scaley_fact = self.scaley_entry.get_value() - bl, br, tl, tr = self.target_values_from_table + bl, br, tl, tr = self.target_values_in_table - bl_scaled = scale(Point(bl), xfact=scalex_fact, yfact=scaley_fact, origin=bl) - br_scaled = scale(Point(br), xfact=scalex_fact, yfact=scaley_fact, origin=bl) - tl_scaled = scale(Point(tl), xfact=scalex_fact, yfact=scaley_fact, origin=bl) - tr_scaled = scale(Point(tr), xfact=scalex_fact, yfact=scaley_fact, origin=bl) + bl_geo = Point(bl[0], bl[1]) + br_geo = Point(br[0], br[1]) + tl_geo = Point(tl[0], tl[1]) + tr_geo = Point(tr[0], tr[1]) - scaled_values = ( - (bl_scaled.x, bl_scaled.y), - (br_scaled.x, br_scaled.y), - (tl_scaled.x, tl_scaled.y), - (tr_scaled.x, tr_scaled.y) - ) - self.target_values_from_table = scaled_values + bl_scaled = scale(bl_geo, xfact=scalex_fact, yfact=scaley_fact, origin=(bl[0], bl[1])) + br_scaled = scale(br_geo, xfact=scalex_fact, yfact=scaley_fact, origin=(bl[0], bl[1])) + tl_scaled = scale(tl_geo, xfact=scalex_fact, yfact=scaley_fact, origin=(bl[0], bl[1])) + tr_scaled = scale(tr_geo, xfact=scalex_fact, yfact=scaley_fact, origin=(bl[0], bl[1])) + + scaled_values = [ + [bl_scaled.x, bl_scaled.y], + [br_scaled.x, br_scaled.y], + [tl_scaled.x, tl_scaled.y], + [tr_scaled.x, tr_scaled.y] + ] + self.target_values_in_table = scaled_values def on_skew_button(self): skewx_angle = self.skewx_entry.get_value() skewy_angle = self.skewy_entry.get_value() - bl, br, tl, tr = self.target_values_from_table + bl, br, tl, tr = self.target_values_in_table - bl_skewed = skew(Point(bl), xs=skewx_angle, ys=skewy_angle, origin=bl) - br_skewed = skew(Point(br), xs=skewx_angle, ys=skewy_angle, origin=bl) - tl_skewed = skew(Point(tl), xs=skewx_angle, ys=skewy_angle, origin=bl) - tr_skewed = skew(Point(tr), xs=skewx_angle, ys=skewy_angle, origin=bl) + bl_geo = Point(bl[0], bl[1]) + br_geo = Point(br[0], br[1]) + tl_geo = Point(tl[0], tl[1]) + tr_geo = Point(tr[0], tr[1]) - skewed_values = ( - (bl_skewed.x, bl_skewed.y), - (br_skewed.x, br_skewed.y), - (tl_skewed.x, tl_skewed.y), - (tr_skewed.x, tr_skewed.y) - ) - self.target_values_from_table = skewed_values + bl_skewed = skew(bl_geo, xs=skewx_angle, ys=skewy_angle, origin=(bl[0], bl[1])) + br_skewed = skew(br_geo, xs=skewx_angle, ys=skewy_angle, origin=(bl[0], bl[1])) + tl_skewed = skew(tl_geo, xs=skewx_angle, ys=skewy_angle, origin=(bl[0], bl[1])) + tr_skewed = skew(tr_geo, xs=skewx_angle, ys=skewy_angle, origin=(bl[0], bl[1])) + + skewed_values = [ + [bl_skewed.x, bl_skewed.y], + [br_skewed.x, br_skewed.y], + [tl_skewed.x, tl_skewed.y], + [tr_skewed.x, tr_skewed.y] + ] + self.target_values_in_table = skewed_values def on_cal_button_click(self): # get the FlatCAM object to calibrate @@ -1175,8 +1267,8 @@ class ToolCalibration(FlatCAMTool): try: if obj.tools: obj_init.tools = deepcopy(obj.tools) - except Exception as e: - log.debug("App.on_copy_object() --> %s" % str(e)) + except Exception as ee: + log.debug("App.on_copy_object() --> %s" % str(ee)) obj_init.scale(xfactor=scalex, yfactor=scaley, point=(origin_x, origin_y)) obj_init.skew(angle_x=skewx, angle_y=skewy, point=(origin_x, origin_y)) @@ -1201,8 +1293,8 @@ class ToolCalibration(FlatCAMTool): try: if obj.tools: obj_init.tools = deepcopy(obj.tools) - except Exception as e: - log.debug("App.on_copy_object() --> %s" % str(e)) + except Exception as err: + log.debug("App.on_copy_object() --> %s" % str(err)) obj_init.scale(xfactor=scalex, yfactor=scaley, point=(origin_x, origin_y)) obj_init.skew(angle_x=skewx, angle_y=skewy, point=(origin_x, origin_y)) diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py index 0a2d8ea2..95392751 100644 --- a/flatcamTools/ToolDblSided.py +++ b/flatcamTools/ToolDblSided.py @@ -153,7 +153,7 @@ class DblSidedTool(FlatCAMTool): # ## Axis Location self.axis_location = RadioSet([{'label': _('Point'), 'value': 'point'}, {'label': _('Box'), 'value': 'box'}]) - self.axloc_label = QtWidgets.QLabel(_("Axis Ref:")) + self.axloc_label = QtWidgets.QLabel('%s:' % _("Axis Ref")) self.axloc_label.setToolTip( _("The axis should pass through a point or cut\n " "a specified box (in a FlatCAM object) through \n" From f88db33adaa24405745acbf0b71ff27ee145f406 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 01:56:38 +0200 Subject: [PATCH 21/36] - changed the estimated release date --- FlatCAMApp.py | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index c3f9f2f5..9e238489 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -133,7 +133,7 @@ class App(QtCore.QObject): # ################## Version and VERSION DATE ############################## # ########################################################################## version = 8.99 - version_date = "2019/12/12" + version_date = "2019/12/15" beta = True engine = '3D' diff --git a/README.md b/README.md index 5dcdb1ca..ed79ebb8 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ CAD program, and create G-Code for Isolation routing. - if extracut_length is zero then the extracut will cut up until the first point in path no matter what the distance is - in Gerber isolation, when selection mode is checked, now area selection works too - in CNCJob UI, now the CNCJob objects made out of Excellon objects will display their CNC tools (drill bits) -- fixed a cummulative error when using the Tool Offset for Excellon objects +- fixed a cumulative error when using the Tool Offset for Excellon objects - added the display of the real depth of cut (cut z + offset_z) for CNC tools made out of an Excellon object - for OpenGL graphic mode added a fit_view() execution on canvas initialization - fixed Excellon scaling the UI values From b429f9b0c8c9eb8b4f9a44649cf6f0b41403a688 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 02:08:45 +0200 Subject: [PATCH 22/36] - some small changes in the Scale button handler in FlatCAMObj() class --- FlatCAMObj.py | 14 +++++++++++++- README.md | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 41c19d5a..1a3a9aa9 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -268,9 +268,19 @@ class FlatCAMObj(QtCore.QObject): def on_scale_button_click(self): self.read_form() - factor = eval(self.ui.scale_entry.get_value()) + try: + 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)) + return + + if type(factor) != float: + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Scaling could not be executed.")) + # if factor is 1.0 do nothing, there is no point in scaling with a factor of 1.0 if factor == 1.0: + self.app.inform.emit('[success] %s' % _("Scale done.")) return log.debug("FlatCAMObj.on_scale_button_click()") @@ -278,6 +288,8 @@ class FlatCAMObj(QtCore.QObject): def worker_task(): with self.app.proc_container.new(_("Scaling...")): self.scale(factor) + self.app.inform.emit('[success] %s' % _("Scale done.")) + self.app.proc_container.update_view_text('') with self.app.proc_container.new('%s...' % _("Plotting")): self.plot() diff --git a/README.md b/README.md index ed79ebb8..83cbab6c 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ CAD program, and create G-Code for Isolation routing. - finished the Calibration Tool - changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4 +- some small changes in the Scale button handler in FlatCAMObj() class 11.12.2019 From 6d826fa14383d959fbddacf1a8408a1a0e82a3bf Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 03:18:52 +0200 Subject: [PATCH 23/36] - added option to save objects as PDF files in File -> Save menu --- FlatCAMApp.py | 60 ++++++++++++++++++++++++++++++--- README.md | 1 + camlib.py | 2 +- flatcamGUI/FlatCAMGUI.py | 7 ++++ flatcamTools/ToolCalibration.py | 7 ++++ flatcamTools/ToolFilm.py | 28 ++++++++++----- 6 files changed, 90 insertions(+), 15 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 9e238489..de090bc2 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -23,8 +23,14 @@ from stat import S_IREAD, S_IRGRP, S_IROTH import subprocess import ctypes -import tkinter as tk -from PyQt5 import QtPrintSupport +# import tkinter as tk +# from PyQt5 import QtPrintSupport + +from reportlab.graphics import renderPDF +from reportlab.pdfgen import canvas +from reportlab.graphics import renderPM +from reportlab.lib.units import inch, mm +from reportlab.lib.pagesizes import landscape, portrait from contextlib import contextmanager import gc @@ -1776,6 +1782,7 @@ class App(QtCore.QObject): self.ui.menufilesaveproject.triggered.connect(self.on_file_saveproject) self.ui.menufilesaveprojectas.triggered.connect(self.on_file_saveprojectas) self.ui.menufilesaveprojectcopy.triggered.connect(lambda: self.on_file_saveprojectas(make_copy=True)) + self.ui.menufilesave_object_pdf.triggered.connect(self.on_file_save_object_pdf) self.ui.menufilesavedefaults.triggered.connect(self.on_file_savedefaults) self.ui.menufileexportpref.triggered.connect(self.on_export_preferences) @@ -10127,15 +10134,15 @@ class App(QtCore.QObject): filename = str(filename) if filename == '': - self.inform.emit('[WARNING_NOTCL] %s' % - _("Save Project cancelled.")) + self.inform.emit('[WARNING_NOTCL] %s' % _("Save Project cancelled.")) return try: f = open(filename, 'r') f.close() except IOError: - pass + self.inform.emit('[ERROR_NOTCL] %s' % _("The object is used by another application.")) + return if use_thread is True: self.worker_task.emit({'fcn': self.save_project, @@ -10154,6 +10161,49 @@ class App(QtCore.QObject): self.set_ui_title(name=self.project_filename) self.should_we_save = False + def on_file_save_object_pdf(self, use_thread=True): + self.date = str(datetime.today()).rpartition('.')[0] + self.date = ''.join(c for c in self.date if c not in ':-') + self.date = self.date.replace(' ', '_') + + try: + obj_active = self.collection.get_active() + obj_name = obj_active.options['name'] + except AttributeError as err: + log.debug("App.on_file_save_object_pdf() --> %s" % str(err)) + self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) + return + + filter_ = "PDF File (*.PDF);; All Files (*.*)" + try: + filename, _f = QtWidgets.QFileDialog.getSaveFileName( + caption=_("Save Object as PDF ..."), + directory=_('{l_save}/{obj_name}_{date}').format(l_save=str(self.get_last_save_folder()), + obj_name=obj_name, + date=self.date), + filter=filter_) + except TypeError: + filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Object as PDF ..."), filter=filter_) + + filename = str(filename) + + if filename == '': + self.inform.emit('[WARNING_NOTCL] %s' % _("Save Object PDF cancelled.")) + return + + if use_thread is True: + self.worker_task.emit({'fcn': self.save_pdf, 'params': [filename, obj_name]}) + else: + self.save_pdf(filename, obj_name) + + # self.save_project(filename) + if self.defaults["global_open_style"] is False: + self.file_opened.emit("pdf", filename) + self.file_saved.emit("pdf", filename) + + def save_pdf(self, file_name, obj_name): + self.film_tool.export_positive(obj_name=obj_name, box_name=obj_name, filename=file_name, ftype='pdf') + def export_svg(self, obj_name, filename, scale_stroke_factor=0.00): """ Exports a Geometry Object to an SVG file. diff --git a/README.md b/README.md index 83cbab6c..011135de 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing. - finished the Calibration Tool - changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4 - some small changes in the Scale button handler in FlatCAMObj() class +- added option to save objects as PDF files in File -> Save menu 11.12.2019 diff --git a/camlib.py b/camlib.py index 0ac35ff4..8da7052e 100644 --- a/camlib.py +++ b/camlib.py @@ -1824,7 +1824,7 @@ class Geometry(object): """ # Make sure we see a Shapely Geometry class and not a list - if str(type(self)) == "": + if self.kind.lower() == 'geometry': flat_geo = [] if self.multigeo: for tool in self.tools: diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 678b727c..5a951e87 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -250,6 +250,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): _('Save Project C&opy ...'), self) self.menufile_save.addAction(self.menufilesaveprojectcopy) + self.menufile_save.addSeparator() + + # Save Object PDF + self.menufilesave_object_pdf = QtWidgets.QAction(QtGui.QIcon('share/pdf32.png'), + _('Save Object as PDF ...'), self) + self.menufile_save.addAction(self.menufilesave_object_pdf) + # Separator self.menufile.addSeparator() diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index 3a045783..7faaae34 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -197,6 +197,9 @@ class ToolCalibration(FlatCAMTool): self.obj_type_combo.addItem(_("Excellon")) self.obj_type_combo.setCurrentIndex(1) + self.obj_type_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) + self.obj_type_combo.setItemIcon(1, QtGui.QIcon("share/drill16.png")) + grid_lay.addWidget(self.obj_type_label, 12, 0) grid_lay.addWidget(self.obj_type_combo, 12, 1, 1, 2) @@ -631,6 +634,10 @@ class ToolCalibration(FlatCAMTool): self.adj_object_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")]) self.adj_object_type_combo.setCurrentIndex(0) + self.adj_object_type_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) + self.adj_object_type_combo.setItemIcon(1, QtGui.QIcon("share/drill16.png")) + self.adj_object_type_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) + self.adj_object_type_label = QtWidgets.QLabel("%s:" % _("Adjusted object type")) self.adj_object_type_label.setToolTip( _("Type of the FlatCAM Object to be adjusted.") diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index c26656b1..ba44c211 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -19,7 +19,7 @@ from reportlab.graphics import renderPDF from reportlab.pdfgen import canvas from reportlab.graphics import renderPM from reportlab.lib.units import inch, mm -from reportlab.lib.pagesizes import landscape, portrait, A4 +from reportlab.lib.pagesizes import landscape, portrait from svglib.svglib import svg2rlg from xml.dom.minidom import parseString as parse_xml_string @@ -742,12 +742,18 @@ class Film(FlatCAMTool): self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export positive film cancelled.")) return else: + pagesize = self.pagesize_combo.get_value() + orientation = self.orientation_radio.get_value() + color = self.app.defaults['tools_film_color'] + self.export_positive(name, boxname, filename, scale_stroke_factor=factor, scale_factor_x=scale_factor_x, scale_factor_y=scale_factor_y, skew_factor_x=skew_factor_x, skew_factor_y=skew_factor_y, skew_reference=skew_reference, - mirror=mirror, ftype=ftype + mirror=mirror, + pagesize=pagesize, orientation=orientation, color=color, opacity=1.0, + ftype=ftype ) def generate_positive_punched_film(self, name, boxname, source, factor, ftype='svg'): @@ -1072,7 +1078,7 @@ class Film(FlatCAMTool): scale_stroke_factor=0.00, scale_factor_x=None, scale_factor_y=None, skew_factor_x=None, skew_factor_y=None, skew_reference='center', - mirror=None, + mirror=None, orientation='p', pagesize='A4', color='black', opacity=1.0, use_thread=True, ftype='svg'): """ Exports a Geometry Object to an SVG file in positive black. @@ -1116,6 +1122,11 @@ class Film(FlatCAMTool): self.inform.emit('[WARNING_NOTCL] %s: %s' % (_("No object Box. Using instead"), obj)) box = obj + p_size = pagesize + orientation = orientation + color = color + transparency_level = opacity + def make_positive_film(): log.debug("FilmTool.export_positive().make_positive_film()") @@ -1131,9 +1142,9 @@ class Film(FlatCAMTool): # We set the colour to WHITE root = ET.fromstring(exported_svg) for child in root: - child.set('fill', str(self.app.defaults['tools_film_color'])) - child.set('opacity', '1.0') - child.set('stroke', str(self.app.defaults['tools_film_color'])) + child.set('fill', str(color)) + child.set('opacity', str(transparency_level)) + child.set('stroke', str(color)) exported_svg = ET.tostring(root) @@ -1194,7 +1205,7 @@ class Film(FlatCAMTool): return 'fail' else: try: - if self.units == 'INCH': + if self.units == 'IN': unit = inch else: unit = mm @@ -1202,11 +1213,10 @@ class Film(FlatCAMTool): doc_final = StringIO(doc_final) drawing = svg2rlg(doc_final) - p_size = self.pagesize_combo.get_value() if p_size == 'Bounds': renderPDF.drawToFile(drawing, filename) else: - if self.orientation_radio.get_value() == 'p': + if orientation == 'p': page_size = portrait(self.pagesize[p_size]) else: page_size = landscape(self.pagesize[p_size]) From a4127dcdcd2e8624a4cace14387ca4831b802059 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 03:35:30 +0200 Subject: [PATCH 24/36] - small changes in ToolFilm.py --- flatcamTools/ToolFilm.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index ba44c211..82069f3a 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -1078,7 +1078,7 @@ class Film(FlatCAMTool): scale_stroke_factor=0.00, scale_factor_x=None, scale_factor_y=None, skew_factor_x=None, skew_factor_y=None, skew_reference='center', - mirror=None, orientation='p', pagesize='A4', color='black', opacity=1.0, + mirror=None, orientation_val='p', pagesize_val='A4', color_val='black', opacity_val=1.0, use_thread=True, ftype='svg'): """ Exports a Geometry Object to an SVG file in positive black. @@ -1122,12 +1122,12 @@ class Film(FlatCAMTool): self.inform.emit('[WARNING_NOTCL] %s: %s' % (_("No object Box. Using instead"), obj)) box = obj - p_size = pagesize - orientation = orientation - color = color - transparency_level = opacity + p_size = pagesize_val + orientation = orientation_val + color = color_val + transparency_level = opacity_val - def make_positive_film(): + def make_positive_film(p_size, orientation, color, transparency_level): log.debug("FilmTool.export_positive().make_positive_film()") exported_svg = obj.export_svg(scale_stroke_factor=scale_stroke_factor, @@ -1239,7 +1239,8 @@ class Film(FlatCAMTool): def job_thread_film(app_obj): try: - make_positive_film() + make_positive_film(p_size=p_size, orientation=orientation, color=color, + transparency_level=transparency_level) except Exception: proc.done() return @@ -1247,7 +1248,8 @@ class Film(FlatCAMTool): self.app.worker_task.emit({'fcn': job_thread_film, 'params': [self]}) else: - make_positive_film() + make_positive_film(p_size=p_size, orientation=orientation, color=color, + transparency_level=transparency_level) def reset_fields(self): self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) From 367c23fa295dc700ff585f35bfbdad9dd8a5c174 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 04:31:47 +0200 Subject: [PATCH 25/36] - small fix in new script --- FlatCAMApp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index de090bc2..c706f35c 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -4252,7 +4252,7 @@ class App(QtCore.QObject): 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"\ + "# ExportGerber, ExportSVG, Exteriors, Follow, GeoCutout, GeoUnion, GetNames,\n"\ "# GetSys, ImportSvg, Interiors, Isolate, JoinExcellon, JoinGeometry, " \ "ListSys, MillDrills,\n"\ "# MillSlots, Mirror, New, NewExcellon, NewGeometry, NewGerber, Nregions, " \ From c00f30ef658693daebee39bbe40c8db05122be5d Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 18:47:30 +0200 Subject: [PATCH 26/36] - optimized the FlatCAMGerber.clear_plot_apertures() method --- FlatCAMObj.py | 25 ++++++++++++++++--------- README.md | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 1a3a9aa9..0603122f 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -1809,18 +1809,25 @@ class FlatCAMGerber(FlatCAMObj, Gerber): :param aperture: string; aperture for which to clear the mark shapes :return: """ - try: + + if self.mark_shapes: if aperture == 'all': for apid in list(self.apertures.keys()): - if self.app.is_legacy is True: - self.mark_shapes[apid].clear(update=False) - else: - self.mark_shapes[apid].clear(update=True) - + try: + if self.app.is_legacy is True: + self.mark_shapes[apid].clear(update=False) + else: + self.mark_shapes[apid].clear(update=True) + except Exception as e: + log.debug("FlatCAMGerber.clear_plot_apertures() 'all' --> %s" % str(e)) else: - self.mark_shapes[aperture].clear(update=True) - except Exception as e: - log.debug("FlatCAMGerber.clear_plot_apertures() --> %s" % str(e)) + try: + if self.app.is_legacy is True: + self.mark_shapes[aperture].clear(update=False) + else: + self.mark_shapes[aperture].clear(update=True) + except Exception as e: + log.debug("FlatCAMGerber.clear_plot_apertures() 'aperture' --> %s" % str(e)) def clear_mark_all(self): self.ui.mark_all_cb.set_value(False) diff --git a/README.md b/README.md index 011135de..ea2039e0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ CAD program, and create G-Code for Isolation routing. - changed the Scale Entry in Object UI to FCEntry() GUI element in order to allow expressions to be entered. E.g: 1/25.4 - some small changes in the Scale button handler in FlatCAMObj() class - added option to save objects as PDF files in File -> Save menu +- optimized the FlatCAMGerber.clear_plot_apertures() method 11.12.2019 From 0c057574c992231b358124f2ca76c4f2f5372647 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 19:38:29 +0200 Subject: [PATCH 27/36] - some changes in the ObjectUI and for the Geometry UI --- FlatCAMObj.py | 9 +++++---- README.md | 1 + flatcamGUI/ObjectUI.py | 41 +++++++++++++++++++++++++++++------------ 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 0603122f..6cea67e8 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -195,10 +195,10 @@ class FlatCAMObj(QtCore.QObject): pass # Creates problems on focusOut - # try: - # self.ui.scale_entry.returnPressed.connect(self.on_scale_button_click) - # except (TypeError, AttributeError): - # pass + try: + self.ui.scale_entry.returnPressed.connect(self.on_scale_button_click) + except (TypeError, AttributeError): + pass # self.ui.skew_button.clicked.connect(self.on_skew_button_click) @@ -3929,6 +3929,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click) self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click) self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False)) + self.ui.generate_ncc_button.clicked.connect(lambda: self.app.ncclear_tool.run(toggle=False)) self.ui.pp_geometry_name_cb.activated.connect(self.on_pp_changed) self.ui.addtool_entry.returnPressed.connect(lambda: self.on_tool_add()) diff --git a/README.md b/README.md index ea2039e0..f797e7b5 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ CAD program, and create G-Code for Isolation routing. - some small changes in the Scale button handler in FlatCAMObj() class - added option to save objects as PDF files in File -> Save menu - optimized the FlatCAMGerber.clear_plot_apertures() method +- some changes in the ObjectUI and for the Geometry UI 11.12.2019 diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index c40f38bb..7dad4ac4 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -128,7 +128,8 @@ class ObjectUI(QtWidgets.QWidget): self.offset_vectorlabel = QtWidgets.QLabel('%s:' % _('Vector')) self.offset_vectorlabel.setToolTip( _("Amount by which to move the object\n" - "in the x and y axes in (x, y) format.") + "in the x and y axes in (x, y) format.\n" + "Expressions are allowed. E.g: (1/3.2, 0.5*3)") ) self.offsetvector_entry = EvalEntry2() self.offsetvector_entry.setText("(0.0, 0.0)") @@ -1676,13 +1677,22 @@ class GeometryObjectUI(ObjectUI): font-weight: bold; } """) - self.geo_param_box.addWidget(self.generate_cnc_button) + self.grid3.addWidget(self.generate_cnc_button, 23, 0, 1, 2) + + self.grid3.addWidget(QtWidgets.QLabel(''), 24, 0, 1, 2) # ############## # Paint area ## # ############## - self.paint_label = QtWidgets.QLabel('%s' % _('Paint Area')) - self.paint_label.setToolTip( + self.tools_label = QtWidgets.QLabel('%s' % _('TOOLS')) + self.tools_label.setToolTip( + _("Launch Paint Tool in Tools Tab.") + ) + self.grid3.addWidget(self.tools_label, 25, 0, 1, 2) + + # Paint Button + self.paint_tool_button = QtWidgets.QPushButton(_('Paint Tool')) + self.paint_tool_button.setToolTip( _( "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -1690,20 +1700,27 @@ class GeometryObjectUI(ObjectUI): "to click on the desired polygon." ) ) - self.geo_tools_box.addWidget(self.paint_label) - - # GO Button - self.paint_tool_button = QtWidgets.QPushButton(_('Paint Tool')) - self.paint_tool_button.setToolTip( - _("Launch Paint Tool in Tools Tab.") - ) self.paint_tool_button.setStyleSheet(""" QPushButton { font-weight: bold; } """) - self.geo_tools_box.addWidget(self.paint_tool_button) + self.grid3.addWidget(self.paint_tool_button, 26, 0, 1, 2) + + # NCC Tool + self.generate_ncc_button = QtWidgets.QPushButton(_('NCC Tool')) + self.generate_ncc_button.setToolTip( + _("Create the Geometry Object\n" + "for non-copper routing.") + ) + self.generate_ncc_button.setStyleSheet(""" + QPushButton + { + font-weight: bold; + } + """) + self.grid3.addWidget(self.generate_ncc_button, 27, 0, 1, 2) class CNCObjectUI(ObjectUI): From 02b567971d7a92e6229f6379b6552c86206d2c1e Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 12 Dec 2019 21:29:38 +0200 Subject: [PATCH 28/36] - finished a very rough and limited HPGL2 file import --- FlatCAMApp.py | 106 ++++- FlatCAMObj.py | 1 - README.md | 1 + flatcamGUI/FlatCAMGUI.py | 4 + flatcamParsers/ParseHPGL2.py | 809 ++++++++++++++--------------------- 5 files changed, 423 insertions(+), 498 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index c706f35c..7caaf0da 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -63,6 +63,8 @@ from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor from flatcamEditors.FlatCAMGrbEditor import FlatCAMGrbEditor from flatcamEditors.FlatCAMTextEditor import TextEditor +from flatcamParsers.ParseHPGL2 import HPGL2 + from FlatCAMProcess import * from FlatCAMWorkerStack import WorkerStack # from flatcamGUI.VisPyVisuals import Color @@ -1771,7 +1773,7 @@ class App(QtCore.QObject): self.ui.menufileimportdxf.triggered.connect(lambda: self.on_file_importdxf("geometry")) self.ui.menufileimportdxf_as_gerber.triggered.connect(lambda: self.on_file_importdxf("gerber")) - + self.ui.menufileimport_hpgl2_as_geo.triggered.connect(self.on_fileopenhpgl2) self.ui.menufileexportsvg.triggered.connect(self.on_file_exportsvg) self.ui.menufileexportpng.triggered.connect(self.on_file_exportpng) self.ui.menufileexportexcellon.triggered.connect(self.on_file_exportexcellon) @@ -9295,6 +9297,44 @@ class App(QtCore.QObject): # thread safe. The new_project() self.open_project(filename) + def on_fileopenhpgl2(self, signal: bool = None, name=None): + """ + File menu callback for opening a HPGL2. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :return: None + """ + + self.report_usage("on_fileopenhpgl2") + App.log.debug("on_fileopenhpgl2()") + + _filter_ = "HPGL2 Files (*.plt);;" \ + "All Files (*.*)" + + if name is None: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), + directory=self.get_last_folder(), + filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), filter=_filter_) + + filenames = [str(filename) for filename in filenames] + else: + filenames = [name] + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), '%.2f' % self.used_time, + _("Opening HPGL2 file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Open HPGL2 file cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_hpgl2, 'params': [filename]}) + def on_file_openconfig(self, signal: bool = None): """ File menu callback for opening a config file. @@ -10931,6 +10971,70 @@ class App(QtCore.QObject): self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + def open_hpgl2(self, filename, outname=None): + """ + Opens a HPGL2 file, parses it and creates a new object for + it in the program. Thread-safe. + + :param outname: Name of the resulting object. None causes the + name to be that of the file. + :param filename: HPGL2 file filename + :type filename: str + :return: None + """ + filename = filename + + # How the object should be initialized + def obj_init(geo_obj, app_obj): + + # assert isinstance(geo_obj, FlatCAMGeometry), \ + # "Expected to initialize a FlatCAMGeometry but got %s" % type(geo_obj) + + # Opening the file happens here + obj = HPGL2() + try: + HPGL2.parse_file(obj, filename) + except IOError: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) + return "fail" + except ParseError as err: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) + app_obj.log.error(str(err)) + return "fail" + except Exception as e: + log.debug("App.open_hpgl2() --> %s" % str(e)) + msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") + msg += traceback.format_exc() + app_obj.inform.emit(msg) + return "fail" + + geo_obj.multigeo = True + geo_obj.solid_geometry = obj.solid_geometry + geo_obj.tools = obj.tools + + # if geo_obj.is_empty(): + # app_obj.inform.emit('[ERROR_NOTCL] %s' % + # _("Object is not HPGL2 file or empty. Aborting object creation.")) + # return "fail" + + App.log.debug("open_hpgl2()") + + with self.proc_container.new(_("Opening HPGL2")) as proc: + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + # # ## Object creation # ## + 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' + + # Register recent file + self.file_opened.emit("geometry", filename) + + # GUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + def open_script(self, filename, outname=None, silent=False): """ Opens a Script file, parses it and creates a new object for diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 6cea67e8..5098fb1f 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -5744,7 +5744,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): def plot_element(self, element, color='#FF0000FF', visible=None): visible = visible if visible else self.options['plot'] - try: for sub_el in element: self.plot_element(sub_el) diff --git a/README.md b/README.md index f797e7b5..552a4259 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ CAD program, and create G-Code for Isolation routing. - added option to save objects as PDF files in File -> Save menu - optimized the FlatCAMGerber.clear_plot_apertures() method - some changes in the ObjectUI and for the Geometry UI +- finished a very rough and limited HPGL2 file import 11.12.2019 diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 5a951e87..596302dc 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -168,6 +168,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow): _('&DXF as Gerber Object ...'), self) self.menufileimport.addAction(self.menufileimportdxf_as_gerber) self.menufileimport.addSeparator() + self.menufileimport_hpgl2_as_geo = QtWidgets.QAction(QtGui.QIcon('share/dxf16.png'), + _('HPGL2 as Geometry Object ...'), self) + self.menufileimport.addAction(self.menufileimport_hpgl2_as_geo) + self.menufileimport.addSeparator() # Export ... self.menufileexport = self.menufile.addMenu(QtGui.QIcon('share/export.png'), _('Export')) diff --git a/flatcamParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py index fc6e315b..3798a8be 100644 --- a/flatcamParsers/ParseHPGL2.py +++ b/flatcamParsers/ParseHPGL2.py @@ -1,7 +1,7 @@ # ############################################################ # FlatCAM: 2D Post-processing for Manufacturing # # http://flatcam.org # -# File Author: Marius Adrina Stanciu (c) # +# File Author: Marius Adrian Stanciu (c) # # Date: 12/11/2019 # # MIT Licence # # ############################################################ @@ -17,7 +17,7 @@ from copy import deepcopy import sys from shapely.ops import cascaded_union, unary_union -from shapely.geometry import Polygon, MultiPolygon, LineString, Point +from shapely.geometry import Polygon, MultiPolygon, LineString, Point, MultiLineString import shapely.affinity as affinity from shapely.geometry import box as shply_box @@ -62,7 +62,54 @@ class HPGL2(Geometry): self.coord_mm_factor = 0.040 # store the file units here: - self.units = self.app.defaults['gerber_def_units'] + self.units = 'MM' + + # storage for the tools + self.tools = dict() + + self.default_data = dict() + self.default_data.update({ + "name": '_ncc', + "plot": self.app.defaults["geometry_plot"], + "cutz": self.app.defaults["geometry_cutz"], + "vtipdia": self.app.defaults["geometry_vtipdia"], + "vtipangle": self.app.defaults["geometry_vtipangle"], + "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"], + "spindlespeed": self.app.defaults["geometry_spindlespeed"], + "toolchangexy": self.app.defaults["geometry_toolchangexy"], + "startz": self.app.defaults["geometry_startz"], + + "tooldia": self.app.defaults["tools_painttooldia"], + "paintmargin": self.app.defaults["tools_paintmargin"], + "paintmethod": self.app.defaults["tools_paintmethod"], + "selectmethod": self.app.defaults["tools_selectmethod"], + "pathconnect": self.app.defaults["tools_pathconnect"], + "paintcontour": self.app.defaults["tools_paintcontour"], + "paintoverlap": self.app.defaults["tools_paintoverlap"], + + "nccoverlap": self.app.defaults["tools_nccoverlap"], + "nccmargin": self.app.defaults["tools_nccmargin"], + "nccmethod": self.app.defaults["tools_nccmethod"], + "nccconnect": self.app.defaults["tools_nccconnect"], + "ncccontour": self.app.defaults["tools_ncccontour"], + "nccrest": self.app.defaults["tools_nccrest"] + }) + + # flag to be set True when tool is detected + self.tool_detected = False # will store the geometry's as solids self.solid_geometry = None @@ -82,17 +129,17 @@ class HPGL2(Geometry): # comment self.comment_re = re.compile(r"^CO\s*[\"']([a-zA-Z0-9\s]*)[\"'];?$") # absolute move to x, y - self.abs_move_re = re.compile(r"^PA\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") + self.abs_move_re = re.compile(r"^PA\s*(-?\d+\.?\d+?),?\s*(-?\d+\.?\d+?)*;?$") # relative move to x, y self.rel_move_re = re.compile(r"^PR\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") # pen position self.pen_re = re.compile(r"^(P[U|D]);?$") # Initialize - self.mode_re = re.compile(r'^(IN);?$') + self.initialize_re = re.compile(r'^(IN);?$') + # select pen self.sp_re = re.compile(r'SP(\d);?$') - self.fmt_re_alt = re.compile(r'%FS([LTD])?([AI])X(\d)(\d)Y\d\d\*MO(IN|MM)\*%$') self.fmt_re_orcad = re.compile(r'(G\d+)*\**%FS([LTD])?([AI]).*X(\d)(\d)Y\d\d\*%$') @@ -108,12 +155,6 @@ class HPGL2(Geometry): self.circ_re = re.compile(r'^(?:G0?([23]))?(?=.*X([+-]?\d+))?(?=.*Y([+-]?\d+))' + '?(?=.*I([+-]?\d+))?(?=.*J([+-]?\d+))?[XYIJ][^D]*(?:D0([12]))?\*$') - # G01/2/3 Occurring without coordinates - self.interp_re = re.compile(r'^(?:G0?([123]))\*') - - # Single G74 or multi G75 quadrant for circular interpolation - self.quad_re = re.compile(r'^G7([45]).*\*$') - # Absolute/Relative G90/1 (OBSOLETE) self.absrel_re = re.compile(r'^G9([01])\*$') @@ -121,25 +162,13 @@ class HPGL2(Geometry): # in a Gerber file (normal or obsolete ones) self.conversion_done = False - self.use_buffer_for_union = self.app.defaults["gerber_use_buffer_for_union"] + self.in_header = None - def parse_file(self, filename, follow=False): + def parse_file(self, filename): """ - Calls Gerber.parse_lines() with generator of lines - read from the given file. Will split the lines if multiple - statements are found in a single original line. - The following line is split into two:: - - G54D11*G36* - - First is ``G54D11*`` and seconds is ``G36*``. - - :param filename: Gerber file to parse. + :param filename: HPGL2 file to parse. :type filename: str - :param follow: If true, will not create polygons, just lines - following the gerber path. - :type follow: bool :return: None """ @@ -148,10 +177,9 @@ class HPGL2(Geometry): def parse_lines(self, glines): """ - Main Gerber parser. Reads Gerber and populates ``self.paths``, ``self.apertures``, - ``self.flashes``, ``self.regions`` and ``self.units``. + Main HPGL2 parser. - :param glines: Gerber code as list of strings, each element being + :param glines: HPGL2 code as list of strings, each element being one line of the source file. :type glines: list :return: None @@ -159,33 +187,9 @@ class HPGL2(Geometry): """ # Coordinates of the current path, each is [x, y] - path = [] + path = list() - # this is for temporary storage of solid geometry until it is added to poly_buffer - geo_s = None - - # this is for temporary storage of follow geometry until it is added to follow_buffer - geo_f = None - - # Polygons are stored here until there is a change in polarity. - # Only then they are combined via cascaded_union and added or - # subtracted from solid_geometry. This is ~100 times faster than - # applying a union for every new polygon. - poly_buffer = [] - - # store here the follow geometry - follow_buffer = [] - - last_path_aperture = None - current_aperture = None - - # 1,2 or 3 from "G01", "G02" or "G03" - current_interpolation_mode = None - - # 1 or 2 from "D01" or "D02" - # Note this is to support deprecated Gerber not putting - # an operation code at the end of every coordinate line. - current_operation_code = None + geo_buffer = [] # Current coordinates current_x = None @@ -193,31 +197,17 @@ class HPGL2(Geometry): previous_x = None previous_y = None - current_d = None + # store the pen (tool) status + pen_status = 'up' - # Absolute or Relative/Incremental coordinates - # Not implemented - absolute = True - - # How to interpret circular interpolation: SINGLE or MULTI - quadrant_mode = None - - # Indicates we are parsing an aperture macro - current_macro = None - - # Indicates the current polarity: D-Dark, C-Clear - current_polarity = 'D' - - # If a region is being defined - making_region = False + # store the current tool here + current_tool = None # ### Parsing starts here ## ## line_num = 0 gline = "" - s_tol = float(self.app.defaults["gerber_simp_tolerance"]) - - self.app.inform.emit('%s %d %s.' % (_("Gerber processing. Parsing"), len(glines), _("lines"))) + self.app.inform.emit('%s %d %s.' % (_("HPGL2 processing. Parsing"), len(glines), _("lines"))) try: for gline in glines: if self.app.abort_flag: @@ -235,466 +225,293 @@ class HPGL2(Geometry): # Ignored lines ##### # Comments ##### # ################### - match = self.comm_re.search(gline) + match = self.comment_re.search(gline) if match: + log.debug(str(match.group(1))) continue - # ## Mode (IN/MM) - # Example: %MOIN*% - match = self.mode_re.search(gline) - if match: - self.units = match.group(1) - log.debug("Gerber units found = %s" % self.units) - # Changed for issue #80 - # self.convert_units(match.group(1)) - self.conversion_done = True - continue - - # ############################################################# ## - # Absolute/relative coordinates G90/1 OBSOLETE ######## ## - # ##################################################### ## + # ##################################################### + # Absolute/relative coordinates G90/1 OBSOLETE ######## + # ##################################################### match = self.absrel_re.search(gline) if match: absolute = {'0': "Absolute", '1': "Relative"}[match.group(1)] log.warning("Gerber obsolete coordinates type found = %s (Absolute or Relative) " % absolute) continue - # ## G01 - Linear interpolation plus flashes - # Operation code (D0x) missing is deprecated... oh well I will support it. - # REGEX: r'^(?:G0?(1))?(?:X(-?\d+))?(?:Y(-?\d+))?(?:D0([123]))?\*$' - match = self.lin_re.search(gline) + # search for the initialization + match = self.initialize_re.search(gline) if match: - # Parse coordinates - if match.group(2) is not None: - linear_x = parse_number(match.group(2), - self.int_digits, self.frac_digits, self.gerber_zeros) - current_x = linear_x - else: - linear_x = current_x - if match.group(3) is not None: - linear_y = parse_number(match.group(3), - self.int_digits, self.frac_digits, self.gerber_zeros) - current_y = linear_y - else: - linear_y = current_y - - # Parse operation code - if match.group(4) is not None: - current_operation_code = int(match.group(4)) - - # Pen down: add segment - if current_operation_code == 1: - # if linear_x or linear_y are None, ignore those - if current_x is not None and current_y is not None: - # only add the point if it's a new one otherwise skip it (harder to process) - if path[-1] != [current_x, current_y]: - path.append([current_x, current_y]) - - if making_region is False: - # if the aperture is rectangle then add a rectangular shape having as parameters the - # coordinates of the start and end point and also the width and height - # of the 'R' aperture - try: - if self.apertures[current_aperture]["type"] == 'R': - width = self.apertures[current_aperture]['width'] - height = self.apertures[current_aperture]['height'] - minx = min(path[0][0], path[1][0]) - width / 2 - maxx = max(path[0][0], path[1][0]) + width / 2 - miny = min(path[0][1], path[1][1]) - height / 2 - maxy = max(path[0][1], path[1][1]) + height / 2 - log.debug("Coords: %s - %s - %s - %s" % (minx, miny, maxx, maxy)) - - geo_dict = dict() - geo_f = Point([current_x, current_y]) - follow_buffer.append(geo_f) - geo_dict['follow'] = geo_f - - geo_s = shply_box(minx, miny, maxx, maxy) - if self.app.defaults['gerber_simplification']: - poly_buffer.append(geo_s.simplify(s_tol)) - else: - poly_buffer.append(geo_s) - - if self.is_lpc is True: - geo_dict['clear'] = geo_s - else: - geo_dict['solid'] = geo_s - - if current_aperture not in self.apertures: - self.apertures[current_aperture] = dict() - if 'geometry' not in self.apertures[current_aperture]: - self.apertures[current_aperture]['geometry'] = [] - self.apertures[current_aperture]['geometry'].append(deepcopy(geo_dict)) - except Exception as e: - pass - last_path_aperture = current_aperture - # we do this for the case that a region is done without having defined any aperture - if last_path_aperture is None: - if '0' not in self.apertures: - self.apertures['0'] = {} - self.apertures['0']['type'] = 'REG' - self.apertures['0']['size'] = 0.0 - self.apertures['0']['geometry'] = [] - last_path_aperture = '0' - else: - self.app.inform.emit('[WARNING] %s: %s' % - (_("Coordinates missing, line ignored"), str(gline))) - self.app.inform.emit('[WARNING_NOTCL] %s' % - _("GERBER file might be CORRUPT. Check the file !!!")) - elif current_operation_code == 2: - if len(path) > 1: - geo_s = None - - geo_dict = dict() - # --- BUFFERED --- - # this treats the case when we are storing geometry as paths only - if making_region: - # we do this for the case that a region is done without having defined any aperture - if last_path_aperture is None: - if '0' not in self.apertures: - self.apertures['0'] = {} - self.apertures['0']['type'] = 'REG' - self.apertures['0']['size'] = 0.0 - self.apertures['0']['geometry'] = [] - last_path_aperture = '0' - geo_f = Polygon() - else: - geo_f = LineString(path) - - try: - if self.apertures[last_path_aperture]["type"] != 'R': - if not geo_f.is_empty: - follow_buffer.append(geo_f) - geo_dict['follow'] = geo_f - except Exception as e: - log.debug("camlib.Gerber.parse_lines() --> %s" % str(e)) - if not geo_f.is_empty: - follow_buffer.append(geo_f) - geo_dict['follow'] = geo_f - - # this treats the case when we are storing geometry as solids - if making_region: - # we do this for the case that a region is done without having defined any aperture - if last_path_aperture is None: - if '0' not in self.apertures: - self.apertures['0'] = {} - self.apertures['0']['type'] = 'REG' - self.apertures['0']['size'] = 0.0 - self.apertures['0']['geometry'] = [] - last_path_aperture = '0' - - try: - geo_s = Polygon(path) - except ValueError: - log.warning("Problem %s %s" % (gline, line_num)) - self.app.inform.emit('[ERROR] %s: %s' % - (_("Region does not have enough points. " - "File will be processed but there are parser errors. " - "Line number"), str(line_num))) - else: - if last_path_aperture is None: - log.warning("No aperture defined for curent path. (%d)" % line_num) - width = self.apertures[last_path_aperture]["size"] # TODO: WARNING this should fail! - geo_s = LineString(path).buffer(width / 1.999, int(self.steps_per_circle / 4)) - - try: - if self.apertures[last_path_aperture]["type"] != 'R': - if not geo_s.is_empty: - if self.app.defaults['gerber_simplification']: - poly_buffer.append(geo_s.simplify(s_tol)) - else: - poly_buffer.append(geo_s) - - if self.is_lpc is True: - geo_dict['clear'] = geo_s - else: - geo_dict['solid'] = geo_s - except Exception as e: - log.debug("camlib.Gerber.parse_lines() --> %s" % str(e)) - if self.app.defaults['gerber_simplification']: - poly_buffer.append(geo_s.simplify(s_tol)) - else: - poly_buffer.append(geo_s) - - if self.is_lpc is True: - geo_dict['clear'] = geo_s - else: - geo_dict['solid'] = geo_s - - if last_path_aperture not in self.apertures: - self.apertures[last_path_aperture] = dict() - if 'geometry' not in self.apertures[last_path_aperture]: - self.apertures[last_path_aperture]['geometry'] = [] - self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) - - # if linear_x or linear_y are None, ignore those - if linear_x is not None and linear_y is not None: - path = [[linear_x, linear_y]] # Start new path - else: - self.app.inform.emit('[WARNING] %s: %s' % - (_("Coordinates missing, line ignored"), str(gline))) - self.app.inform.emit('[WARNING_NOTCL] %s' % - _("GERBER file might be CORRUPT. Check the file !!!")) - - # maybe those lines are not exactly needed but it is easier to read the program as those coordinates - # are used in case that circular interpolation is encountered within the Gerber file - current_x = linear_x - current_y = linear_y - - # log.debug("Line_number=%3s X=%s Y=%s (%s)" % (line_num, linear_x, linear_y, gline)) + self.in_header = False continue - # ## G02/3 - Circular interpolation - # 2-clockwise, 3-counterclockwise - # Ex. format: G03 X0 Y50 I-50 J0 where the X, Y coords are the coords of the End Point - match = self.circ_re.search(gline) - if match: - arcdir = [None, None, "cw", "ccw"] + if self.in_header is False: + # tools detection + match = self.sp_re.search(gline) + if match: + tool = match.group(1) + # self.tools[tool] = dict() + self.tools.update({ + tool: { + 'tooldia': float('%.*f' % + ( + self.decimals, + float(self.app.defaults['geometry_cnctooldia']) + ) + ), + 'offset': 'Path', + 'offset_value': 0.0, + 'type': 'Iso', + 'tool_type': 'C1', + 'data': deepcopy(self.default_data), + 'solid_geometry': list() + } + }) - mode, circular_x, circular_y, i, j, d = match.groups() + if current_tool: + if path: + geo = LineString(path) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + path[:] = [] - try: - circular_x = parse_number(circular_x, - self.int_digits, self.frac_digits, self.gerber_zeros) - except Exception as e: - circular_x = current_x - - try: - circular_y = parse_number(circular_y, - self.int_digits, self.frac_digits, self.gerber_zeros) - except Exception as e: - circular_y = current_y - - # According to Gerber specification i and j are not modal, which means that when i or j are missing, - # they are to be interpreted as being zero - try: - i = parse_number(i, self.int_digits, self.frac_digits, self.gerber_zeros) - except Exception as e: - i = 0 - - try: - j = parse_number(j, self.int_digits, self.frac_digits, self.gerber_zeros) - except Exception as e: - j = 0 - - if quadrant_mode is None: - log.error("Found arc without preceding quadrant specification G74 or G75. (%d)" % line_num) - log.error(gline) + current_tool = tool continue - if mode is None and current_interpolation_mode not in [2, 3]: - log.error("Found arc without circular interpolation mode defined. (%d)" % line_num) - log.error(gline) - continue - elif mode is not None: - current_interpolation_mode = int(mode) - - # Set operation code if provided - if d is not None: - current_operation_code = int(d) - - # Nothing created! Pen Up. - if current_operation_code == 2: - log.warning("Arc with D2. (%d)" % line_num) - if len(path) > 1: - geo_dict = dict() - - if last_path_aperture is None: - log.warning("No aperture defined for curent path. (%d)" % line_num) - - # --- BUFFERED --- - width = self.apertures[last_path_aperture]["size"] - - # this treats the case when we are storing geometry as paths - geo_f = LineString(path) - if not geo_f.is_empty: - follow_buffer.append(geo_f) - geo_dict['follow'] = geo_f - - # this treats the case when we are storing geometry as solids - buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle)) - if not buffered.is_empty: - if self.app.defaults['gerber_simplification']: - poly_buffer.append(buffered.simplify(s_tol)) - else: - poly_buffer.append(buffered) - - if self.is_lpc is True: - geo_dict['clear'] = buffered - else: - geo_dict['solid'] = buffered - - if last_path_aperture not in self.apertures: - self.apertures[last_path_aperture] = dict() - if 'geometry' not in self.apertures[last_path_aperture]: - self.apertures[last_path_aperture]['geometry'] = [] - self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) - - current_x = circular_x - current_y = circular_y - path = [[current_x, current_y]] # Start new path + # pen status detection + match = self.pen_re.search(gline) + if match: + pen_status = {'PU': 'up', 'PD': 'down'}[match.group(1)] continue - # Flash should not happen here - if current_operation_code == 3: - log.error("Trying to flash within arc. (%d)" % line_num) - continue - - if quadrant_mode == 'MULTI': - center = [i + current_x, j + current_y] - radius = np.sqrt(i ** 2 + j ** 2) - start = np.arctan2(-j, -i) # Start angle - # Numerical errors might prevent start == stop therefore - # we check ahead of time. This should result in a - # 360 degree arc. - if current_x == circular_x and current_y == circular_y: - stop = start + # linear move + match = self.abs_move_re.search(gline) + if match: + # Parse coordinates + if match.group(1) is not None: + linear_x = parse_number(match.group(1)) + current_x = linear_x else: - stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle + linear_x = current_x - this_arc = arc(center, radius, start, stop, - arcdir[current_interpolation_mode], - self.steps_per_circle) + if match.group(2) is not None: + linear_y = parse_number(match.group(2)) + current_y = linear_y + else: + linear_y = current_y - # The last point in the computed arc can have - # numerical errors. The exact final point is the - # specified (x, y). Replace. - this_arc[-1] = (circular_x, circular_y) + # Pen down: add segment + if pen_status == 'down': + # if linear_x or linear_y are None, ignore those + if current_x is not None and current_y is not None: + # only add the point if it's a new one otherwise skip it (harder to process) + if path[-1] != [current_x, current_y]: + path.append([current_x, current_y]) + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) - # Last point in path is current point - # current_x = this_arc[-1][0] - # current_y = this_arc[-1][1] - current_x, current_y = circular_x, circular_y + elif pen_status == 'up': + if len(path) > 1: + geo = LineString(path) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) - # Append - path += this_arc - last_path_aperture = current_aperture + # if linear_x or linear_y are None, ignore those + if linear_x is not None and linear_y is not None: + path = [[linear_x, linear_y]] # Start new path + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + # log.debug("Line_number=%3s X=%s Y=%s (%s)" % (line_num, linear_x, linear_y, gline)) continue - if quadrant_mode == 'SINGLE': - - center_candidates = [ - [i + current_x, j + current_y], - [-i + current_x, j + current_y], - [i + current_x, -j + current_y], - [-i + current_x, -j + current_y] - ] - - valid = False - log.debug("I: %f J: %f" % (i, j)) - for center in center_candidates: - radius = np.sqrt(i ** 2 + j ** 2) - - # Make sure radius to start is the same as radius to end. - radius2 = np.sqrt((center[0] - circular_x) ** 2 + (center[1] - circular_y) ** 2) - if radius2 < radius * 0.95 or radius2 > radius * 1.05: - continue # Not a valid center. - - # Correct i and j and continue as with multi-quadrant. - i = center[0] - current_x - j = center[1] - current_y - - start = np.arctan2(-j, -i) # Start angle - stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle - angle = abs(arc_angle(start, stop, arcdir[current_interpolation_mode])) - log.debug("ARC START: %f, %f CENTER: %f, %f STOP: %f, %f" % - (current_x, current_y, center[0], center[1], circular_x, circular_y)) - log.debug("START Ang: %f, STOP Ang: %f, DIR: %s, ABS: %.12f <= %.12f: %s" % - (start * 180 / np.pi, stop * 180 / np.pi, arcdir[current_interpolation_mode], - angle * 180 / np.pi, np.pi / 2 * 180 / np.pi, angle <= (np.pi + 1e-6) / 2)) - - if angle <= (np.pi + 1e-6) / 2: - log.debug("########## ACCEPTING ARC ############") - this_arc = arc(center, radius, start, stop, - arcdir[current_interpolation_mode], - self.steps_per_circle) - - # Replace with exact values - this_arc[-1] = (circular_x, circular_y) - - # current_x = this_arc[-1][0] - # current_y = this_arc[-1][1] - current_x, current_y = circular_x, circular_y - - path += this_arc - last_path_aperture = current_aperture - valid = True - break - - if valid: - continue - else: - log.warning("Invalid arc in line %d." % line_num) - + # ## Circular interpolation + # -clockwise, + # -counterclockwise + match = self.circ_re.search(gline) + # if match: + # arcdir = [None, None, "cw", "ccw"] + # + # mode, circular_x, circular_y, i, j, d = match.groups() + # + # try: + # circular_x = parse_number(circular_x) + # except Exception as e: + # circular_x = current_x + # + # try: + # circular_y = parse_number(circular_y) + # except Exception as e: + # circular_y = current_y + # + # try: + # i = parse_number(i) + # except Exception as e: + # i = 0 + # + # try: + # j = parse_number(j) + # except Exception as e: + # j = 0 + # + # if mode is None and current_interpolation_mode not in [2, 3]: + # log.error("Found arc without circular interpolation mode defined. (%d)" % line_num) + # log.error(gline) + # continue + # elif mode is not None: + # current_interpolation_mode = int(mode) + # + # # Set operation code if provided + # if d is not None: + # current_operation_code = int(d) + # + # # Nothing created! Pen Up. + # if current_operation_code == 2: + # log.warning("Arc with D2. (%d)" % line_num) + # if len(path) > 1: + # geo_dict = dict() + # + # if last_path_aperture is None: + # log.warning("No aperture defined for curent path. (%d)" % line_num) + # + # # --- BUFFERED --- + # width = self.apertures[last_path_aperture]["size"] + # + # # this treats the case when we are storing geometry as paths + # geo_f = LineString(path) + # if not geo_f.is_empty: + # geo_dict['follow'] = geo_f + # + # # this treats the case when we are storing geometry as solids + # buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle)) + # + # if last_path_aperture not in self.apertures: + # self.apertures[last_path_aperture] = dict() + # if 'geometry' not in self.apertures[last_path_aperture]: + # self.apertures[last_path_aperture]['geometry'] = [] + # self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) + # + # current_x = circular_x + # current_y = circular_y + # path = [[current_x, current_y]] # Start new path + # continue + # + # # Flash should not happen here + # if current_operation_code == 3: + # log.error("Trying to flash within arc. (%d)" % line_num) + # continue + # + # if quadrant_mode == 'MULTI': + # center = [i + current_x, j + current_y] + # radius = np.sqrt(i ** 2 + j ** 2) + # start = np.arctan2(-j, -i) # Start angle + # # Numerical errors might prevent start == stop therefore + # # we check ahead of time. This should result in a + # # 360 degree arc. + # if current_x == circular_x and current_y == circular_y: + # stop = start + # else: + # stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle + # + # this_arc = arc(center, radius, start, stop, + # arcdir[current_interpolation_mode], + # self.steps_per_circle) + # + # # The last point in the computed arc can have + # # numerical errors. The exact final point is the + # # specified (x, y). Replace. + # this_arc[-1] = (circular_x, circular_y) + # + # # Last point in path is current point + # # current_x = this_arc[-1][0] + # # current_y = this_arc[-1][1] + # current_x, current_y = circular_x, circular_y + # + # # Append + # path += this_arc + # last_path_aperture = current_aperture + # + # continue + # + # if quadrant_mode == 'SINGLE': + # + # center_candidates = [ + # [i + current_x, j + current_y], + # [-i + current_x, j + current_y], + # [i + current_x, -j + current_y], + # [-i + current_x, -j + current_y] + # ] + # + # valid = False + # log.debug("I: %f J: %f" % (i, j)) + # for center in center_candidates: + # radius = np.sqrt(i ** 2 + j ** 2) + # + # # Make sure radius to start is the same as radius to end. + # radius2 = np.sqrt((center[0] - circular_x) ** 2 + (center[1] - circular_y) ** 2) + # if radius2 < radius * 0.95 or radius2 > radius * 1.05: + # continue # Not a valid center. + # + # # Correct i and j and continue as with multi-quadrant. + # i = center[0] - current_x + # j = center[1] - current_y + # + # start = np.arctan2(-j, -i) # Start angle + # stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle + # angle = abs(arc_angle(start, stop, arcdir[current_interpolation_mode])) + # log.debug("ARC START: %f, %f CENTER: %f, %f STOP: %f, %f" % + # (current_x, current_y, center[0], center[1], circular_x, circular_y)) + # log.debug("START Ang: %f, STOP Ang: %f, DIR: %s, ABS: %.12f <= %.12f: %s" % + # (start * 180 / np.pi, stop * 180 / np.pi, arcdir[current_interpolation_mode], + # angle * 180 / np.pi, np.pi / 2 * 180 / np.pi, angle <= (np.pi + 1e-6) / 2)) + # + # if angle <= (np.pi + 1e-6) / 2: + # log.debug("########## ACCEPTING ARC ############") + # this_arc = arc(center, radius, start, stop, + # arcdir[current_interpolation_mode], + # self.steps_per_circle) + # + # # Replace with exact values + # this_arc[-1] = (circular_x, circular_y) + # + # # current_x = this_arc[-1][0] + # # current_y = this_arc[-1][1] + # current_x, current_y = circular_x, circular_y + # + # path += this_arc + # last_path_aperture = current_aperture + # valid = True + # break + # + # if valid: + # continue + # else: + # log.warning("Invalid arc in line %d." % line_num) # ## Line did not match any pattern. Warn user. log.warning("Line ignored (%d): %s" % (line_num, gline)) - # --- Apply buffer --- - # this treats the case when we are storing geometry as paths - self.follow_geometry = follow_buffer - - # this treats the case when we are storing geometry as solids - - if len(poly_buffer) == 0 and len(self.solid_geometry) == 0: - log.error("Object is not Gerber file or empty. Aborting Object creation.") + if len(geo_buffer) == 0 and len(self.solid_geometry) == 0: + log.error("Object is not HPGL2 file or empty. Aborting Object creation.") return 'fail' - log.warning("Joining %d polygons." % len(poly_buffer)) - self.app.inform.emit('%s: %d.' % (_("Gerber processing. Joining polygons"), len(poly_buffer))) + log.warning("Joining %d polygons." % len(geo_buffer)) + self.app.inform.emit('%s: %d.' % (_("Gerber processing. Joining polygons"), len(geo_buffer))) - if self.use_buffer_for_union: - log.debug("Union by buffer...") + new_poly = unary_union(geo_buffer) + self.solid_geometry = new_poly - new_poly = MultiPolygon(poly_buffer) - if self.app.defaults["gerber_buffering"] == 'full': - new_poly = new_poly.buffer(0.00000001) - new_poly = new_poly.buffer(-0.00000001) - log.warning("Union(buffer) done.") - else: - log.debug("Union by union()...") - new_poly = cascaded_union(poly_buffer) - new_poly = new_poly.buffer(0, int(self.steps_per_circle / 4)) - log.warning("Union done.") - - if current_polarity == 'D': - self.app.inform.emit('%s' % _("Gerber processing. Applying Gerber polarity.")) - if new_poly.is_valid: - self.solid_geometry = self.solid_geometry.union(new_poly) - else: - # I do this so whenever the parsed geometry of the file is not valid (intersections) it is still - # loaded. Instead of applying a union I add to a list of polygons. - final_poly = [] - try: - for poly in new_poly: - final_poly.append(poly) - except TypeError: - final_poly.append(new_poly) - - try: - for poly in self.solid_geometry: - final_poly.append(poly) - except TypeError: - final_poly.append(self.solid_geometry) - - self.solid_geometry = final_poly - - else: - self.solid_geometry = self.solid_geometry.difference(new_poly) - - # init this for the following operations - self.conversion_done = False except Exception as err: ex_type, ex, tb = sys.exc_info() traceback.print_tb(tb) # print traceback.format_exc() - log.error("Gerber PARSING FAILED. Line %d: %s" % (line_num, gline)) + log.error("HPGL2 PARSING FAILED. Line %d: %s" % (line_num, gline)) - loc = '%s #%d %s: %s\n' % (_("Gerber Line"), line_num, _("Gerber Line Content"), gline) + repr(err) - self.app.inform.emit('[ERROR] %s\n%s:' % - (_("Gerber Parser ERROR"), loc)) + loc = '%s #%d %s: %s\n' % (_("HPGL2 Line"), line_num, _("HPGL2 Line Content"), gline) + repr(err) + self.app.inform.emit('[ERROR] %s\n%s:' % (_("HPGL2 Parser ERROR"), loc)) def create_geometry(self): """ @@ -1245,5 +1062,5 @@ def parse_number(strnumber): :rtype: float """ - return float(strnumber) * 40.0 # in milimeters + return float(strnumber) / 40.0 # in milimeters From f9580be396186be83dafc9798ecc2a15504f6f49 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 13 Dec 2019 06:53:13 +0200 Subject: [PATCH 29/36] - wip --- flatcamParsers/ParseHPGL2.py | 1 + 1 file changed, 1 insertion(+) diff --git a/flatcamParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py index 3798a8be..30846abe 100644 --- a/flatcamParsers/ParseHPGL2.py +++ b/flatcamParsers/ParseHPGL2.py @@ -316,6 +316,7 @@ class HPGL2(Geometry): geo = LineString(path) self.tools[current_tool]['solid_geometry'].append(geo) geo_buffer.append(geo) + path[:] = [] # if linear_x or linear_y are None, ignore those if linear_x is not None and linear_y is not None: From 336970d7ea310d0fb8ac7ee9c14607dbe618cf4f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 13 Dec 2019 15:54:26 +0200 Subject: [PATCH 30/36] - HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. --- FlatCAMApp.py | 21 +- README.md | 1 + flatcamParsers/ParseHPGL2.py | 916 ++++++----------------------------- 3 files changed, 149 insertions(+), 789 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 7caaf0da..2f1d7693 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -10987,11 +10987,11 @@ class App(QtCore.QObject): # How the object should be initialized def obj_init(geo_obj, app_obj): - # assert isinstance(geo_obj, FlatCAMGeometry), \ - # "Expected to initialize a FlatCAMGeometry but got %s" % type(geo_obj) + assert isinstance(geo_obj, FlatCAMGeometry), \ + "Expected to initialize a FlatCAMGeometry but got %s" % type(geo_obj) # Opening the file happens here - obj = HPGL2() + obj = HPGL2(self) try: HPGL2.parse_file(obj, filename) except IOError: @@ -11009,13 +11009,16 @@ class App(QtCore.QObject): return "fail" geo_obj.multigeo = True - geo_obj.solid_geometry = obj.solid_geometry - geo_obj.tools = obj.tools + geo_obj.solid_geometry = deepcopy(obj.solid_geometry) + geo_obj.tools = deepcopy(obj.tools) + geo_obj.source_file = deepcopy(obj.source_file) - # if geo_obj.is_empty(): - # app_obj.inform.emit('[ERROR_NOTCL] %s' % - # _("Object is not HPGL2 file or empty. Aborting object creation.")) - # return "fail" + del obj + + if not geo_obj.solid_geometry: + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("Object is not HPGL2 file or empty. Aborting object creation.")) + return "fail" App.log.debug("open_hpgl2()") diff --git a/README.md b/README.md index 552a4259..9014171b 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ CAD program, and create G-Code for Isolation routing. - optimized the FlatCAMGerber.clear_plot_apertures() method - some changes in the ObjectUI and for the Geometry UI - finished a very rough and limited HPGL2 file import +- HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. 11.12.2019 diff --git a/flatcamParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py index 30846abe..05326893 100644 --- a/flatcamParsers/ParseHPGL2.py +++ b/flatcamParsers/ParseHPGL2.py @@ -2,11 +2,11 @@ # FlatCAM: 2D Post-processing for Manufacturing # # http://flatcam.org # # File Author: Marius Adrian Stanciu (c) # -# Date: 12/11/2019 # +# Date: 12/12/2019 # # MIT Licence # # ############################################################ -from camlib import Geometry, arc, arc_angle +from camlib import arc, three_point_circle import FlatCAMApp import numpy as np @@ -16,10 +16,8 @@ import traceback from copy import deepcopy import sys -from shapely.ops import cascaded_union, unary_union -from shapely.geometry import Polygon, MultiPolygon, LineString, Point, MultiLineString -import shapely.affinity as affinity -from shapely.geometry import box as shply_box +from shapely.ops import unary_union +from shapely.geometry import LineString, Point import FlatCAMTranslation as fcTranslate import gettext @@ -31,37 +29,23 @@ if '_' not in builtins.__dict__: log = logging.getLogger('base') -class HPGL2(Geometry): +class HPGL2: """ HPGL2 parsing. """ - defaults = { - "steps_per_circle": 64, - "use_buffer_for_union": True - } - - def __init__(self, steps_per_circle=None): + def __init__(self, app): """ - The constructor takes no parameters. + The constructor takes FlatCAMApp.App as parameter. - :return: Geometry object - :rtype: Geometry """ + self.app = app # How to approximate a circle with lines. - self.steps_per_circle = steps_per_circle if steps_per_circle is not None else \ - int(self.app.defaults["geometry_circle_steps"]) - + self.steps_per_circle = int(self.app.defaults["geometry_circle_steps"]) self.decimals = self.app.decimals - # Initialize parent - Geometry.__init__(self, geo_steps_per_circle=self.steps_per_circle) - - # Number format - self.coord_mm_factor = 0.040 - - # store the file units here: + # store the file units here self.units = 'MM' # storage for the tools @@ -108,64 +92,43 @@ class HPGL2(Geometry): "nccrest": self.app.defaults["tools_nccrest"] }) - # flag to be set True when tool is detected - self.tool_detected = False - - # will store the geometry's as solids + # will store the geometry here for compatibility reason self.solid_geometry = None - # will store the geometry's as paths - self.follow_geometry = [] - self.source_file = '' - # Attributes to be included in serialization - # Always append to it because it carries contents - # from Geometry. - self.ser_attrs += ['solid_geometry', 'follow_geometry', 'source_file'] - # ### Parser patterns ## ## # comment self.comment_re = re.compile(r"^CO\s*[\"']([a-zA-Z0-9\s]*)[\"'];?$") - # absolute move to x, y - self.abs_move_re = re.compile(r"^PA\s*(-?\d+\.?\d+?),?\s*(-?\d+\.?\d+?)*;?$") - # relative move to x, y - self.rel_move_re = re.compile(r"^PR\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") - # pen position - self.pen_re = re.compile(r"^(P[U|D]);?$") - # Initialize - self.initialize_re = re.compile(r'^(IN);?$') # select pen self.sp_re = re.compile(r'SP(\d);?$') + # pen position + self.pen_re = re.compile(r"^(P[U|D]);?$") - self.fmt_re_alt = re.compile(r'%FS([LTD])?([AI])X(\d)(\d)Y\d\d\*MO(IN|MM)\*%$') - self.fmt_re_orcad = re.compile(r'(G\d+)*\**%FS([LTD])?([AI]).*X(\d)(\d)Y\d\d\*%$') + # Initialize + self.initialize_re = re.compile(r'^(IN);?$') - # G01... - Linear interpolation plus flashes with coordinates - # Operation code (D0x) missing is deprecated... oh well I will support it. - self.lin_re = re.compile(r'^(?:G0?(1))?(?=.*X([+-]?\d+))?(?=.*Y([+-]?\d+))?[XY][^DIJ]*(?:D0?([123]))?\*$') + # Absolute linear interpolation + self.abs_move_re = re.compile(r"^PA\s*(-?\d+\.?\d+?),?\s*(-?\d+\.?\d+?)*;?$") + # Relative linear interpolation + self.rel_move_re = re.compile(r"^PR\s*(-?\d+\.\d+?),?\s*(-?\d+\.\d+?)*;?$") - # G02/3... - Circular interpolation with coordinates - # 2-clockwise, 3-counterclockwise - # Operation code (D0x) missing is deprecated... oh well I will support it. - # Optional start with G02 or G03, optional end with D01 or D02 with - # optional coordinates but at least one in any order. - self.circ_re = re.compile(r'^(?:G0?([23]))?(?=.*X([+-]?\d+))?(?=.*Y([+-]?\d+))' + - '?(?=.*I([+-]?\d+))?(?=.*J([+-]?\d+))?[XYIJ][^D]*(?:D0([12]))?\*$') + # Circular interpolation with radius + self.circ_re = re.compile(r"^CI\s*(\+?\d+\.?\d+?)?\s*;?\s*$") - # Absolute/Relative G90/1 (OBSOLETE) - self.absrel_re = re.compile(r'^G9([01])\*$') + # Arc interpolation with radius + self.arc_re = re.compile(r"^AA\s*([+-]?\d+),?\s*([+-]?\d+),?\s*([+-]?\d+);?$") - # flag to store if a conversion was done. It is needed because multiple units declarations can be found - # in a Gerber file (normal or obsolete ones) - self.conversion_done = False + # Arc interpolation with 3 points + self.arc_3pt_re = re.compile(r"^AT\s*([+-]?\d+),?\s*([+-]?\d+),?\s*([+-]?\d+),?\s*([+-]?\d+);?$") - self.in_header = None + self.init_done = None def parse_file(self, filename): """ + Creates a list of lines from the HPGL2 file and send it to the main parser. :param filename: HPGL2 file to parse. :type filename: str @@ -173,7 +136,8 @@ class HPGL2(Geometry): """ with open(filename, 'r') as gfile: - self.parse_lines([line.rstrip('\n') for line in gfile]) + glines = [line.rstrip('\n') for line in gfile] + self.parse_lines(glines=glines) def parse_lines(self, glines): """ @@ -194,8 +158,10 @@ class HPGL2(Geometry): # Current coordinates current_x = None current_y = None - previous_x = None - previous_y = None + + # Found coordinates + linear_x = None + linear_y = None # store the pen (tool) status pen_status = 'up' @@ -230,22 +196,13 @@ class HPGL2(Geometry): log.debug(str(match.group(1))) continue - # ##################################################### - # Absolute/relative coordinates G90/1 OBSOLETE ######## - # ##################################################### - match = self.absrel_re.search(gline) - if match: - absolute = {'0': "Absolute", '1': "Relative"}[match.group(1)] - log.warning("Gerber obsolete coordinates type found = %s (Absolute or Relative) " % absolute) - continue - # search for the initialization match = self.initialize_re.search(gline) if match: - self.in_header = False + self.init_done = True continue - if self.in_header is False: + if self.init_done is True: # tools detection match = self.sp_re.search(gline) if match: @@ -284,7 +241,7 @@ class HPGL2(Geometry): pen_status = {'PU': 'up', 'PD': 'down'}[match.group(1)] continue - # linear move + # Linear interpolation match = self.abs_move_re.search(gline) if match: # Parse coordinates @@ -328,173 +285,110 @@ class HPGL2(Geometry): # log.debug("Line_number=%3s X=%s Y=%s (%s)" % (line_num, linear_x, linear_y, gline)) continue - # ## Circular interpolation - # -clockwise, - # -counterclockwise + # Circular interpolation match = self.circ_re.search(gline) - # if match: - # arcdir = [None, None, "cw", "ccw"] - # - # mode, circular_x, circular_y, i, j, d = match.groups() - # - # try: - # circular_x = parse_number(circular_x) - # except Exception as e: - # circular_x = current_x - # - # try: - # circular_y = parse_number(circular_y) - # except Exception as e: - # circular_y = current_y - # - # try: - # i = parse_number(i) - # except Exception as e: - # i = 0 - # - # try: - # j = parse_number(j) - # except Exception as e: - # j = 0 - # - # if mode is None and current_interpolation_mode not in [2, 3]: - # log.error("Found arc without circular interpolation mode defined. (%d)" % line_num) - # log.error(gline) - # continue - # elif mode is not None: - # current_interpolation_mode = int(mode) - # - # # Set operation code if provided - # if d is not None: - # current_operation_code = int(d) - # - # # Nothing created! Pen Up. - # if current_operation_code == 2: - # log.warning("Arc with D2. (%d)" % line_num) - # if len(path) > 1: - # geo_dict = dict() - # - # if last_path_aperture is None: - # log.warning("No aperture defined for curent path. (%d)" % line_num) - # - # # --- BUFFERED --- - # width = self.apertures[last_path_aperture]["size"] - # - # # this treats the case when we are storing geometry as paths - # geo_f = LineString(path) - # if not geo_f.is_empty: - # geo_dict['follow'] = geo_f - # - # # this treats the case when we are storing geometry as solids - # buffered = LineString(path).buffer(width / 1.999, int(self.steps_per_circle)) - # - # if last_path_aperture not in self.apertures: - # self.apertures[last_path_aperture] = dict() - # if 'geometry' not in self.apertures[last_path_aperture]: - # self.apertures[last_path_aperture]['geometry'] = [] - # self.apertures[last_path_aperture]['geometry'].append(deepcopy(geo_dict)) - # - # current_x = circular_x - # current_y = circular_y - # path = [[current_x, current_y]] # Start new path - # continue - # - # # Flash should not happen here - # if current_operation_code == 3: - # log.error("Trying to flash within arc. (%d)" % line_num) - # continue - # - # if quadrant_mode == 'MULTI': - # center = [i + current_x, j + current_y] - # radius = np.sqrt(i ** 2 + j ** 2) - # start = np.arctan2(-j, -i) # Start angle - # # Numerical errors might prevent start == stop therefore - # # we check ahead of time. This should result in a - # # 360 degree arc. - # if current_x == circular_x and current_y == circular_y: - # stop = start - # else: - # stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle - # - # this_arc = arc(center, radius, start, stop, - # arcdir[current_interpolation_mode], - # self.steps_per_circle) - # - # # The last point in the computed arc can have - # # numerical errors. The exact final point is the - # # specified (x, y). Replace. - # this_arc[-1] = (circular_x, circular_y) - # - # # Last point in path is current point - # # current_x = this_arc[-1][0] - # # current_y = this_arc[-1][1] - # current_x, current_y = circular_x, circular_y - # - # # Append - # path += this_arc - # last_path_aperture = current_aperture - # - # continue - # - # if quadrant_mode == 'SINGLE': - # - # center_candidates = [ - # [i + current_x, j + current_y], - # [-i + current_x, j + current_y], - # [i + current_x, -j + current_y], - # [-i + current_x, -j + current_y] - # ] - # - # valid = False - # log.debug("I: %f J: %f" % (i, j)) - # for center in center_candidates: - # radius = np.sqrt(i ** 2 + j ** 2) - # - # # Make sure radius to start is the same as radius to end. - # radius2 = np.sqrt((center[0] - circular_x) ** 2 + (center[1] - circular_y) ** 2) - # if radius2 < radius * 0.95 or radius2 > radius * 1.05: - # continue # Not a valid center. - # - # # Correct i and j and continue as with multi-quadrant. - # i = center[0] - current_x - # j = center[1] - current_y - # - # start = np.arctan2(-j, -i) # Start angle - # stop = np.arctan2(-center[1] + circular_y, -center[0] + circular_x) # Stop angle - # angle = abs(arc_angle(start, stop, arcdir[current_interpolation_mode])) - # log.debug("ARC START: %f, %f CENTER: %f, %f STOP: %f, %f" % - # (current_x, current_y, center[0], center[1], circular_x, circular_y)) - # log.debug("START Ang: %f, STOP Ang: %f, DIR: %s, ABS: %.12f <= %.12f: %s" % - # (start * 180 / np.pi, stop * 180 / np.pi, arcdir[current_interpolation_mode], - # angle * 180 / np.pi, np.pi / 2 * 180 / np.pi, angle <= (np.pi + 1e-6) / 2)) - # - # if angle <= (np.pi + 1e-6) / 2: - # log.debug("########## ACCEPTING ARC ############") - # this_arc = arc(center, radius, start, stop, - # arcdir[current_interpolation_mode], - # self.steps_per_circle) - # - # # Replace with exact values - # this_arc[-1] = (circular_x, circular_y) - # - # # current_x = this_arc[-1][0] - # # current_y = this_arc[-1][1] - # current_x, current_y = circular_x, circular_y - # - # path += this_arc - # last_path_aperture = current_aperture - # valid = True - # break - # - # if valid: - # continue - # else: - # log.warning("Invalid arc in line %d." % line_num) + if match: + if len(path) > 1: + geo = LineString(path) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + path[:] = [] + + # if linear_x or linear_y are None, ignore those + if linear_x is not None and linear_y is not None: + path = [[linear_x, linear_y]] # Start new path + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + + if current_x is not None and current_y is not None: + radius = match.group(1) + geo = Point((current_x, current_y)).buffer(radius, int(self.steps_per_circle)) + geo_line = geo.exterior + self.tools[current_tool]['solid_geometry'].append(geo_line) + geo_buffer.append(geo_line) + continue + + # Arc interpolation with radius + match = self.arc_re.search(gline) + if match: + if len(path) > 1: + geo = LineString(path) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + path[:] = [] + + # if linear_x or linear_y are None, ignore those + if linear_x is not None and linear_y is not None: + path = [[linear_x, linear_y]] # Start new path + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + + if current_x is not None and current_y is not None: + center = [parse_number(match.group(1)), parse_number(match.group(2))] + angle = np.deg2rad(float(match.group(3))) + p1 = [current_x, current_y] + + arcdir = "ccw" if angle >= 0.0 else "cw" + radius = np.sqrt((center[0] - p1[0]) ** 2 + (center[1] - p1[1]) ** 2) + startangle = np.arctan2(p1[1] - center[1], p1[0] - center[0]) + stopangle = startangle + angle + + geo = LineString(arc(center, radius, startangle, stopangle, arcdir, self.steps_per_circle)) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + + line_coords = list(geo.coords) + current_x = line_coords[0] + current_y = line_coords[1] + continue + + # Arc interpolation with 3 points + match = self.arc_3pt_re.search(gline) + if match: + if len(path) > 1: + geo = LineString(path) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + path[:] = [] + + # if linear_x or linear_y are None, ignore those + if linear_x is not None and linear_y is not None: + path = [[linear_x, linear_y]] # Start new path + else: + self.app.inform.emit('[WARNING] %s: %s' % + (_("Coordinates missing, line ignored"), str(gline))) + + if current_x is not None and current_y is not None: + p1 = [current_x, current_y] + p3 = [parse_number(match.group(1)), parse_number(match.group(2))] + p2 = [parse_number(match.group(3)), parse_number(match.group(4))] + + try: + center, radius, t = three_point_circle(p1, p2, p3) + except TypeError: + return + + direction = 'cw' if np.sign(t) > 0 else 'ccw' + + startangle = np.arctan2(p1[1] - center[1], p1[0] - center[0]) + stopangle = np.arctan2(p3[1] - center[1], p3[0] - center[0]) + + geo = LineString(arc(center, radius, startangle, stopangle, + direction, self.steps_per_circle)) + self.tools[current_tool]['solid_geometry'].append(geo) + geo_buffer.append(geo) + + # p2 is the end point for the 3-pt circle + current_x = p2[0] + current_y = p2[1] + continue # ## Line did not match any pattern. Warn user. log.warning("Line ignored (%d): %s" % (line_num, gline)) - if len(geo_buffer) == 0 and len(self.solid_geometry) == 0: + if not geo_buffer and not self.solid_geometry: log.error("Object is not HPGL2 file or empty. Aborting Object creation.") return 'fail' @@ -514,543 +408,6 @@ class HPGL2(Geometry): loc = '%s #%d %s: %s\n' % (_("HPGL2 Line"), line_num, _("HPGL2 Line Content"), gline) + repr(err) self.app.inform.emit('[ERROR] %s\n%s:' % (_("HPGL2 Parser ERROR"), loc)) - def create_geometry(self): - """ - :rtype : None - :return: None - """ - pass - - def get_bounding_box(self, margin=0.0, rounded=False): - """ - Creates and returns a rectangular polygon bounding at a distance of - margin from the object's ``solid_geometry``. If margin > 0, the polygon - can optionally have rounded corners of radius equal to margin. - - :param margin: Distance to enlarge the rectangular bounding - box in both positive and negative, x and y axes. - :type margin: float - :param rounded: Wether or not to have rounded corners. - :type rounded: bool - :return: The bounding box. - :rtype: Shapely.Polygon - """ - - bbox = self.solid_geometry.envelope.buffer(margin) - if not rounded: - bbox = bbox.envelope - return bbox - - def bounds(self): - """ - Returns coordinates of rectangular bounds - of Gerber geometry: (xmin, ymin, xmax, ymax). - """ - # fixed issue of getting bounds only for one level lists of objects - # now it can get bounds for nested lists of objects - - log.debug("parseGerber.Gerber.bounds()") - - if self.solid_geometry is None: - log.debug("solid_geometry is None") - return 0, 0, 0, 0 - - def bounds_rec(obj): - if type(obj) is list and type(obj) is not MultiPolygon: - minx = np.Inf - miny = np.Inf - maxx = -np.Inf - maxy = -np.Inf - - for k in obj: - if type(k) is dict: - for key in k: - minx_, miny_, maxx_, maxy_ = bounds_rec(k[key]) - minx = min(minx, minx_) - miny = min(miny, miny_) - maxx = max(maxx, maxx_) - maxy = max(maxy, maxy_) - else: - if not k.is_empty: - try: - minx_, miny_, maxx_, maxy_ = bounds_rec(k) - except Exception as e: - log.debug("camlib.Gerber.bounds() --> %s" % str(e)) - return - - minx = min(minx, minx_) - miny = min(miny, miny_) - maxx = max(maxx, maxx_) - maxy = max(maxy, maxy_) - return minx, miny, maxx, maxy - else: - # it's a Shapely object, return it's bounds - return obj.bounds - - bounds_coords = bounds_rec(self.solid_geometry) - return bounds_coords - - def convert_units(self, obj_units): - """ - Converts the units of the object to ``units`` by scaling all - the geometry appropriately. This call ``scale()``. Don't call - it again in descendants. - - :param obj_units: "IN" or "MM" - :type obj_units: str - :return: Scaling factor resulting from unit change. - :rtype: float - """ - - if obj_units.upper() == self.units.upper(): - log.debug("parseGerber.Gerber.convert_units() --> Factor: 1") - return 1.0 - - if obj_units.upper() == "MM": - factor = 25.4 - log.debug("parseGerber.Gerber.convert_units() --> Factor: 25.4") - elif obj_units.upper() == "IN": - factor = 1 / 25.4 - log.debug("parseGerber.Gerber.convert_units() --> Factor: %s" % str(1 / 25.4)) - else: - log.error("Unsupported units: %s" % str(obj_units)) - log.debug("parseGerber.Gerber.convert_units() --> Factor: 1") - return 1.0 - - self.units = obj_units - self.file_units_factor = factor - self.scale(factor, factor) - return factor - - def scale(self, xfactor, yfactor=None, point=None): - """ - Scales the objects' geometry on the XY plane by a given factor. - These are: - - * ``buffered_paths`` - * ``flash_geometry`` - * ``solid_geometry`` - * ``regions`` - - NOTE: - Does not modify the data used to create these elements. If these - are recreated, the scaling will be lost. This behavior was modified - because of the complexity reached in this class. - - :param xfactor: Number by which to scale on X axis. - :type xfactor: float - :param yfactor: Number by which to scale on Y axis. - :type yfactor: float - :param point: reference point for scaling operation - :rtype : None - """ - log.debug("parseGerber.Gerber.scale()") - - try: - xfactor = float(xfactor) - except Exception: - self.app.inform.emit('[ERROR_NOTCL] %s' % - _("Scale factor has to be a number: integer or float.")) - return - - if yfactor is None: - yfactor = xfactor - else: - try: - yfactor = float(yfactor) - except Exception: - self.app.inform.emit('[ERROR_NOTCL] %s' % - _("Scale factor has to be a number: integer or float.")) - return - - if xfactor == 0 and yfactor == 0: - return - - if point is None: - px = 0 - py = 0 - else: - px, py = point - - # variables to display the percentage of work done - self.geo_len = 0 - try: - self.geo_len = len(self.solid_geometry) - except TypeError: - self.geo_len = 1 - - self.old_disp_number = 0 - self.el_count = 0 - - def scale_geom(obj): - if type(obj) is list: - new_obj = [] - for g in obj: - new_obj.append(scale_geom(g)) - return new_obj - else: - try: - self.el_count += 1 - disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) - if self.old_disp_number < disp_number <= 100: - self.app.proc_container.update_view_text(' %d%%' % disp_number) - self.old_disp_number = disp_number - - return affinity.scale(obj, xfactor, yfactor, origin=(px, py)) - except AttributeError: - return obj - - self.solid_geometry = scale_geom(self.solid_geometry) - self.follow_geometry = scale_geom(self.follow_geometry) - - # we need to scale the geometry stored in the Gerber apertures, too - try: - for apid in self.apertures: - new_geometry = list() - if 'geometry' in self.apertures[apid]: - for geo_el in self.apertures[apid]['geometry']: - new_geo_el = dict() - if 'solid' in geo_el: - new_geo_el['solid'] = scale_geom(geo_el['solid']) - if 'follow' in geo_el: - new_geo_el['follow'] = scale_geom(geo_el['follow']) - if 'clear' in geo_el: - new_geo_el['clear'] = scale_geom(geo_el['clear']) - new_geometry.append(new_geo_el) - - self.apertures[apid]['geometry'] = deepcopy(new_geometry) - - try: - if str(self.apertures[apid]['type']) == 'R' or str(self.apertures[apid]['type']) == 'O': - self.apertures[apid]['width'] *= xfactor - self.apertures[apid]['height'] *= xfactor - elif str(self.apertures[apid]['type']) == 'P': - self.apertures[apid]['diam'] *= xfactor - self.apertures[apid]['nVertices'] *= xfactor - except KeyError: - pass - - try: - if self.apertures[apid]['size'] is not None: - self.apertures[apid]['size'] = float(self.apertures[apid]['size'] * xfactor) - except KeyError: - pass - - except Exception as e: - log.debug('camlib.Gerber.scale() Exception --> %s' % str(e)) - return 'fail' - - self.app.inform.emit('[success] %s' % _("Gerber Scale done.")) - self.app.proc_container.new_text = '' - - # ## solid_geometry ??? - # It's a cascaded union of objects. - # self.solid_geometry = affinity.scale(self.solid_geometry, factor, - # factor, origin=(0, 0)) - - # # Now buffered_paths, flash_geometry and solid_geometry - # self.create_geometry() - - def offset(self, vect): - """ - Offsets the objects' geometry on the XY plane by a given vector. - These are: - - * ``buffered_paths`` - * ``flash_geometry`` - * ``solid_geometry`` - * ``regions`` - - NOTE: - Does not modify the data used to create these elements. If these - are recreated, the scaling will be lost. This behavior was modified - because of the complexity reached in this class. - - :param vect: (x, y) offset vector. - :type vect: tuple - :return: None - """ - log.debug("parseGerber.Gerber.offset()") - - try: - dx, dy = vect - except TypeError: - self.app.inform.emit('[ERROR_NOTCL] %s' % - _("An (x,y) pair of values are needed. " - "Probable you entered only one value in the Offset field.")) - return - - if dx == 0 and dy == 0: - return - - # variables to display the percentage of work done - self.geo_len = 0 - try: - for __ in self.solid_geometry: - self.geo_len += 1 - except TypeError: - self.geo_len = 1 - - self.old_disp_number = 0 - self.el_count = 0 - - def offset_geom(obj): - if type(obj) is list: - new_obj = [] - for g in obj: - new_obj.append(offset_geom(g)) - return new_obj - else: - try: - self.el_count += 1 - disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) - if self.old_disp_number < disp_number <= 100: - self.app.proc_container.update_view_text(' %d%%' % disp_number) - self.old_disp_number = disp_number - - return affinity.translate(obj, xoff=dx, yoff=dy) - except AttributeError: - return obj - - # ## Solid geometry - self.solid_geometry = offset_geom(self.solid_geometry) - self.follow_geometry = offset_geom(self.follow_geometry) - - # we need to offset the geometry stored in the Gerber apertures, too - try: - for apid in self.apertures: - if 'geometry' in self.apertures[apid]: - for geo_el in self.apertures[apid]['geometry']: - if 'solid' in geo_el: - geo_el['solid'] = offset_geom(geo_el['solid']) - if 'follow' in geo_el: - geo_el['follow'] = offset_geom(geo_el['follow']) - if 'clear' in geo_el: - geo_el['clear'] = offset_geom(geo_el['clear']) - - except Exception as e: - log.debug('camlib.Gerber.offset() Exception --> %s' % str(e)) - return 'fail' - - self.app.inform.emit('[success] %s' % - _("Gerber Offset done.")) - self.app.proc_container.new_text = '' - - def mirror(self, axis, point): - """ - Mirrors the object around a specified axis passing through - the given point. What is affected: - - * ``buffered_paths`` - * ``flash_geometry`` - * ``solid_geometry`` - * ``regions`` - - NOTE: - Does not modify the data used to create these elements. If these - are recreated, the scaling will be lost. This behavior was modified - because of the complexity reached in this class. - - :param axis: "X" or "Y" indicates around which axis to mirror. - :type axis: str - :param point: [x, y] point belonging to the mirror axis. - :type point: list - :return: None - """ - log.debug("parseGerber.Gerber.mirror()") - - px, py = point - xscale, yscale = {"X": (1.0, -1.0), "Y": (-1.0, 1.0)}[axis] - - # variables to display the percentage of work done - self.geo_len = 0 - try: - for __ in self.solid_geometry: - self.geo_len += 1 - except TypeError: - self.geo_len = 1 - - self.old_disp_number = 0 - self.el_count = 0 - - def mirror_geom(obj): - if type(obj) is list: - new_obj = [] - for g in obj: - new_obj.append(mirror_geom(g)) - return new_obj - else: - try: - self.el_count += 1 - disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99])) - if self.old_disp_number < disp_number <= 100: - self.app.proc_container.update_view_text(' %d%%' % disp_number) - self.old_disp_number = disp_number - - return affinity.scale(obj, xscale, yscale, origin=(px, py)) - except AttributeError: - return obj - - self.solid_geometry = mirror_geom(self.solid_geometry) - self.follow_geometry = mirror_geom(self.follow_geometry) - - # we need to mirror the geometry stored in the Gerber apertures, too - try: - for apid in self.apertures: - if 'geometry' in self.apertures[apid]: - for geo_el in self.apertures[apid]['geometry']: - if 'solid' in geo_el: - geo_el['solid'] = mirror_geom(geo_el['solid']) - if 'follow' in geo_el: - geo_el['follow'] = mirror_geom(geo_el['follow']) - if 'clear' in geo_el: - geo_el['clear'] = mirror_geom(geo_el['clear']) - except Exception as e: - log.debug('camlib.Gerber.mirror() Exception --> %s' % str(e)) - return 'fail' - - self.app.inform.emit('[success] %s' % - _("Gerber Mirror done.")) - self.app.proc_container.new_text = '' - - def skew(self, angle_x, angle_y, point): - """ - Shear/Skew the geometries of an object by angles along x and y dimensions. - - Parameters - ---------- - angle_x, angle_y : float, float - The shear angle(s) for the x and y axes respectively. These can be - specified in either degrees (default) or radians by setting - use_radians=True. - - See shapely manual for more information: - http://toblerity.org/shapely/manual.html#affine-transformations - :param angle_x: the angle on X axis for skewing - :param angle_y: the angle on Y axis for skewing - :param point: reference point for skewing operation - :return None - """ - log.debug("parseGerber.Gerber.skew()") - - px, py = point - - if angle_x == 0 and angle_y == 0: - return - - # variables to display the percentage of work done - self.geo_len = 0 - try: - self.geo_len = len(self.solid_geometry) - except TypeError: - self.geo_len = 1 - - self.old_disp_number = 0 - self.el_count = 0 - - def skew_geom(obj): - if type(obj) is list: - new_obj = [] - for g in obj: - new_obj.append(skew_geom(g)) - return new_obj - else: - try: - self.el_count += 1 - disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 100])) - if self.old_disp_number < disp_number <= 100: - self.app.proc_container.update_view_text(' %d%%' % disp_number) - self.old_disp_number = disp_number - - return affinity.skew(obj, angle_x, angle_y, origin=(px, py)) - except AttributeError: - return obj - - self.solid_geometry = skew_geom(self.solid_geometry) - self.follow_geometry = skew_geom(self.follow_geometry) - - # we need to skew the geometry stored in the Gerber apertures, too - try: - for apid in self.apertures: - if 'geometry' in self.apertures[apid]: - for geo_el in self.apertures[apid]['geometry']: - if 'solid' in geo_el: - geo_el['solid'] = skew_geom(geo_el['solid']) - if 'follow' in geo_el: - geo_el['follow'] = skew_geom(geo_el['follow']) - if 'clear' in geo_el: - geo_el['clear'] = skew_geom(geo_el['clear']) - except Exception as e: - log.debug('camlib.Gerber.skew() Exception --> %s' % str(e)) - return 'fail' - - self.app.inform.emit('[success] %s' % _("Gerber Skew done.")) - self.app.proc_container.new_text = '' - - def rotate(self, angle, point): - """ - Rotate an object by a given angle around given coords (point) - :param angle: - :param point: - :return: - """ - log.debug("parseGerber.Gerber.rotate()") - - px, py = point - - if angle == 0: - return - - # variables to display the percentage of work done - self.geo_len = 0 - try: - for __ in self.solid_geometry: - self.geo_len += 1 - except TypeError: - self.geo_len = 1 - - self.old_disp_number = 0 - self.el_count = 0 - - def rotate_geom(obj): - if type(obj) is list: - new_obj = [] - for g in obj: - new_obj.append(rotate_geom(g)) - return new_obj - else: - try: - self.el_count += 1 - disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 100])) - if self.old_disp_number < disp_number <= 100: - self.app.proc_container.update_view_text(' %d%%' % disp_number) - self.old_disp_number = disp_number - - return affinity.rotate(obj, angle, origin=(px, py)) - except AttributeError: - return obj - - self.solid_geometry = rotate_geom(self.solid_geometry) - self.follow_geometry = rotate_geom(self.follow_geometry) - - # we need to rotate the geometry stored in the Gerber apertures, too - try: - for apid in self.apertures: - if 'geometry' in self.apertures[apid]: - for geo_el in self.apertures[apid]['geometry']: - if 'solid' in geo_el: - geo_el['solid'] = rotate_geom(geo_el['solid']) - if 'follow' in geo_el: - geo_el['follow'] = rotate_geom(geo_el['follow']) - if 'clear' in geo_el: - geo_el['clear'] = rotate_geom(geo_el['clear']) - except Exception as e: - log.debug('camlib.Gerber.rotate() Exception --> %s' % str(e)) - return 'fail' - self.app.inform.emit('[success] %s' % - _("Gerber Rotate done.")) - self.app.proc_container.new_text = '' - def parse_number(strnumber): """ @@ -1063,5 +420,4 @@ def parse_number(strnumber): :rtype: float """ - return float(strnumber) / 40.0 # in milimeters - + return float(strnumber) / 40.0 # in milimeters From f6c0741d3d95641cbaca38b09862c7276d24ca8d Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 13 Dec 2019 15:59:48 +0200 Subject: [PATCH 31/36] - removed the .plt extension from Gcode extensions --- FlatCAMApp.py | 6 +++--- README.md | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 2f1d7693..a845c854 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -917,7 +917,7 @@ class App(QtCore.QObject): # file associations "fa_excellon": 'drd, drl, exc, ncd, tap, xln', "fa_gcode": 'cnc, din, dnc, ecs, eia, fan, fgc, fnc, gc, gcd, gcode, h, hnc, i, min, mpf, mpr, nc, ncc, ' - 'ncg, ncp, ngc, out, plt, ply, rol, sbp, tap, xpi', + 'ncg, ncp, ngc, out, ply, rol, sbp, tap, xpi', "fa_gerber": 'art, bot, bsm, cmp, crc, crs, dim, gb0, gb1, gb2, gb3, gb4, gb5, gb6, gb7, gb8, gb9, gbd, ' 'gbl, gbo, gbp, gbr, gbs, gdo, ger, gko, gm1, gm2, gm3, grb, gtl, gto, gtp, gts, ly15, ly2, ' 'mil, pho, plc, pls, smb, smt, sol, spb, spt, ssb, sst, stc, sts, top, tsm', @@ -2561,7 +2561,7 @@ class App(QtCore.QObject): self.exc_list = ['drd', 'drl', 'exc', 'ncd', 'tap', 'txt', 'xln'] self.gcode_list = ['cnc', 'din', 'dnc', 'ecs', 'eia', 'fan', 'fgc', 'fnc', 'gc', 'gcd', 'gcode', 'h', 'hnc', - 'i', 'min', 'mpf', 'mpr', 'nc', 'ncc', 'ncg', 'ngc', 'ncp', 'out', 'plt', 'ply', 'rol', + 'i', 'min', 'mpf', 'mpr', 'nc', 'ncc', 'ncg', 'ngc', 'ncp', 'out', 'ply', 'rol', 'sbp', 'tap', 'xpi'] self.svg_list = ['svg'] self.dxf_list = ['dxf'] @@ -9237,7 +9237,7 @@ class App(QtCore.QObject): # https://bobcadsupport.com/helpdesk/index.php?/Knowledgebase/Article/View/13/5/known-g-code-file-extensions _filter_ = "G-Code Files (*.txt *.nc *.ncc *.tap *.gcode *.cnc *.ecs *.fnc *.dnc *.ncg *.gc *.fan *.fgc" \ - " *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.plt *.sbp *.mpf);;" \ + " *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.sbp *.mpf);;" \ "All Files (*.*)" if name is None: diff --git a/README.md b/README.md index 9014171b..56f3aeca 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing. ================================================= +13.12.2019 + +- HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. +- removed the .plt extension from Gcode extensions + 12.12.2019 - finished the Calibration Tool @@ -18,7 +23,6 @@ CAD program, and create G-Code for Isolation routing. - optimized the FlatCAMGerber.clear_plot_apertures() method - some changes in the ObjectUI and for the Geometry UI - finished a very rough and limited HPGL2 file import -- HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. 11.12.2019 From e397e26484b0b02cc1d146f65bbe045d6826bd98 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 13 Dec 2019 18:36:57 +0200 Subject: [PATCH 32/36] - some strings updated; update on the Romanian translate --- FlatCAMApp.py | 83 +- ObjectCollection.py | 42 +- README.md | 1 + flatcamEditors/FlatCAMGeoEditor.py | 2 - flatcamGUI/ObjectUI.py | 18 +- flatcamGUI/PreferencesUI.py | 26 +- flatcamParsers/ParseExcellon.py | 3 +- flatcamTools/ToolCalibration.py | 4 +- flatcamTools/ToolDistance.py | 5 +- flatcamTools/ToolDistanceMin.py | 5 +- locale/en/LC_MESSAGES/strings.mo | Bin 330102 -> 333886 bytes locale/en/LC_MESSAGES/strings.po | 4602 ++++++++++----------- locale/ro/LC_MESSAGES/strings.mo | Bin 301559 -> 335812 bytes locale/ro/LC_MESSAGES/strings.po | 5992 ++++++++++++++-------------- 14 files changed, 5478 insertions(+), 5305 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index a845c854..600c16e1 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -4314,23 +4314,41 @@ class App(QtCore.QObject): # 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='green', name=str(obj.options['name']))) + 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='brown', name=str(obj.options['name']))) + 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='blue', name=str(obj.options['name']))) + 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='red', name=str(obj.options['name']))) + 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='orange', name=str(obj.options['name']))) + 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} created/selected: {name}').format( - kind=obj.kind.capitalize(), color='darkCyan', name=str(obj.options['name']))) + 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) @@ -8856,17 +8874,29 @@ class App(QtCore.QObject): def selected_message(self, curr_sel_obj): if curr_sel_obj: if curr_sel_obj.kind == 'gerber': - self.inform.emit(_('[selected]{name} selected').format( - color='green', name=str(curr_sel_obj.options['name']))) + self.inform.emit('[selected]{name} {tx}'.format( + color='green', + name=str(curr_sel_obj.options['name']), + tx=_("selected")) + ) elif curr_sel_obj.kind == 'excellon': - self.inform.emit(_('[selected]{name} selected').format( - color='brown', name=str(curr_sel_obj.options['name']))) + self.inform.emit('[selected]{name} {tx}'.format( + color='brown', + name=str(curr_sel_obj.options['name']), + tx=_("selected")) + ) elif curr_sel_obj.kind == 'cncjob': - self.inform.emit(_('[selected]{name} selected').format( - color='blue', name=str(curr_sel_obj.options['name']))) + self.inform.emit('[selected]{name} {tx}'.format( + color='blue', + name=str(curr_sel_obj.options['name']), + tx=_("selected")) + ) elif curr_sel_obj.kind == 'geometry': - self.inform.emit(_('[selected]{name} selected').format( - color='red', name=str(curr_sel_obj.options['name']))) + self.inform.emit('[selected]{name} {tx}'.format( + color='red', + name=str(curr_sel_obj.options['name']), + tx=_("selected")) + ) def delete_hover_shape(self): self.hover_shapes.clear() @@ -10166,8 +10196,10 @@ class App(QtCore.QObject): try: filename, _f = QtWidgets.QFileDialog.getSaveFileName( caption=_("Save Project As ..."), - directory=_('{l_save}/Project_{date}').format(l_save=str(self.get_last_save_folder()), date=self.date), - filter=filter_) + directory=('{l_save}/{proj}_{date}').format(l_save=str(self.get_last_save_folder()), date=self.date, + proj=_("Project")), + filter=filter_ + ) except TypeError: filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Project As ..."), filter=filter_) @@ -10208,7 +10240,7 @@ class App(QtCore.QObject): try: obj_active = self.collection.get_active() - obj_name = obj_active.options['name'] + obj_name = _(str(obj_active.options['name'])) except AttributeError as err: log.debug("App.on_file_save_object_pdf() --> %s" % str(err)) self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) @@ -10218,10 +10250,11 @@ class App(QtCore.QObject): try: filename, _f = QtWidgets.QFileDialog.getSaveFileName( caption=_("Save Object as PDF ..."), - directory=_('{l_save}/{obj_name}_{date}').format(l_save=str(self.get_last_save_folder()), + directory=('{l_save}/{obj_name}_{date}').format(l_save=str(self.get_last_save_folder()), obj_name=obj_name, date=self.date), - filter=filter_) + filter=filter_ + ) except TypeError: filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Object as PDF ..."), filter=filter_) diff --git a/ObjectCollection.py b/ObjectCollection.py index 358fa4e7..8982e15b 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -785,23 +785,41 @@ class ObjectCollection(QtCore.QAbstractItemModel): self.item_selected.emit(obj.options['name']) if obj.kind == 'gerber': - self.app.inform.emit(_('[selected]{name} selected').format( - color='green', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='green', + name=str(obj.options['name']), + tx=_("selected")) + ) elif obj.kind == 'excellon': - self.app.inform.emit(_('[selected]{name} selected').format( - color='brown', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='brown', + name=str(obj.options['name']), + tx=_("selected")) + ) elif obj.kind == 'cncjob': - self.app.inform.emit(_('[selected]{name} selected').format( - color='blue', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='blue', + name=str(obj.options['name']), + tx=_("selected")) + ) elif obj.kind == 'geometry': - self.app.inform.emit(_('[selected]{name} selected').format( - color='red', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='red', + name=str(obj.options['name']), + tx=_("selected")) + ) elif obj.kind == 'script': - self.app.inform.emit(_('[selected]{name} selected').format( - color='orange', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='orange', + name=str(obj.options['name']), + tx=_("selected")) + ) elif obj.kind == 'document': - self.app.inform.emit(_('[selected]{name} selected').format( - color='darkCyan', name=str(obj.options['name']))) + self.app.inform.emit('[selected]{name} {tx}'.format( + color='darkCyan', + name=str(obj.options['name']), + tx=_("selected")) + ) except IndexError: self.item_selected.emit('none') # FlatCAMApp.App.log.debug("on_list_selection_change(): Index Error (Nothing selected?)") diff --git a/README.md b/README.md index 56f3aeca..5b0fbb2a 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ CAD program, and create G-Code for Isolation routing. - HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. - removed the .plt extension from Gcode extensions +- some strings updated; update on the Romanian translate 12.12.2019 diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index 83ebf27b..ac7df5e6 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -455,8 +455,6 @@ class PaintOptionsTool(FlatCAMTool): ovlabel = QtWidgets.QLabel('%s:' % _('Overlap Rate')) ovlabel.setToolTip( _("How much (fraction) of the tool width to overlap each tool pass.\n" - "Example:\n" - "A value here of 0.25 means 25%% from the tool diameter found above.\n\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index 7dad4ac4..29ed5468 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -1910,7 +1910,7 @@ class CNCObjectUI(ObjectUI): self.prepend_text = FCTextArea() self.prepend_text.setPlaceholderText( - _("Type here any G-Code commands you would " + _("Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file.") ) self.custom_box.addWidget(self.prepend_text) @@ -1926,8 +1926,8 @@ class CNCObjectUI(ObjectUI): self.append_text = FCTextArea() self.append_text.setPlaceholderText( - _("Type here any G-Code commands you would " - "like to append to the generated file. " + _("Type here any G-Code commands you would\n" + "like to append to the generated file.\n" "I.e.: M2 (End of program)") ) self.custom_box.addWidget(self.append_text) @@ -1958,12 +1958,12 @@ class CNCObjectUI(ObjectUI): self.toolchange_text = FCTextArea() self.toolchange_text.setPlaceholderText( _( - "Type here any G-Code commands you would " - "like to be executed when Toolchange event is encountered. " - "This will constitute a Custom Toolchange GCode, " - "or a Toolchange Macro. " - "The FlatCAM variables are surrounded by '%' symbol. \n" - "WARNING: it can be used only with a preprocessor file " + "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." ) ) diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 090535d2..532884f0 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -3780,7 +3780,7 @@ class CNCJobOptPrefGroupUI(OptionsGroupUI): self.prepend_text = FCTextArea() self.prepend_text.setPlaceholderText( - _("Type here any G-Code commands you would " + _("Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file.") ) self.layout.addWidget(self.prepend_text) @@ -3797,8 +3797,8 @@ class CNCJobOptPrefGroupUI(OptionsGroupUI): self.append_text = FCTextArea() self.append_text.setPlaceholderText( - _("Type here any G-Code commands you would " - "like to append to the generated file. " + _("Type here any G-Code commands you would\n" + "like to append to the generated file.\n" "I.e.: M2 (End of program)") ) self.layout.addWidget(self.append_text) @@ -3850,12 +3850,12 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.toolchange_text = FCTextArea() self.toolchange_text.setPlaceholderText( _( - "Type here any G-Code commands you would " - "like to be executed when Toolchange event is encountered. " - "This will constitute a Custom Toolchange GCode, " - "or a Toolchange Macro. " - "The FlatCAM variables are surrounded by '%' symbol. \n" - "WARNING: it can be used only with a preprocessor file " + "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." ) ) @@ -4852,7 +4852,7 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): self.orientation_label = QtWidgets.QLabel('%s:' % _("Page Orientation")) self.orientation_label.setToolTip(_("Can be:\n" "- Portrait\n" - "- Lanscape")) + "- Landscape")) self.orientation_radio = RadioSet([{'label': _('Portrait'), 'value': 'p'}, {'label': _('Landscape'), 'value': 'l'}, @@ -6123,7 +6123,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): ], orientation='vertical', stretch=False) self.reference_label = QtWidgets.QLabel(_("Reference:")) self.reference_label.setToolTip( - _("- 'Itself' - the copper Thieving extent is based on the object that is copper cleared.\n " + _("- 'Itself' - the copper Thieving extent is based on the object that is copper cleared.\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.") ) @@ -6137,7 +6137,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): ], stretch=False) self.bbox_type_label = QtWidgets.QLabel(_("Box Type:")) self.bbox_type_label.setToolTip( - _("- 'Rectangular' - the bounding box will be of rectangular shape.\n " + _("- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape.") ) grid_lay.addWidget(self.bbox_type_label, 5, 0) @@ -6157,7 +6157,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): ], orientation='vertical', stretch=False) self.fill_type_label = QtWidgets.QLabel(_("Fill Type:")) self.fill_type_label.setToolTip( - _("- 'Solid' - copper thieving will be a solid polygon.\n " + _("- '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.") diff --git a/flatcamParsers/ParseExcellon.py b/flatcamParsers/ParseExcellon.py index 7bccf8f0..0b5677dc 100644 --- a/flatcamParsers/ParseExcellon.py +++ b/flatcamParsers/ParseExcellon.py @@ -884,8 +884,9 @@ class Excellon(Geometry): log.error("Excellon PARSING FAILED. Line %d: %s" % (line_num, eline)) msg = '[ERROR_NOTCL] %s' % \ _("An internal error has ocurred. See shell.\n") - msg += _('{e_code} Excellon Parser error.\nParsing Failed. Line {l_nr}: {line}\n').format( + msg += ('{e_code} {tx} {l_nr}: {line}\n').format( e_code='[ERROR]', + tx=_("Excellon Parser error.\nParsing Failed. Line"), l_nr=line_num, line=eline) msg += traceback.format_exc() diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index 7faaae34..29718279 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -759,7 +759,7 @@ class ToolCalibration(FlatCAMTool): self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _("Calibrate Tool")) + self.app.ui.notebook.setTabText(2, _("Calibration Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+E', **kwargs) @@ -952,7 +952,7 @@ class ToolCalibration(FlatCAMTool): gcode = '(G-CODE GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s)\n' % \ (str(self.app.version), str(self.app.version_date)) + '\n' - gcode += '(Name: ' + _('Verification GCode for FlatCAM Calibrate Tool') + ')\n' + gcode += '(Name: ' + _('Verification GCode for FlatCAM Calibration Tool') + ')\n' gcode += '(Units: ' + self.units.upper() + ')\n\n' gcode += '(Created on ' + time_str + ')\n\n' diff --git a/flatcamTools/ToolDistance.py b/flatcamTools/ToolDistance.py index 025535b9..8b6ddbc1 100644 --- a/flatcamTools/ToolDistance.py +++ b/flatcamTools/ToolDistance.py @@ -349,7 +349,10 @@ class Distance(FlatCAMTool): d = math.sqrt(dx ** 2 + dy ** 2) self.stop_entry.set_value("(%.*f, %.*f)" % (self.decimals, pos[0], self.decimals, pos[1])) - self.app.inform.emit(_("MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}").format( + self.app.inform.emit("{tx1}: {tx2} D(x) = {d_x} | D(y) = {d_y} | (tx3} = {d_z}".format( + tx1=_("MEASURING"), + tx2=_("Result"), + tx3=_("Distance"), d_x='%*f' % (self.decimals, abs(dx)), d_y='%*f' % (self.decimals, abs(dy)), d_z='%*f' % (self.decimals, abs(d))) diff --git a/flatcamTools/ToolDistanceMin.py b/flatcamTools/ToolDistanceMin.py index b038434d..9197ac58 100644 --- a/flatcamTools/ToolDistanceMin.py +++ b/flatcamTools/ToolDistanceMin.py @@ -278,7 +278,10 @@ class DistanceMin(FlatCAMTool): ) if d != 0: - self.app.inform.emit(_("MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}").format( + self.app.inform.emit("{tx1}: {tx2} D(x) = {d_x} | D(y) = {d_y} | (tx3} = {d_z}".format( + tx1=_("MEASURING"), + tx2=_("Result"), + tx3=_("Distance"), d_x='%*f' % (self.decimals, abs(dx)), d_y='%*f' % (self.decimals, abs(dy)), d_z='%*f' % (self.decimals, abs(d))) diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo index efac10b89d127828d0c38d43cf9ef471078cdf17..a7622332fce133ccf3eabd55aef35dc5a6d8bc16 100644 GIT binary patch delta 65765 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 delta 63074 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 REJ5y&{+<2*|GnC3{|{U-JbM5D diff --git a/locale/en/LC_MESSAGES/strings.po b/locale/en/LC_MESSAGES/strings.po index f36f2589..3f20387f 100644 --- a/locale/en/LC_MESSAGES/strings.po +++ b/locale/en/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-12-09 16:51+0200\n" -"PO-Revision-Date: 2019-12-09 16:51+0200\n" +"POT-Creation-Date: 2019-12-13 16:04+0200\n" +"PO-Revision-Date: 2019-12-13 16:05+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: en\n" @@ -22,15 +22,15 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: FlatCAMApp.py:988 +#: FlatCAMApp.py:999 msgid "FlatCAM is initializing ..." msgstr "FlatCAM is initializing ..." -#: FlatCAMApp.py:1566 +#: FlatCAMApp.py:1580 msgid "Could not find the Language files. The App strings are missing." msgstr "Could not find the Language files. The App strings are missing." -#: FlatCAMApp.py:1659 +#: FlatCAMApp.py:1673 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -38,7 +38,7 @@ msgstr "" "FlatCAM is initializing ...\n" "Canvas initialization started." -#: FlatCAMApp.py:1677 +#: FlatCAMApp.py:1691 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -48,7 +48,7 @@ msgstr "" "Canvas initialization started.\n" "Canvas initialization finished in" -#: FlatCAMApp.py:2373 +#: FlatCAMApp.py:2388 msgid "" "Type >help< to get started\n" "\n" @@ -56,12 +56,13 @@ msgstr "" "Type >help< to get started\n" "\n" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9108 msgid "New Project - Not saved" msgstr "New Project - Not saved" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9176 FlatCAMApp.py:9213 FlatCAMApp.py:9254 +#: FlatCAMApp.py:9325 FlatCAMApp.py:10079 FlatCAMApp.py:11090 +#: FlatCAMApp.py:11149 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -69,46 +70,46 @@ msgstr "" "Canvas initialization started.\n" "Canvas initialization finished in" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "Executing Tcl Script ..." -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Found old default preferences files. Please reboot the application to update." -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "Open cancelled." -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "Open Config file failed." -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "Open Script file failed." -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "Open Excellon file failed." -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "Open GCode file failed." -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "Open Gerber file failed." -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Select a Geometry, Gerber or Excellon Object to edit." -#: FlatCAMApp.py:3201 +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -118,82 +119,82 @@ msgstr "" "possible.\n" "Edit only one geometry at a time." -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "Editor is activated ..." -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "Do you want to save the edited object?" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "Close Editor" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:4983 FlatCAMApp.py:7843 FlatCAMApp.py:7869 +#: FlatCAMApp.py:9015 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Yes" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:4984 FlatCAMApp.py:7844 FlatCAMApp.py:7870 +#: FlatCAMApp.py:9016 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "No" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:4985 FlatCAMApp.py:5821 FlatCAMApp.py:7139 +#: FlatCAMApp.py:9017 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Cancel" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "Object empty after edit." -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Select a Gerber, Geometry or Excellon Object to update." -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "is updated, returning to App..." -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4845 msgid "Could not load defaults file." msgstr "Could not load defaults file." -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4854 msgid "Failed to parse defaults file." msgstr "Failed to parse defaults file." -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "Import FlatCAM Preferences" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "FlatCAM preferences import cancelled." -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "Imported Defaults from" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "Export FlatCAM Preferences" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "FlatCAM preferences export cancelled." -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 -#: FlatCAMApp.py:10375 FlatCAMApp.py:10514 FlatCAMCommon.py:378 -#: FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10305 FlatCAMApp.py:10353 +#: FlatCAMApp.py:10476 FlatCAMApp.py:10615 FlatCAMCommon.py:378 +#: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -201,36 +202,36 @@ msgstr "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "Could not load preferences file." -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4901 msgid "Failed to write defaults to file." msgstr "Failed to write defaults to file." -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "Exported preferences to" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "FlatCAM Preferences Folder opened." -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "Failed to open recent files file for writing." -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "Failed to open recent projects file for writing." -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 msgid "An internal error has ocurred. See shell.\n" msgstr "An internal error has ocurred. See shell.\n" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -239,24 +240,24 @@ msgstr "" "Object ({kind}) failed because: {error} \n" "\n" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "Converting units to " -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" msgstr "CREATE A NEW FLATCAM TCL SCRIPT" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" msgstr "TCL Tutorial is here" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" msgstr "FlatCAM commands list" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 +#: FlatCAMApp.py:4317 FlatCAMApp.py:4320 FlatCAMApp.py:4323 FlatCAMApp.py:4326 +#: FlatCAMApp.py:4329 FlatCAMApp.py:4332 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}{name}" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4347 FlatCAMApp.py:7219 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Plotting" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4408 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "About FlatCAM" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4434 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4435 msgid "Development" msgstr "Development" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4436 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4437 msgid "Issue tracker" msgstr "Issue tracker" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4441 FlatCAMApp.py:4776 msgid "Close" msgstr "Close" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4456 msgid "Licensed under the MIT license" msgstr "Licensed under the MIT license" -#: FlatCAMApp.py:4448 +#: FlatCAMApp.py:4465 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -348,74 +349,82 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4487 +#| msgid "" +#| "Some of the icons used are from the following sources:
Icons made " +#| "by Freepik from www.flaticon.com
Icons by Icons8" msgid "" -"Some of the icons used are from the following sources:
Icons made by " -"Freepik from www.flaticon.com
Icons by Icons8" +"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 made by " -"Freepik from www.flaticon.com
Icons by Icons8" +"Some of the icons used are from the following sources:
Icons by Icons8
Icons by oNline Web Fonts" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4519 msgid "Splash" msgstr "Splash" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4525 msgid "Programmers" msgstr "Programmers" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4531 msgid "Translators" msgstr "Translators" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4537 msgid "License" msgstr "License" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4543 msgid "Attributions" msgstr "Attributions" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4566 msgid "Programmer" msgstr "Programmer" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4567 msgid "Status" msgstr "Status" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4568 FlatCAMApp.py:4639 msgid "E-mail" msgstr "E-mail" -#: FlatCAMApp.py:4558 +#: FlatCAMApp.py:4576 msgid "BETA Maintainer >= 2019" msgstr "BETA Maintainer >= 2019" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4636 msgid "Language" msgstr "Language" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4637 msgid "Translator" msgstr "Translator" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4638 msgid "Corrections" msgstr "Corrections" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 -#: flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4747 FlatCAMApp.py:4755 FlatCAMApp.py:7888 +#: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Bookmarks Manager" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4767 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -435,35 +444,35 @@ msgstr "" "If you can't get any informations about FlatCAM beta\n" "use the YouTube channel link from the Help menu." -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4774 msgid "Alternative website" msgstr "Alternative website" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4905 FlatCAMApp.py:7852 msgid "Preferences saved." msgstr "Preferences saved." -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4933 msgid "Could not load factory defaults file." msgstr "Could not load factory defaults file." -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4943 msgid "Failed to parse factory defaults file." msgstr "Failed to parse factory defaults file." -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4959 msgid "Failed to write factory defaults to file." msgstr "Failed to write factory defaults to file." -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4963 msgid "Factory defaults saved." msgstr "Factory defaults saved." -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4973 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "Application is saving the project. Please wait ..." -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4978 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -471,27 +480,27 @@ msgstr "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4981 FlatCAMApp.py:9013 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Save changes" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5222 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Selected Excellon file extensions registered with FlatCAM." -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5244 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Selected GCode file extensions registered with FlatCAM." -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5266 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Selected Gerber file extensions registered with FlatCAM." -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5454 FlatCAMApp.py:5511 FlatCAMApp.py:5539 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:5445 +#: FlatCAMApp.py:5463 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 " @@ -507,55 +516,51 @@ msgstr "" "be lost and the result may not be what was expected. \n" "Check the generated GCODE." -#: FlatCAMApp.py:5457 +#: FlatCAMApp.py:5475 msgid "Multigeo. Geometry merging finished" msgstr "Multigeo. Geometry merging finished" -#: FlatCAMApp.py:5466 +#: FlatCAMApp.py:5484 msgid "Geometry merging finished" msgstr "Geometry merging finished" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5506 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Failed. Excellon joining works only on Excellon objects." -#: FlatCAMApp.py:5498 +#: FlatCAMApp.py:5516 msgid "Excellon merging finished" msgstr "Excellon merging finished" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5534 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Failed. Gerber joining works only on Gerber objects." -#: FlatCAMApp.py:5526 +#: FlatCAMApp.py:5544 msgid "Gerber merging finished" msgstr "Gerber merging finished" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5564 FlatCAMApp.py:5599 msgid "Failed. Select a Geometry Object and try again." msgstr "Failed. Select a Geometry Object and try again." -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5568 FlatCAMApp.py:5604 msgid "Expected a FlatCAMGeometry, got" msgstr "Expected a FlatCAMGeometry, got" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5581 msgid "A Geometry object was converted to MultiGeo type." msgstr "A Geometry object was converted to MultiGeo type." -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5619 msgid "A Geometry object was converted to SingleGeo type." msgstr "A Geometry object was converted to SingleGeo type." -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5815 msgid "Toggle Units" msgstr "Toggle Units" -#: FlatCAMApp.py:5799 -#| msgid "" -#| "Changing the units of the project causes all geometrical properties of " -#| "all objects to be scaled accordingly.\n" -#| "Continue?" +#: FlatCAMApp.py:5817 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -567,50 +572,48 @@ msgstr "" "\n" "Do you want to continue?" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5820 FlatCAMApp.py:7062 FlatCAMApp.py:7138 FlatCAMApp.py:9378 +#: FlatCAMApp.py:9392 FlatCAMApp.py:9746 FlatCAMApp.py:9757 msgid "Ok" msgstr "Ok" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5869 msgid "Converted units to" msgstr "Converted units to" -#: FlatCAMApp.py:5865 -#| msgid " Units conversion cancelled." +#: FlatCAMApp.py:5883 msgid "Units conversion cancelled." msgstr "Units conversion cancelled." -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6756 msgid "Detachable Tabs" msgstr "Detachable Tabs" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6975 FlatCAMApp.py:7022 FlatCAMApp.py:7678 FlatCAMApp.py:7741 +#: FlatCAMApp.py:7807 msgid "Preferences" msgstr "Preferences" -#: FlatCAMApp.py:6960 +#: FlatCAMApp.py:6978 msgid "Preferences applied." msgstr "Preferences applied." -#: FlatCAMApp.py:7009 -#| msgid "Preferences edited but not saved." +#: FlatCAMApp.py:7027 msgid "Preferences closed without saving." msgstr "Preferences closed without saving." -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7050 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 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:7037 flatcamTools/ToolNonCopperClear.py:600 -#: flatcamTools/ToolPaint.py:510 flatcamTools/ToolSolderPaste.py:566 +#: FlatCAMApp.py:7055 flatcamTools/ToolNonCopperClear.py:600 +#: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Adding Tool cancelled" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7058 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -618,11 +621,11 @@ msgstr "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7133 msgid "Delete objects" msgstr "Delete objects" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7136 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -630,51 +633,51 @@ msgstr "" "Are you sure you want to permanently delete\n" "the selected objects?" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7167 msgid "Object(s) deleted" msgstr "Object(s) deleted" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7171 msgid "Failed. No object(s) selected..." msgstr "Failed. No object(s) selected..." -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7173 msgid "Save the work in Editor and try again ..." msgstr "Save the work in Editor and try again ..." -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7203 msgid "Object deleted" msgstr "Object deleted" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7230 msgid "Click to set the origin ..." msgstr "Click to set the origin ..." -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7252 msgid "Setting Origin..." msgstr "Setting Origin..." -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7264 msgid "Origin set" msgstr "Origin set" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7271 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7329 msgid "Jump to ..." msgstr "Jump to ..." -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7330 msgid "Enter the coordinates in format X,Y:" msgstr "Enter the coordinates in format X,Y:" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7338 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Wrong coordinates. Enter coordinates in format: X,Y" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7406 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 #: flatcamEditors/FlatCAMGeoEditor.py:3887 #: flatcamEditors/FlatCAMGeoEditor.py:3902 @@ -683,48 +686,48 @@ msgstr "Wrong coordinates. Enter coordinates in format: X,Y" #: flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 #: flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "Done." -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7558 FlatCAMApp.py:7629 msgid "No object is selected. Select an object and try again." msgstr "No object is selected. Select an object and try again." -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7649 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:7629 +#: FlatCAMApp.py:7655 msgid "The current task was gracefully closed on user request..." msgstr "The current task was gracefully closed on user request..." -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7738 msgid "Preferences edited but not saved." msgstr "Preferences edited but not saved." -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 -#: FlatCAMObj.py:4107 +#: FlatCAMApp.py:7752 FlatCAMApp.py:7764 FlatCAMApp.py:7781 FlatCAMApp.py:7798 +#: FlatCAMApp.py:7858 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMObj.py:4213 msgid "Tools Database" msgstr "Tools Database" -#: FlatCAMApp.py:7752 +#: FlatCAMApp.py:7778 msgid "Tools in Tools Database edited but not saved." msgstr "Tools in Tools Database edited but not saved." -#: FlatCAMApp.py:7776 +#: FlatCAMApp.py:7802 msgid "Tool from DB added in Tool Table." msgstr "Tool from DB added in Tool Table." -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7804 msgid "Adding tool from DB is not allowed for this object." msgstr "Adding tool from DB is not allowed for this object." -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7838 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -732,11 +735,11 @@ msgstr "" "One or more values are changed.\n" "Do you want to save the Preferences?" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7840 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Save Preferences" -#: FlatCAMApp.py:7838 +#: FlatCAMApp.py:7864 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -744,95 +747,95 @@ msgstr "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" -#: FlatCAMApp.py:7840 +#: FlatCAMApp.py:7866 msgid "Save Tools Database" msgstr "Save Tools Database" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7885 FlatCAMApp.py:9985 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Code Editor" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7903 msgid "No object selected to Flip on Y axis." msgstr "No object selected to Flip on Y axis." -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7929 msgid "Flip on Y axis done." msgstr "Flip on Y axis done." -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 +#: FlatCAMApp.py:7931 FlatCAMApp.py:7973 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "Flip action was not executed." -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7945 msgid "No object selected to Flip on X axis." msgstr "No object selected to Flip on X axis." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7971 msgid "Flip on X axis done." msgstr "Flip on X axis done." -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:7987 msgid "No object selected to Rotate." msgstr "No object selected to Rotate." -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:7990 FlatCAMApp.py:8037 FlatCAMApp.py:8070 msgid "Transform" msgstr "Transform" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:7990 FlatCAMApp.py:8037 FlatCAMApp.py:8070 msgid "Enter the Angle value:" msgstr "Enter the Angle value:" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8021 msgid "Rotation done." msgstr "Rotation done." -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8023 msgid "Rotation movement was not executed." msgstr "Rotation movement was not executed." -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8035 msgid "No object selected to Skew/Shear on X axis." msgstr "No object selected to Skew/Shear on X axis." -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8057 msgid "Skew on X axis done." msgstr "Skew on X axis done." -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8068 msgid "No object selected to Skew/Shear on Y axis." msgstr "No object selected to Skew/Shear on Y axis." -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8090 msgid "Skew on Y axis done." msgstr "Skew on Y axis done." -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8238 FlatCAMApp.py:8285 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Select All" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8242 FlatCAMApp.py:8289 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Deselect All" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8305 msgid "All objects are selected." msgstr "All objects are selected." -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8315 msgid "Objects selection is cleared." msgstr "Objects selection is cleared." -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8331 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Grid On/Off" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8344 flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:2503 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1228 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 #: flatcamTools/ToolNonCopperClear.py:286 flatcamTools/ToolPaint.py:188 #: flatcamTools/ToolSolderPaste.py:121 flatcamTools/ToolSolderPaste.py:591 @@ -840,77 +843,77 @@ msgstr "Grid On/Off" msgid "Add" msgstr "Add" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 +#: FlatCAMApp.py:8345 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 -#: flatcamGUI/FlatCAMGUI.py:1955 flatcamGUI/FlatCAMGUI.py:2279 -#: flatcamGUI/ObjectUI.py:1254 flatcamTools/ToolNonCopperClear.py:298 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 +#: flatcamGUI/FlatCAMGUI.py:1967 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/ObjectUI.py:1291 flatcamTools/ToolNonCopperClear.py:298 #: flatcamTools/ToolPaint.py:200 flatcamTools/ToolSolderPaste.py:127 #: flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "Delete" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8358 msgid "New Grid ..." msgstr "New Grid ..." -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8359 msgid "Enter a Grid Value:" msgstr "Enter a Grid Value:" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8367 FlatCAMApp.py:8394 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:8347 +#: FlatCAMApp.py:8373 msgid "New Grid added" msgstr "New Grid added" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8376 msgid "Grid already exists" msgstr "Grid already exists" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8379 msgid "Adding New Grid cancelled" msgstr "Adding New Grid cancelled" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8401 msgid " Grid Value does not exist" msgstr " Grid Value does not exist" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8404 msgid "Grid Value deleted" msgstr "Grid Value deleted" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8407 msgid "Delete Grid value cancelled" msgstr "Delete Grid value cancelled" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8413 msgid "Key Shortcut List" msgstr "Key Shortcut List" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8447 msgid " No object selected to copy it's name" msgstr " No object selected to copy it's name" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8451 msgid "Name copied on clipboard ..." msgstr "Name copied on clipboard ..." -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8648 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Coordinates copied to clipboard." -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 +#: FlatCAMApp.py:8859 FlatCAMApp.py:8862 FlatCAMApp.py:8865 FlatCAMApp.py:8868 #: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 #: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 #, python-brace-format msgid "[selected]{name} selected" msgstr "[selected]{name} selected" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9010 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -920,329 +923,364 @@ msgstr "" "Creating a New project will delete them.\n" "Do you want to Save the project?" -#: FlatCAMApp.py:9012 +#: FlatCAMApp.py:9032 msgid "New Project created" msgstr "New Project created" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9167 FlatCAMApp.py:9171 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Open Gerber" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9178 msgid "Opening Gerber file." msgstr "Opening Gerber file." -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9184 msgid "Open Gerber cancelled." msgstr "Open Gerber cancelled." -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9205 FlatCAMApp.py:9209 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Open Excellon" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9215 msgid "Opening Excellon file." msgstr "Opening Excellon file." -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9221 msgid " Open Excellon cancelled." msgstr " Open Excellon cancelled." -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9245 FlatCAMApp.py:9249 msgid "Open G-Code" msgstr "Open G-Code" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9256 msgid "Opening G-Code file." msgstr "Opening G-Code file." -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9262 msgid "Open G-Code cancelled." msgstr "Open G-Code cancelled." -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9280 FlatCAMApp.py:9283 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Open Project" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9292 msgid "Open Project cancelled." msgstr "Open Project cancelled." -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9316 FlatCAMApp.py:9320 +#| msgid "Open PDF" +msgid "Open HPGL2" +msgstr "Open HPGL2" + +#: FlatCAMApp.py:9327 +#| msgid "Opening Gerber file." +msgid "Opening HPGL2 file." +msgstr "Opening HPGL2 file." + +#: FlatCAMApp.py:9332 +#| msgid "Open SVG cancelled." +msgid "Open HPGL2 file cancelled." +msgstr "Open HPGL2 file cancelled." + +#: FlatCAMApp.py:9350 FlatCAMApp.py:9353 msgid "Open Configuration File" msgstr "Open Configuration File" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9358 msgid "Open Config cancelled." msgstr "Open Config cancelled." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9374 FlatCAMApp.py:9742 FlatCAMApp.py:10214 msgid "No object selected." msgstr "No object selected." -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9375 FlatCAMApp.py:9743 msgid "Please Select a Geometry object to export" msgstr "Please Select a Geometry object to export" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9389 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Only Geometry, Gerber and CNCJob objects can be used." -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9402 FlatCAMApp.py:9406 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Export SVG" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9412 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr " Export SVG cancelled." -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9433 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:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9439 FlatCAMApp.py:9443 msgid "Export PNG Image" msgstr "Export PNG Image" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9448 msgid "Export PNG cancelled." msgstr "Export PNG cancelled." -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9472 msgid "No object selected. Please select an Gerber object to export." msgstr "No object selected. Please select an Gerber object to export." -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9478 FlatCAMApp.py:9701 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "Failed. Only Gerber objects can be saved as Gerber files..." -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9490 msgid "Save Gerber source file" msgstr "Save Gerber source file" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9496 msgid "Save Gerber source file cancelled." msgstr "Save Gerber source file cancelled." -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9516 msgid "No object selected. Please select an Script object to export." msgstr "No object selected. Please select an Script object to export." -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9522 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:9476 +#: FlatCAMApp.py:9534 msgid "Save Script source file" msgstr "Save Script source file" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9540 msgid "Save Script source file cancelled." msgstr "Save Script source file cancelled." -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9560 msgid "No object selected. Please select an Document object to export." msgstr "No object selected. Please select an Document object to export." -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9566 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "Failed. Only Document objects can be saved as Document files..." -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9578 msgid "Save Document source file" msgstr "Save Document source file" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9584 msgid "Save Document source file cancelled." msgstr "Save Document source file cancelled." -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9604 msgid "No object selected. Please select an Excellon object to export." msgstr "No object selected. Please select an Excellon object to export." -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9610 FlatCAMApp.py:9654 FlatCAMApp.py:10389 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "Failed. Only Excellon objects can be saved as Excellon files..." -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9618 FlatCAMApp.py:9622 msgid "Save Excellon source file" msgstr "Save Excellon source file" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9628 msgid "Saving Excellon source file cancelled." msgstr "Saving Excellon source file cancelled." -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9648 msgid "No object selected. Please Select an Excellon object to export." msgstr "No object selected. Please Select an Excellon object to export." -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9662 FlatCAMApp.py:9666 msgid "Export Excellon" msgstr "Export Excellon" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9672 msgid "Export Excellon cancelled." msgstr "Export Excellon cancelled." -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9695 msgid "No object selected. Please Select an Gerber object to export." msgstr "No object selected. Please Select an Gerber object to export." -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9709 FlatCAMApp.py:9713 msgid "Export Gerber" msgstr "Export Gerber" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9719 msgid "Export Gerber cancelled." msgstr "Export Gerber cancelled." -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9754 msgid "Only Geometry objects can be used." msgstr "Only Geometry objects can be used." -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9768 FlatCAMApp.py:9772 msgid "Export DXF" msgstr "Export DXF" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9779 msgid "Export DXF cancelled." msgstr "Export DXF cancelled." -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9799 FlatCAMApp.py:9802 msgid "Import SVG" msgstr "Import SVG" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9812 msgid "Open SVG cancelled." msgstr "Open SVG cancelled." -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9831 FlatCAMApp.py:9835 msgid "Import DXF" msgstr "Import DXF" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9845 msgid "Open DXF cancelled." msgstr "Open DXF cancelled." -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9887 msgid "Viewing the source code of the selected object." msgstr "Viewing the source code of the selected object." -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9888 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Loading..." -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9894 FlatCAMApp.py:9898 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:9854 +#: FlatCAMApp.py:9912 msgid "Source Editor" msgstr "Source Editor" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9952 FlatCAMApp.py:9959 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:9913 +#: FlatCAMApp.py:9971 msgid "Failed to load the source code for the selected object" msgstr "Failed to load the source code for the selected object" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10013 msgid "New TCL script file created in Code Editor." msgstr "New TCL script file created in Code Editor." -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10051 FlatCAMApp.py:10053 msgid "Open TCL script" msgstr "Open TCL script" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10057 msgid "Open TCL script cancelled." msgstr "Open TCL script cancelled." -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10081 msgid "Executing FlatCAMScript file." msgstr "Executing FlatCAMScript file." -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10088 FlatCAMApp.py:10091 msgid "Run TCL script" msgstr "Run TCL script" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10101 msgid "Run TCL script cancelled." msgstr "Run TCL script cancelled." -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10117 msgid "TCL script file opened in Code Editor and executed." msgstr "TCL script file opened in Code Editor and executed." -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10168 FlatCAMApp.py:10172 msgid "Save Project As ..." msgstr "Save Project As ..." -#: FlatCAMApp.py:10111 +#: FlatCAMApp.py:10169 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "{l_save}/Project_{date}" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10177 msgid "Save Project cancelled." msgstr "Save Project cancelled." -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10184 +msgid "The object is used by another application." +msgstr "The object is used by another application." + +#: FlatCAMApp.py:10220 FlatCAMApp.py:10226 flatcamGUI/FlatCAMGUI.py:261 +#| msgid "Save Project As ..." +msgid "Save Object as PDF ..." +msgstr "Save Object as PDF ..." + +#: FlatCAMApp.py:10221 +#, python-brace-format +#| msgid "{l_save}/Project_{date}" +msgid "{l_save}/{obj_name}_{date}" +msgstr "{l_save}/{obj_name}_{date}" + +#: FlatCAMApp.py:10231 +#| msgid "Save Project cancelled." +msgid "Save Object PDF cancelled." +msgstr "Save Object PDF cancelled." + +#: FlatCAMApp.py:10269 msgid "Exporting SVG" msgstr "Exporting SVG" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10313 msgid "SVG file exported to" msgstr "SVG file exported to" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10338 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:10383 +#: FlatCAMApp.py:10484 msgid "Excellon file exported to" msgstr "Excellon file exported to" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10493 msgid "Exporting Excellon" msgstr "Exporting Excellon" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10499 FlatCAMApp.py:10507 msgid "Could not export Excellon file." msgstr "Could not export Excellon file." -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10623 msgid "Gerber file exported to" msgstr "Gerber file exported to" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10631 msgid "Exporting Gerber" msgstr "Exporting Gerber" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10637 FlatCAMApp.py:10645 msgid "Could not export Gerber file." msgstr "Could not export Gerber file." -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10679 msgid "DXF file exported to" msgstr "DXF file exported to" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10685 msgid "Exporting DXF" msgstr "Exporting DXF" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10690 FlatCAMApp.py:10697 msgid "Could not export DXF file." msgstr "Could not export DXF file." -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10720 FlatCAMApp.py:10763 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1250,83 +1288,85 @@ msgstr "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10730 msgid "Importing SVG" msgstr "Importing SVG" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 -#: FlatCAMApp.py:10808 FlatCAMApp.py:10871 FlatCAMApp.py:10909 -#: flatcamTools/ToolImage.py:298 flatcamTools/ToolPDF.py:225 +#: FlatCAMApp.py:10741 FlatCAMApp.py:10783 FlatCAMApp.py:10842 +#: FlatCAMApp.py:10909 FlatCAMApp.py:10972 FlatCAMApp.py:11039 +#: FlatCAMApp.py:11077 flatcamTools/ToolImage.py:298 +#: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Opened" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10772 msgid "Importing DXF" msgstr "Importing DXF" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10808 FlatCAMApp.py:10998 msgid "Failed to open file" msgstr "Failed to open file" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10811 FlatCAMApp.py:11001 msgid "Failed to parse file" msgstr "Failed to parse file" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 -#: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 +#: FlatCAMApp.py:10816 FlatCAMApp.py:10877 FlatCAMApp.py:11006 +#: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 +#: flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "An internal error has occurred. See shell.\n" -#: FlatCAMApp.py:10722 +#: FlatCAMApp.py:10823 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "Object is not Gerber file or empty. Aborting object creation." -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10828 msgid "Opening Gerber" msgstr "Opening Gerber" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10835 msgid " Open Gerber failed. Probable not a Gerber file." msgstr " Open Gerber failed. Probable not a Gerber file." -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10867 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "This is not Excellon file." -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10871 msgid "Cannot open file" msgstr "Cannot open file" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10891 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "No geometry found in file" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10894 msgid "Opening Excellon." msgstr "Opening Excellon." -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10901 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Open Excellon file failed. Probable not an Excellon file." -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10932 msgid "Reading GCode file" msgstr "Reading GCode file" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10939 msgid "Failed to open" msgstr "Failed to open" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10947 msgid "This is not GCODE" msgstr "This is not GCODE" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10952 msgid "Opening G-Code." msgstr "Opening G-Code." -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10961 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1338,55 +1378,70 @@ msgstr "" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" -#: FlatCAMApp.py:10885 +#: FlatCAMApp.py:11020 +#| msgid "Object is not Gerber file or empty. Aborting object creation." +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "Object is not HPGL2 file or empty. Aborting object creation." + +#: FlatCAMApp.py:11025 +#| msgid "Opening Gerber" +msgid "Opening HPGL2" +msgstr "Opening HPGL2" + +#: FlatCAMApp.py:11032 +#| msgid " Open Gerber failed. Probable not a Gerber file." +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Open HPGL2 failed. Probable not a HPGL2 file." + +#: FlatCAMApp.py:11053 msgid "Opening TCL Script..." msgstr "Opening TCL Script..." -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11061 msgid "TCL script file opened in Code Editor." msgstr "TCL script file opened in Code Editor." -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11064 msgid "Failed to open TCL Script." msgstr "Failed to open TCL Script." -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11092 msgid "Opening FlatCAM Config file." msgstr "Opening FlatCAM Config file." -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11120 msgid "Failed to open config file" msgstr "Failed to open config file" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11146 msgid "Loading Project ... Please Wait ..." msgstr "Loading Project ... Please Wait ..." -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11151 msgid "Opening FlatCAM Project file." msgstr "Opening FlatCAM Project file." -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11161 FlatCAMApp.py:11179 msgid "Failed to open project file" msgstr "Failed to open project file" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11213 msgid "Loading Project ... restoring" msgstr "Loading Project ... restoring" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11222 msgid "Project loaded from" msgstr "Project loaded from" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11285 msgid "Redrawing all objects" msgstr "Redrawing all objects" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11317 msgid "Available commands:\n" msgstr "Available commands:\n" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11319 msgid "" "\n" "\n" @@ -1398,51 +1453,51 @@ msgstr "" "Type help for usage.\n" " Example: help open_gerber" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11469 msgid "Shows list of commands." msgstr "Shows list of commands." -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11531 msgid "Failed to load recent item list." msgstr "Failed to load recent item list." -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11539 msgid "Failed to parse recent item list." msgstr "Failed to parse recent item list." -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11550 msgid "Failed to load recent projects item list." msgstr "Failed to load recent projects item list." -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11558 msgid "Failed to parse recent project item list." msgstr "Failed to parse recent project item list." -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11617 msgid "Clear Recent projects" msgstr "Clear Recent projects" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11640 msgid "Clear Recent files" msgstr "Clear Recent files" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11657 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "Shortcut Key List" -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11731 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Selected Tab - Choose an Item from Project Tab" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11732 msgid "Details" msgstr "Details" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11734 msgid "The normal flow when working in FlatCAM is the following:" msgstr "The normal flow when working in FlatCAM is the following:" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11735 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 " @@ -1452,7 +1507,7 @@ msgstr "" "FlatCAM using either the toolbars, key shortcuts or even dragging and " "dropping the files on the GUI." -#: FlatCAMApp.py:11570 +#: FlatCAMApp.py:11738 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 " @@ -1462,7 +1517,7 @@ msgstr "" "drag and drop of the file into the FLATCAM GUI or through the menu (or " "toolbar) actions offered within the app." -#: FlatCAMApp.py:11573 +#: FlatCAMApp.py:11741 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 " @@ -1474,7 +1529,7 @@ msgstr "" "the Project Tab, SELECTED TAB will be updated with the object properties " "according to its kind: Gerber, Excellon, Geometry or CNCJob object." -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11745 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 " @@ -1488,7 +1543,7 @@ msgstr "" "object on the canvas will bring the SELECTED TAB and populate it even if it " "was out of focus." -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11749 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" @@ -1496,7 +1551,7 @@ msgstr "" "You can change the parameters in this screen and the flow direction is like " "this:" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11750 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1508,7 +1563,7 @@ msgstr "" "CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " "append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11754 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1516,23 +1571,23 @@ 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:11647 +#: FlatCAMApp.py:11815 msgid "Failed checking for latest version. Could not connect." msgstr "Failed checking for latest version. Could not connect." -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11823 msgid "Could not parse information about latest version." msgstr "Could not parse information about latest version." -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11834 msgid "FlatCAM is up to date!" msgstr "FlatCAM is up to date!" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11839 msgid "Newer Version Available" msgstr "Newer Version Available" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11840 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1540,63 +1595,63 @@ msgstr "" "There is a newer version of FlatCAM available for download:\n" "\n" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11842 msgid "info" msgstr "info" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11921 msgid "All plots disabled." msgstr "All plots disabled." -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11928 msgid "All non selected plots disabled." msgstr "All non selected plots disabled." -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11935 msgid "All plots enabled." msgstr "All plots enabled." -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11942 msgid "Selected plots enabled..." msgstr "Selected plots enabled..." -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11951 msgid "Selected plots disabled..." msgstr "Selected plots disabled..." -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:11970 msgid "Enabling plots ..." msgstr "Enabling plots ..." -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12010 msgid "Disabling plots ..." msgstr "Disabling plots ..." -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12032 msgid "Working ..." msgstr "Working ..." -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12071 msgid "Saving FlatCAM Project" msgstr "Saving FlatCAM Project" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12091 FlatCAMApp.py:12129 msgid "Project saved to" msgstr "Project saved to" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12111 msgid "Failed to verify project file" msgstr "Failed to verify project file" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12111 FlatCAMApp.py:12120 FlatCAMApp.py:12132 msgid "Retry to save it." msgstr "Retry to save it." -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12120 FlatCAMApp.py:12132 msgid "Failed to parse saved project file" msgstr "Failed to parse saved project file" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12248 msgid "The user requested a graceful exit of the current task." msgstr "The user requested a graceful exit of the current task." @@ -1678,7 +1733,7 @@ msgstr "Bookmark removed." msgid "Export FlatCAM Bookmarks" msgstr "Export FlatCAM Bookmarks" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "Bookmarks" @@ -1710,17 +1765,17 @@ msgstr "FlatCAM bookmarks import cancelled." msgid "Imported Bookmarks from" msgstr "Imported Bookmarks from" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 -#: FlatCAMObj.py:4484 FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 +#: FlatCAMObj.py:4590 FlatCAMObj.py:4599 msgid "Iso" msgstr "Iso" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 -#: FlatCAMObj.py:3488 FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 +#: FlatCAMObj.py:3588 FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "Rough" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "Finish" @@ -1729,12 +1784,12 @@ msgid "Tool Name" msgstr "Tool Name" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 -#: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 +#: flatcamGUI/ObjectUI.py:1256 flatcamTools/ToolNonCopperClear.py:271 #: flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "Tool Dia" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "Tool Offset" @@ -1742,8 +1797,8 @@ msgstr "Tool Offset" msgid "Custom Offset" msgstr "Custom Offset" -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 -#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3991 #: flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "Tool Type" @@ -1752,12 +1807,13 @@ msgstr "Tool Type" msgid "Tool Shape" msgstr "Tool Shape" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 -#: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:1666 flatcamGUI/PreferencesUI.py:2334 +#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4036 +#: flatcamGUI/PreferencesUI.py:4290 flatcamGUI/PreferencesUI.py:5114 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:132 +#: flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "Cut Z" @@ -1777,9 +1833,9 @@ msgstr "V-Dia" msgid "V-Angle" msgstr "V-Angle" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Travel Z" @@ -1799,8 +1855,8 @@ msgstr "FR Rapids" msgid "Spindle Speed" msgstr "Spindle Speed" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "Dwell" @@ -1808,8 +1864,8 @@ msgstr "Dwell" msgid "Dwelltime" msgstr "Dwelltime" -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 -#: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 +#: flatcamGUI/PreferencesUI.py:2461 flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "Preprocessor" @@ -1818,32 +1874,37 @@ msgid "ExtraCut" msgstr "ExtraCut" #: FlatCAMCommon.py:533 +#| msgid "Length" +msgid "E-Cut Length" +msgstr "E-Cut Length" + +#: FlatCAMCommon.py:534 msgid "Toolchange" msgstr "Toolchange" -#: FlatCAMCommon.py:534 +#: FlatCAMCommon.py:535 msgid "Toolchange XY" msgstr "Toolchange XY" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 -#: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 -#: flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 +#: flatcamGUI/PreferencesUI.py:3264 flatcamGUI/PreferencesUI.py:6503 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Toolchange Z" -#: FlatCAMCommon.py:536 +#: FlatCAMCommon.py:537 msgid "Start Z" msgstr "Start Z" -#: FlatCAMCommon.py:537 +#: FlatCAMCommon.py:538 msgid "End Z" msgstr "End Z" -#: FlatCAMCommon.py:541 +#: FlatCAMCommon.py:542 msgid "Tool Index." msgstr "Tool Index." -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" @@ -1853,11 +1914,11 @@ msgstr "" "This is not used in the app, it's function\n" "is to serve as a note for the user." -#: FlatCAMCommon.py:547 +#: FlatCAMCommon.py:548 msgid "Tool Diameter." msgstr "Tool Diameter." -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1873,7 +1934,7 @@ msgstr "" "Out = offset outside by half of tool diameter\n" "Custom = custom offset using the Custom Offset value" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." @@ -1881,7 +1942,7 @@ msgstr "" "Custom Offset.\n" "A value to be used as offset from the current path." -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -1895,7 +1956,7 @@ msgstr "" "Rough = rough cut, low feedrate, multiple passes\n" "Finish = finishing cut, high feedrate" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -1909,7 +1970,7 @@ msgstr "" "B = ball tip milling tool\n" "V = v-shape milling tool" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." @@ -1917,7 +1978,7 @@ msgstr "" "Cutting Depth.\n" "The depth at which to cut into material." -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" @@ -1927,7 +1988,7 @@ msgstr "" "Selecting this will allow cutting in multiple passes,\n" "each pass adding a DPP parameter depth." -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." @@ -1935,7 +1996,7 @@ msgstr "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." -#: FlatCAMCommon.py:581 +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." @@ -1943,7 +2004,7 @@ msgstr "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." @@ -1951,7 +2012,7 @@ msgstr "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" @@ -1961,7 +2022,7 @@ msgstr "" "Height at which the milling bit will travel between cuts,\n" "above the surface of the material, avoiding all fixtures." -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -1969,7 +2030,7 @@ msgstr "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." @@ -1977,7 +2038,7 @@ msgstr "" "FR Z. Feedrate Z\n" "The speed on Z plane." -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -1989,7 +2050,7 @@ msgstr "" "This is used only by some devices that can't use\n" "the G0 g-code command. Mostly 3D printers." -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" @@ -1999,7 +2060,7 @@ msgstr "" "If it's left empty it will not be used.\n" "The speed of the spindle in RPM." -#: FlatCAMCommon.py:606 +#: FlatCAMCommon.py:607 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" @@ -2009,7 +2070,7 @@ msgstr "" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." -#: FlatCAMCommon.py:610 +#: FlatCAMCommon.py:611 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." @@ -2017,7 +2078,7 @@ msgstr "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" @@ -2027,7 +2088,7 @@ msgstr "" "A selection of files that will alter the generated G-code\n" "to fit for a number of use cases." -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2041,7 +2102,29 @@ msgstr "" "such as that this point is covered by this extra cut to\n" "ensure a complete isolation." -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +#| 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." +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." + +#: FlatCAMCommon.py:631 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -2053,28 +2136,28 @@ msgstr "" "The kind of toolchange is determined by\n" "the preprocessor file." -#: FlatCAMCommon.py:628 -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." - -#: FlatCAMCommon.py:633 -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." - #: FlatCAMCommon.py:636 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." + +#: FlatCAMCommon.py:641 +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." + +#: FlatCAMCommon.py:644 +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." @@ -2083,7 +2166,7 @@ msgstr "" "If it's left empty it will not be used.\n" "A position on Z plane to move immediately after job start." -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." @@ -2091,11 +2174,11 @@ msgstr "" "End Z.\n" "A position on Z plane to move immediately after job stop." -#: FlatCAMCommon.py:661 +#: FlatCAMCommon.py:669 msgid "Add Tool to Tools DB" msgstr "Add Tool to Tools DB" -#: FlatCAMCommon.py:663 +#: FlatCAMCommon.py:671 msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." @@ -2103,35 +2186,35 @@ msgstr "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." -#: FlatCAMCommon.py:666 +#: FlatCAMCommon.py:674 msgid "Remove Tool from Tools DB" msgstr "Remove Tool from Tools DB" -#: FlatCAMCommon.py:668 +#: FlatCAMCommon.py:676 msgid "Remove a selection of tools in the Tools Database." msgstr "Remove a selection of tools in the Tools Database." -#: FlatCAMCommon.py:670 +#: FlatCAMCommon.py:678 msgid "Export Tool DB" msgstr "Export Tool DB" -#: FlatCAMCommon.py:672 +#: FlatCAMCommon.py:680 msgid "Save the Tools Database to a custom text file." msgstr "Save the Tools Database to a custom text file." -#: FlatCAMCommon.py:674 +#: FlatCAMCommon.py:682 msgid "Import Tool DB" msgstr "Import Tool DB" -#: FlatCAMCommon.py:676 +#: FlatCAMCommon.py:684 msgid "Load the Tools Database information's from a custom text file." msgstr "Load the Tools Database information's from a custom text file." -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" msgstr "Add Tool from Tools DB" -#: FlatCAMCommon.py:688 +#: FlatCAMCommon.py:696 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" @@ -2141,231 +2224,246 @@ msgstr "" "active Geometry object after selecting a tool\n" "in the Tools Database." -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 msgid "Could not load Tools DB file." msgstr "Could not load Tools DB file." -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 msgid "Failed to parse Tools DB file." msgstr "Failed to parse Tools DB file." -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" msgstr "Loaded FlatCAM Tools DB from" -#: FlatCAMCommon.py:744 +#: FlatCAMCommon.py:752 msgid "Add to DB" msgstr "Add to DB" -#: FlatCAMCommon.py:746 +#: FlatCAMCommon.py:754 msgid "Copy from DB" msgstr "Copy from DB" -#: FlatCAMCommon.py:748 +#: FlatCAMCommon.py:756 msgid "Delete from DB" msgstr "Delete from DB" -#: FlatCAMCommon.py:998 +#: FlatCAMCommon.py:1026 msgid "Tool added to DB." msgstr "Tool added to DB." -#: FlatCAMCommon.py:1019 +#: FlatCAMCommon.py:1047 msgid "Tool copied from Tools DB." msgstr "Tool copied from Tools DB." -#: FlatCAMCommon.py:1037 +#: FlatCAMCommon.py:1065 msgid "Tool removed from Tools DB." msgstr "Tool removed from Tools DB." -#: FlatCAMCommon.py:1048 +#: FlatCAMCommon.py:1076 msgid "Export Tools Database" msgstr "Export Tools Database" -#: FlatCAMCommon.py:1051 +#: FlatCAMCommon.py:1079 msgid "Tools_Database" msgstr "Tools_Database" -#: FlatCAMCommon.py:1058 +#: FlatCAMCommon.py:1086 msgid "FlatCAM Tools DB export cancelled." msgstr "FlatCAM Tools DB export cancelled." -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 msgid "Failed to write Tools DB to file." msgstr "Failed to write Tools DB to file." -#: FlatCAMCommon.py:1094 +#: FlatCAMCommon.py:1122 msgid "Exported Tools DB to" msgstr "Exported Tools DB to" -#: FlatCAMCommon.py:1101 +#: FlatCAMCommon.py:1129 msgid "Import FlatCAM Tools DB" msgstr "Import FlatCAM Tools DB" -#: FlatCAMCommon.py:1104 +#: FlatCAMCommon.py:1132 msgid "FlatCAM Tools DB import cancelled." msgstr "FlatCAM Tools DB import cancelled." -#: FlatCAMCommon.py:1147 +#: FlatCAMCommon.py:1175 msgid "Saved Tools DB." msgstr "Saved Tools DB." -#: FlatCAMCommon.py:1293 +#: FlatCAMCommon.py:1322 msgid "No Tool/row selected in the Tools Database table" msgstr "No Tool/row selected in the Tools Database table" -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." msgstr "Cancelled adding tool from DB." -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "Name changed from" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "to" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "Offsetting..." -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +#| msgid "Scale action was not executed." +msgid "Scaling could not be executed." +msgstr "Scaling could not be executed." + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +#| msgid "Scale on the" +msgid "Scale done." +msgstr "Scale done." + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "Scaling..." -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "Skewing..." -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 #: flatcamGUI/PreferencesUI.py:1123 flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "Basic" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 #: flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "Advanced" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "Buffering solid geometry" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 #: flatcamTools/ToolCopperThieving.py:1199 #: flatcamTools/ToolCopperThieving.py:1211 -#: flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 -#: flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 -#: flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 +#: flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 +#: flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "Buffering" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "Done" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "Isolating..." -#: FlatCAMObj.py:1063 +#: FlatCAMObj.py:1078 msgid "Click on a polygon to isolate it." msgstr "Click on a polygon to isolate it." -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 msgid "Added polygon" msgstr "Added polygon" -#: FlatCAMObj.py:1097 +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 msgid "Click to add next polygon or right click to start isolation." msgstr "Click to add next polygon or right click to start isolation." -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 msgid "Removed polygon" msgstr "Removed polygon" -#: FlatCAMObj.py:1110 +#: FlatCAMObj.py:1132 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." -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." msgstr "No polygon detected under click position." -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." msgstr "List of single polygons is empty. Aborting." -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 -#: flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +#| msgid "Polygon Selection" +msgid "No polygon in selection." +msgstr "No polygon in selection." + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 +#: flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "Isolation geometry could not be generated." -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "Isolation geometry created" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "Subtracting Geo" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "Plotting Apertures" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "Total Drills" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "Total Slots" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 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." -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "Milling tool for DRILLS is larger than hole size. Cancelled." -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 -#: flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 +#: flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "Tool" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "Tool_nr" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 -#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:736 +#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:753 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 #: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:396 #: flatcamTools/ToolProperties.py:449 flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "Diameter" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "Drills_Nr" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "Slots_Nr" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "Milling tool for SLOTS is larger than hole size. Cancelled." -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" @@ -2373,7 +2471,7 @@ msgstr "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" @@ -2381,35 +2479,25 @@ msgstr "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "Generating CNC Code" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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. " - -#: FlatCAMObj.py:3794 +#: FlatCAMObj.py:3896 msgid "Add from Tool DB" msgstr "Add from Tool DB" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 -#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2154 -#: flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 +#: flatcamGUI/FlatCAMGUI.py:1966 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "Copy" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 #: flatcamEditors/FlatCAMGeoEditor.py:1080 #: flatcamEditors/FlatCAMGeoEditor.py:1114 @@ -2418,63 +2506,62 @@ msgstr "Copy" #: flatcamEditors/FlatCAMGeoEditor.py:1193 #: flatcamEditors/FlatCAMGeoEditor.py:1221 #: flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 -#: flatcamTools/ToolNonCopperClear.py:1464 flatcamTools/ToolPaint.py:838 -#: flatcamTools/ToolPaint.py:1022 flatcamTools/ToolPaint.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1057 +#: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 +#: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 #: flatcamTools/ToolSolderPaste.py:879 flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "Wrong value format entered, use a number." -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "Please enter the desired tool diameter in Float format." -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "Tool added in Tool Table." -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "Default Tool added. Wrong value format entered." -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "Failed. Select a tool to copy." -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "Tool was copied in Tool Table." -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "Tool was edited in Tool Table." -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "Failed. Select a tool to delete." -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "Tool was deleted in Tool Table." -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 -#| msgid "Parameters" +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 msgid "Parameters for" msgstr "Parameters for" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "This Geometry can't be processed because it is" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "geometry" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "Failed. No tool selected in the tool table ..." -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -2482,44 +2569,44 @@ msgstr "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "G-Code parsing in progress..." -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "G-Code parsing finished..." -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "Finished G-Code processing" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "G-Code processing failed with error" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "Cancelled. Empty file, it has no geometry" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "Finished G-Code processing..." -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "CNCjob created" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "Scale factor has to be a number: integer or float." -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "Geometry Scale done." -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -2527,11 +2614,11 @@ msgstr "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "Geometry Offset done." -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -2541,78 +2628,78 @@ msgstr "" "y)\n" "but now there is only one value, not two." -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "Basic" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "Advanced" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "Plotting..." -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "Export Machine Code ..." -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "Export Machine Code cancelled ..." -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "Machine Code file saved to" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "Loaded Machine Code into Code Editor" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "This CNCJob object can't be processed because it is a" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "CNCJob object" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "G-code does not have a units code: either G20 or G21" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "Cancelled. The Toolchange Custom code is enabled but it's empty." -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 msgid "Toolchange G-code was replaced by a custom code." msgstr "Toolchange G-code was replaced by a custom code." -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "No such file or directory" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "Saved to" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 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'" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "There is no preprocessor file." -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "Script Editor" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "Document Editor" @@ -2685,7 +2772,7 @@ msgstr "Failed to skew. No object selected" msgid "There is no such parameter" msgstr "There is no such parameter" -#: camlib.py:2366 +#: camlib.py:2368 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -2699,35 +2786,45 @@ msgstr "" "therefore the app will convert the value to negative. Check the resulting " "CNC code (Gcode etc)." -#: camlib.py:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 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:2450 +#: camlib.py:2389 camlib.py:3409 +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. " + +#: camlib.py:2458 msgid "Creating a list of points to drill..." msgstr "Creating a list of points to drill..." -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "Starting G-Code" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "Starting G-Code for tool with diameter" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "G91 coordinates not implemented" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "The loaded Excellon file has no drills" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "Finished G-Code generation..." -#: camlib.py:3050 +#: camlib.py:3061 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -2737,7 +2834,7 @@ msgstr "" "y) \n" "but now there is only one value, not two." -#: camlib.py:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -2745,7 +2842,7 @@ msgstr "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." -#: camlib.py:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -2759,11 +2856,11 @@ msgstr "" "therefore the app will convert the value to negative.Check the resulting CNC " "code (Gcode etc)." -#: camlib.py:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "Travel Z parameter is None or zero." -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -2777,37 +2874,37 @@ msgstr "" "therefore the app will convert the value to positive.Check the resulting CNC " "code (Gcode etc)." -#: camlib.py:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 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:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "Indexing geometry before generating G-Code..." -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "Starting G-Code..." -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "Finished G-Code generation" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "paths traced" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "Expected a Geometry, got" -#: camlib.py:3303 +#: camlib.py:3316 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:3343 +#: camlib.py:3356 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -2815,35 +2912,35 @@ 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:3604 +#: camlib.py:3618 msgid " paths traced." msgstr " paths traced." -#: camlib.py:3632 +#: camlib.py:3646 msgid "There is no tool data in the SolderPaste geometry." msgstr "There is no tool data in the SolderPaste geometry." -#: camlib.py:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "Finished SolderPste G-Code generation" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "paths traced." -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "Parsing GCode file. Number of lines" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "Creating Geometry from the parsed GCode file. " -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "G91 coordinates not implemented ..." -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "Unifying Geometry from parsed Geometry segments" @@ -2946,8 +3043,8 @@ 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:983 -#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2879 -#: flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2892 +#: flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "Cancelled." @@ -2972,7 +3069,7 @@ msgstr "Done. Drill(s) Move completed." msgid "Done. Drill(s) copied." msgstr "Done. Drill(s) copied." -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "Excellon Editor" @@ -2981,13 +3078,13 @@ msgstr "Excellon Editor" msgid "Name:" msgstr "Name:" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "Tools Table" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -3007,8 +3104,8 @@ msgstr "" "Add/Delete a tool to the tool list\n" "for this Excellon object." -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "Diameter for the new tool" @@ -3036,7 +3133,7 @@ msgstr "" "Delete a tool in the tool list\n" "by selecting a row in the tool table." -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "Resize Drill(s)" @@ -3060,8 +3157,8 @@ msgstr "Resize" msgid "Resize drill(s)" msgstr "Resize drill(s)" -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "Add Drill Array" @@ -3085,17 +3182,17 @@ msgstr "Linear" #: flatcamEditors/FlatCAMExcEditor.py:1634 #: flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "Nr of drills" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "Specify how many drills to be in the array." @@ -3106,14 +3203,14 @@ msgstr "Specify how many drills to be in the array." #: flatcamEditors/FlatCAMExcEditor.py:1927 #: flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 -#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2970 +#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "Direction" #: flatcamEditors/FlatCAMExcEditor.py:1663 #: flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -3129,8 +3226,8 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 #: flatcamEditors/FlatCAMGrbEditor.py:2733 flatcamGUI/PreferencesUI.py:1946 -#: flatcamGUI/PreferencesUI.py:2884 flatcamGUI/PreferencesUI.py:2979 -#: flatcamGUI/PreferencesUI.py:3032 flatcamGUI/PreferencesUI.py:4804 +#: flatcamGUI/PreferencesUI.py:2886 flatcamGUI/PreferencesUI.py:2981 +#: flatcamGUI/PreferencesUI.py:3034 flatcamGUI/PreferencesUI.py:4822 #: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" @@ -3139,8 +3236,8 @@ msgstr "X" #: flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 #: flatcamEditors/FlatCAMGrbEditor.py:2734 flatcamGUI/PreferencesUI.py:1947 -#: flatcamGUI/PreferencesUI.py:2885 flatcamGUI/PreferencesUI.py:2980 -#: flatcamGUI/PreferencesUI.py:3033 flatcamGUI/PreferencesUI.py:4805 +#: flatcamGUI/PreferencesUI.py:2887 flatcamGUI/PreferencesUI.py:2982 +#: flatcamGUI/PreferencesUI.py:3035 flatcamGUI/PreferencesUI.py:4823 #: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" @@ -3156,10 +3253,10 @@ msgstr "Y" #: flatcamEditors/FlatCAMGrbEditor.py:2735 #: flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -3168,14 +3265,14 @@ msgstr "Angle" #: flatcamEditors/FlatCAMExcEditor.py:1676 #: flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "Pitch" #: flatcamEditors/FlatCAMExcEditor.py:1678 #: flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "Pitch = Distance between elements of the array." @@ -3205,25 +3302,25 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 #: flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "CW" #: flatcamEditors/FlatCAMExcEditor.py:1720 #: flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "CCW" #: flatcamEditors/FlatCAMExcEditor.py:1724 #: flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "Angle at which each element in circular array is placed." @@ -3239,16 +3336,16 @@ msgstr "" "Parameters for adding a slot (hole with oval shape)\n" "either single or as an part of an array." -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "Length" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "Length = The length of the slot." -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -3288,11 +3385,11 @@ msgstr "" "Select the type of slot array to create.\n" "It can be Linear X(Y) or Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "Nr of slots" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "Specify how many slots to be in the array." @@ -3304,7 +3401,7 @@ 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:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "Added new tool with dia" @@ -3379,7 +3476,7 @@ msgid "Round" msgstr "Round" #: flatcamEditors/FlatCAMGeoEditor.py:96 -#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5971 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5989 #: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Square" @@ -3402,7 +3499,7 @@ msgid "Full Buffer" msgstr "Full Buffer" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Buffer Tool" @@ -3421,7 +3518,7 @@ msgstr "Buffer distance value is missing or wrong format. Add it and retry." msgid "Font" msgstr "Font" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "Text" @@ -3429,13 +3526,13 @@ msgstr "Text" msgid "Text Tool" msgstr "Text Tool" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "Tool dia" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -3443,25 +3540,14 @@ msgstr "" "Diameter of the tool to\n" "be used in the operation." -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "Overlap Rate" #: flatcamEditors/FlatCAMGeoEditor.py:457 #, python-format -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" @@ -3485,17 +3571,17 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "Margin" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3506,8 +3592,8 @@ msgstr "" "the edges of the polygon to\n" "be painted." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Method" @@ -3520,20 +3606,20 @@ msgstr "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Standard" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "Seed-based" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Straight lines" @@ -3542,8 +3628,8 @@ msgstr "Straight lines" msgid "Connect:" msgstr "Connect:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" @@ -3556,8 +3642,8 @@ msgstr "" msgid "Contour:" msgstr "Contour:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" "Cut around the perimeter of the polygon\n" @@ -3566,13 +3652,13 @@ msgstr "" "Cut around the perimeter of the polygon\n" "to trim rough edges." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Paint" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 -#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 +#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Paint Tool" @@ -3583,7 +3669,7 @@ msgstr "Paint cancelled. No shape selected." #: flatcamEditors/FlatCAMGeoEditor.py:599 #: flatcamEditors/FlatCAMGeoEditor.py:2786 #: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3138 +#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Tools" @@ -3591,15 +3677,15 @@ msgstr "Tools" #: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGeoEditor.py:994 #: flatcamEditors/FlatCAMGrbEditor.py:5011 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:751 -#: flatcamGUI/FlatCAMGUI.py:2195 flatcamTools/ToolTransform.py:371 +#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 +#: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Transform Tool" #: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5012 -#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5189 +#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Rotate" @@ -3611,10 +3697,10 @@ msgstr "Skew/Shear" #: flatcamEditors/FlatCAMGeoEditor.py:613 #: flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 -#: flatcamGUI/FlatCAMGUI.py:2271 flatcamGUI/ObjectUI.py:92 -#: flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/ObjectUI.py:92 +#: flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "Scale" @@ -3625,17 +3711,17 @@ msgid "Mirror (Flip)" msgstr "Mirror (Flip)" #: flatcamEditors/FlatCAMGeoEditor.py:615 -#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:124 -#: flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 +#: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "Offset" #: flatcamEditors/FlatCAMGeoEditor.py:628 -#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:698 -#: flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 +#: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Editor" @@ -3645,7 +3731,7 @@ msgid "Angle:" msgstr "Angle:" #: flatcamEditors/FlatCAMGeoEditor.py:662 -#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5199 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" @@ -3677,9 +3763,9 @@ msgstr "Angle X:" #: flatcamEditors/FlatCAMGeoEditor.py:703 #: flatcamEditors/FlatCAMGeoEditor.py:723 #: flatcamEditors/FlatCAMGrbEditor.py:5104 -#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5218 -#: flatcamGUI/PreferencesUI.py:5232 flatcamTools/ToolCalibration.py:445 -#: flatcamTools/ToolCalibration.py:458 +#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 +#: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 +#: flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -3721,7 +3807,7 @@ msgid "Factor X:" msgstr "Factor X:" #: flatcamEditors/FlatCAMGeoEditor.py:764 -#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Factor for Scale action over X axis." @@ -3749,7 +3835,7 @@ msgid "Factor Y:" msgstr "Factor Y:" #: flatcamEditors/FlatCAMGeoEditor.py:783 -#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Factor for Scale action over Y axis." @@ -3759,7 +3845,7 @@ msgid "Scale Y" msgstr "Scale Y" #: flatcamEditors/FlatCAMGeoEditor.py:802 -#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5268 +#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Link" @@ -3774,7 +3860,7 @@ msgstr "" "using the Scale Factor X for both axis." #: flatcamEditors/FlatCAMGeoEditor.py:810 -#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5276 +#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Scale Reference" @@ -4333,10 +4419,10 @@ msgstr "with diameter" msgid "Copy cancelled. No shape selected." msgstr "Copy cancelled. No shape selected." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 -#: flatcamGUI/FlatCAMGUI.py:3388 flatcamGUI/FlatCAMGUI.py:3401 -#: flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 +#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 +#: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Click on target point." @@ -4555,62 +4641,62 @@ msgstr "Done. Apertures Move completed." msgid "Done. Apertures copied." msgstr "Done. Apertures copied." -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "Gerber Editor" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "Apertures" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "Apertures Table for the Gerber Object." #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "Code" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "Type" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/PreferencesUI.py:6183 flatcamGUI/PreferencesUI.py:6212 -#: flatcamGUI/PreferencesUI.py:6314 flatcamTools/ToolCopperThieving.py:260 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/PreferencesUI.py:6201 flatcamGUI/PreferencesUI.py:6230 +#: flatcamGUI/PreferencesUI.py:6332 flatcamTools/ToolCopperThieving.py:260 #: flatcamTools/ToolCopperThieving.py:300 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Size" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "Dim" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "Index" #: flatcamEditors/FlatCAMGrbEditor.py:2415 -#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:251 +#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "Aperture Code" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Type of aperture: circular, rectangle, macros etc" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "Aperture Size:" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4718,9 +4804,9 @@ msgstr "" " - 'Beveled:' the corner is a line that directly connects the features " "meeting in the corner" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 -#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 +#: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "Buffer" @@ -4796,8 +4882,8 @@ msgstr "Clear" msgid "Clear all the markings." msgstr "Clear all the markings." -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "Add Pad Array" @@ -5011,9 +5097,9 @@ msgstr "" 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:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "All" @@ -5075,7 +5161,7 @@ msgid "Code Editor content copied to clipboard ..." msgstr "Code Editor content copied to clipboard ..." #: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 -#: flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "Toggle Panel" @@ -5127,7 +5213,7 @@ msgstr "Document\tD" msgid "Will create a new, empty Document Object." msgstr "Will create a new, empty Document Object." -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "Open" @@ -5136,15 +5222,15 @@ msgstr "Open" msgid "Open &Project ..." msgstr "Open &Project ..." -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "Open &Gerber ...\tCTRL+G" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "Open &Excellon ...\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "Open G-&Code ..." @@ -5164,22 +5250,22 @@ msgstr "Recent files" msgid "Scripting" msgstr "Scripting" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 -#: flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "New Script ..." -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 -#: flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 +#: flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "Open Script ..." -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 -#: flatcamGUI/FlatCAMGUI.py:2176 flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:2188 flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "Run Script ..." -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -5209,23 +5295,28 @@ msgstr "&DXF as Geometry Object ..." msgid "&DXF as Gerber Object ..." msgstr "&DXF as Gerber Object ..." -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +#| msgid "&SVG as Geometry Object ..." +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 as Geometry Object ..." + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "Export" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "Export &SVG ..." -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "Export DXF ..." -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "Export &PNG ..." -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -5235,11 +5326,11 @@ msgstr "" "the saved image will contain the visual \n" "information currently in FlatCAM Plot Area." -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "Export &Excellon ..." -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -5249,11 +5340,11 @@ msgstr "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Excellon Export." -#: flatcamGUI/FlatCAMGUI.py:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "Export &Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -5263,61 +5354,61 @@ msgstr "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Gerber Export." -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "Backup" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "Import Preferences from file ..." -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "Export Preferences to file ..." -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 -#: flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 +#: flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "Save" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "&Save Project ..." -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "Save Project &As ...\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "Save Project C&opy ..." -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "E&xit" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 -#: flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "Edit" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "Edit Object\tE" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "Close Editor\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "Conversion" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "&Join Geo/Gerber/Exc -> Geo" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -5331,28 +5422,28 @@ msgstr "" "- Geometry\n" "into a new combo Geometry object." -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "Join Excellon(s) -> Excellon" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 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:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "Join Gerber(s) -> Gerber" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 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:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "Convert Single to MultiGeo" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -5360,11 +5451,11 @@ msgstr "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." -#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "Convert Multi to SingleGeo" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -5372,696 +5463,702 @@ msgstr "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." -#: flatcamGUI/FlatCAMGUI.py:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "Convert Any to Geo" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "Convert Any to Gerber" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "&Copy\tCTRL+C" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "&Delete\tDEL" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "Se&t Origin\tO" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "Jump to Location\tJ" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "Toggle Units\tQ" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "&Select All\tCTRL+A" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "&Preferences\tSHIFT+P" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "Options" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "&Rotate Selection\tSHIFT+(R)" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "&Skew on X axis\tSHIFT+X" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "S&kew on Y axis\tSHIFT+Y" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "Flip on &X axis\tX" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "Flip on &Y axis\tY" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "View source\tALT+S" -#: flatcamGUI/FlatCAMGUI.py:369 +#: flatcamGUI/FlatCAMGUI.py:380 msgid "Tools DataBase\tCTRL+D" msgstr "Tools DataBase\tCTRL+D" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "View" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "Enable all plots\tALT+1" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "Disable all plots\tALT+2" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "Disable non-selected\tALT+3" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "&Zoom Fit\tV" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "&Zoom In\t=" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "&Zoom Out\t-" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "Redraw All\tF5" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "Toggle Code Editor\tSHIFT+E" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "&Toggle FullScreen\tALT+F10" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "&Toggle Plot Area\tCTRL+F10" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "&Toggle Project/Sel/Tool\t`" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "&Toggle Grid Snap\tG" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "&Toggle Grid Lines\tALT+G" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "&Toggle Axis\tSHIFT+G" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "Toggle Workspace\tSHIFT+W" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "Objects" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "&Command Line\tS" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "Help" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "Online Help\tF1" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "Report a bug" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "Excellon Specification" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "Gerber Specification" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "Shortcuts List\tF3" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "YouTube Channel\tF4" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "Add Circle\tO" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "Add Arc\tA" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "Add Rectangle\tR" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "Add Polygon\tN" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "Add Path\tP" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "Add Text\tT" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "Polygon Union\tU" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "Polygon Intersection\tE" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "Polygon Subtraction\tS" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "Cut Path\tX" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "Copy Geom\tC" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "Delete Shape\tDEL" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "Move\tM" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "Buffer Tool\tB" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "Paint Tool\tI" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "Transform Tool\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "Toggle Corner Snap\tK" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr ">Excellon Editor<" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "Add Drill Array\tA" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "Add Drill\tD" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "Add Slot Array\tQ" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "Add Slot\tW" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "Resize Drill(S)\tR" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "Copy\tC" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "Delete\tDEL" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "Move Drill(s)\tM" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr ">Gerber Editor<" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "Add Pad\tP" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "Add Pad Array\tA" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "Add Track\tT" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "Add Region\tN" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "Poligonize\tALT+N" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "Add SemiDisc\tE" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "Add Disc\tD" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "Buffer\tB" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "Scale\tS" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "Mark Area\tALT+A" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "Eraser\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "Transform\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "Enable Plot" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "Disable Plot" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "Generate CNC" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "View Source" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "Properties" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "File Toolbar" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "Edit Toolbar" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "View Toolbar" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "Shell Toolbar" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "Tools Toolbar" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "Excellon Editor Toolbar" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "Geometry Editor Toolbar" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "Gerber Editor Toolbar" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "Grid Toolbar" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "Open project" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "Save project" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "New Blank Geometry" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "New Blank Gerber" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "New Blank Excellon" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "Save Object and close the Editor" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "&Delete" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 -#: flatcamGUI/FlatCAMGUI.py:1653 flatcamGUI/FlatCAMGUI.py:2157 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1665 flatcamGUI/FlatCAMGUI.py:2169 #: flatcamTools/ToolDistance.py:30 flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "Distance Tool" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "Distance Min Tool" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 -#: flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "Set Origin" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "Jump to Location" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "&Replot" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "&Clear plot" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "Zoom In" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "Zoom Out" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 -#: flatcamGUI/FlatCAMGUI.py:1893 flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1905 flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "Zoom Fit" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "&Command Line" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "2Sided Tool" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 #: flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "Cutout Tool" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 -#: flatcamGUI/ObjectUI.py:550 flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 +#: flatcamGUI/ObjectUI.py:555 flatcamGUI/ObjectUI.py:1712 +#: flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "NCC Tool" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "Panel Tool" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "Film Tool" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "SolderPaste Tool" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 #: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Subtract Tool" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "Rules Tool" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 #: flatcamTools/ToolOptimal.py:34 flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "Optimal Tool" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "Calculators Tool" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 -#: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:2208 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "QRCode Tool" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 msgid "Copper Thieving Tool" msgstr "Copper Thieving Tool" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2212 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 msgid "Fiducials Tool" msgstr "Fiducials Tool" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 -#: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 -#: flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 +msgid "Calibration Tool" +msgstr "Calibration Tool" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 +#: flatcamGUI/FlatCAMGUI.py:830 flatcamGUI/FlatCAMGUI.py:2216 +#: flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "Select" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "Add Drill Hole" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "Add Drill Hole Array" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1960 flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "Add Slot" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "Add Slot Array" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 -#: flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 +#: flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "Resize Drill" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "Copy Drill" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "Delete Drill" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "Move Drill" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "Add Circle" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "Add Arc" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "Add Rectangle" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "Add Path" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "Add Polygon" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "Add Text" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "Add Buffer" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "Paint Shape" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 -#: flatcamGUI/FlatCAMGUI.py:1910 flatcamGUI/FlatCAMGUI.py:1938 -#: flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 +#: flatcamGUI/FlatCAMGUI.py:1922 flatcamGUI/FlatCAMGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "Eraser" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "Polygon Union" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "Polygon Explode" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "Polygon Intersection" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "Polygon Subtraction" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "Cut Path" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "Copy Shape(s)" -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "Delete Shape '-'" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 -#: flatcamGUI/FlatCAMGUI.py:1917 flatcamGUI/FlatCAMGUI.py:1942 -#: flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 +#: flatcamGUI/FlatCAMGUI.py:1929 flatcamGUI/FlatCAMGUI.py:1954 +#: flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "Transformations" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "Move Objects " -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "Add Pad" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 -#: flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "Add Track" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "Add Region" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 -#: flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 +#: flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "Poligonize" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 -#: flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 +#: flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "SemiDisc" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 -#: flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "Disc" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 -#: flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "Mark Area" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1961 -#: flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:1973 +#: flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "Move" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "Snap to grid" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "Grid X snapping distance" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "Grid Y snapping distance" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -6069,66 +6166,67 @@ msgstr "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "Snap to corner" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "Max. magnet distance" -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 +#: flatcamGUI/FlatCAMGUI.py:909 flatcamGUI/FlatCAMGUI.py:1899 msgid "Project" msgstr "Project" -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Selected" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "Plot Area" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "General" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "GERBER" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "GEOMETRY" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "CNC-JOB" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "TOOLS" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "TOOLS 2" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "UTILITIES" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "Import Preferences" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -6142,11 +6240,11 @@ msgstr "" "FlatCAM automatically save a 'factory_defaults' file\n" "on the first start. Do not delete that file." -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "Export Preferences" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." @@ -6154,23 +6252,23 @@ msgstr "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "Open Pref Folder" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 msgid "Open the folder where FlatCAM save the preferences files." msgstr "Open the folder where FlatCAM save the preferences files." -#: flatcamGUI/FlatCAMGUI.py:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" msgstr "Apply" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." msgstr "Apply the current preferences without saving to a file." -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -6178,527 +6276,527 @@ msgstr "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." -#: flatcamGUI/FlatCAMGUI.py:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 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:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "SHOW SHORTCUT LIST" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "Switch to Project Tab" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "Switch to Selected Tab" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "Switch to Tool Tab" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "New Gerber" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "Edit Object (if selected)" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "Jump to Coordinates" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "New Excellon" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "Move Obj" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "New Geometry" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "Change Units" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "Open Properties Tool" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "Rotate by 90 degree CW" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "Shell Toggle" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 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:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "Flip on X_axis" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "Flip on Y_axis" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "Copy Obj" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Open Tools Database" msgstr "Open Tools Database" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "Open Excellon File" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "Open Gerber File" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "New Project" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "PDF Import Tool" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "Save Project As" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "Toggle Plot Area" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "Copy Obj_Name" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "Toggle Code Editor" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "Toggle the axis" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 -#: flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 +#: flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "Distance Minimum Tool" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "Open Preferences Window" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "Rotate by 90 degree CCW" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "Run a Script" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "Toggle the workspace" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "Skew on X axis" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "Skew on Y axis" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "2-Sided PCB Tool" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "Transformations Tool" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "Solder Paste Dispensing Tool" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "Film PCB Tool" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "Non-Copper Clearing Tool" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "Paint Area Tool" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "Rules Check Tool" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "View File Source" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "Cutout PCB Tool" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "Enable all Plots" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "Disable all Plots" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "Disable Non-selected Plots" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "Toggle Full Screen" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "Abort current task (gracefully)" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "Open Online Manual" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "Open Online Tutorials" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "Refresh Plots" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "Delete Object" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "Alternate: Delete Tool" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "(left to Key_1)Toogle Notebook Area (Left Side)" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "En(Dis)able Obj Plot" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "Deselects all objects" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "Editor Shortcut list" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "GEOMETRY EDITOR" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "Draw an Arc" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "Copy Geo Item" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 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:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "Polygon Intersection Tool" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "Geo Paint Tool" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "Jump to Location (x, y)" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "Toggle Corner Snap" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "Move Geo Item" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Within Add Arc will cycle through the ARC modes" msgstr "Within Add Arc will cycle through the ARC modes" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "Draw a Polygon" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "Draw a Circle" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "Draw a Path" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "Draw Rectangle" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "Polygon Subtraction Tool" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "Add Text Tool" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "Polygon Union Tool" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "Flip shape on X axis" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "Flip shape on Y axis" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "Skew shape on X axis" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "Skew shape on Y axis" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "Editor Transformation Tool" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "Offset shape on X axis" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "Offset shape on Y axis" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "Save Object and Exit Editor" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "Polygon Cut Tool" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "Rotate Geometry" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "Finish drawing for certain tools" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "Abort and return to Select" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "Delete Shape" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "EXCELLON EDITOR" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "Copy Drill(s)" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "Add Drill" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "Move Drill(s)" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "Add a new Tool" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "Delete Drill(s)" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "Alternate: Delete Tool(s)" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "GERBER EDITOR" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "Add Disc" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "Add SemiDisc" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 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:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 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:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "Alternate: Delete Apertures" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "Eraser Tool" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "Mark Area Tool" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "Poligonize Tool" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "Transformation Tool" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "Toggle Visibility" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "New" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "Geometry" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "Grids" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "Clear Plot" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "Replot" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "Geo Editor" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "Path" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "Rectangle" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "Circle" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "Polygon" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "Arc" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "Union" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "Intersection" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "Subtraction" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "Cut" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "Pad" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "Pad Array" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "Track" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "Region" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "Exc Editor" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" @@ -6706,7 +6804,7 @@ msgstr "" "Relative neasurement.\n" "Reference is last click position" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" @@ -6714,27 +6812,27 @@ msgstr "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "Lock Toolbars" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "&Cutout Tool" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "Select 'Esc'" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "Copy Objects" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "Move Objects" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6746,12 +6844,12 @@ msgstr "" "out of the first item. In the end press ~X~ key or\n" "the toolbar button." -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 -#: flatcamGUI/FlatCAMGUI.py:3010 flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 +#: flatcamGUI/FlatCAMGUI.py:3023 flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "Warning" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -6759,7 +6857,7 @@ msgstr "" "Please select geometry items \n" "on which to perform Intersection Tool." -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -6767,7 +6865,7 @@ msgstr "" "Please select geometry items \n" "on which to perform Substraction Tool." -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." @@ -6775,52 +6873,52 @@ msgstr "" "Please select geometry items \n" "on which to perform union." -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "Cancelled. Nothing selected to delete." -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "Cancelled. Nothing selected to copy." -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "Cancelled. Nothing selected to move." -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "New Tool ..." -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "Enter a Tool Diameter" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "Adding Tool cancelled ..." -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "Distance Tool exit..." -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "Idle." -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "Application started ..." -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "Hello!" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "Open Project ..." -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "Exit" @@ -6855,87 +6953,98 @@ msgid "Factor" msgstr "Factor" #: flatcamGUI/ObjectUI.py:102 +#| msgid "" +#| "Factor by which to multiply\n" +#| "geometric features of this object." msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"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." +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "Perform scaling operation." -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "Change the position of this object." -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "Vector" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 +#| msgid "" +#| "Amount by which to move the object\n" +#| "in the x and y axes in (x, y) format." msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"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." +"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:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "Perform the offset operation." -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "Gerber Object" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 -#: flatcamGUI/ObjectUI.py:1083 flatcamGUI/ObjectUI.py:1663 -#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 -#: flatcamGUI/PreferencesUI.py:3110 flatcamGUI/PreferencesUI.py:3599 -msgid "Plot Options" -msgstr "Plot Options" - -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 -#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 -#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:190 -msgid "Solid" -msgstr "Solid" - -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 -msgid "Solid color polygons." -msgstr "Solid color polygons." - -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" -msgstr "M-Color" - -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 -msgid "Draw polygons in different colors." -msgstr "Draw polygons in different colors." - -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 -#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 -#: flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "Plot" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 -#: flatcamGUI/ObjectUI.py:1129 flatcamGUI/ObjectUI.py:1773 -#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3116 -#: flatcamGUI/PreferencesUI.py:3610 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 +#: flatcamGUI/ObjectUI.py:1166 flatcamGUI/ObjectUI.py:1855 +#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3118 +#: flatcamGUI/PreferencesUI.py:3628 msgid "Plot (show) this object." msgstr "Plot (show) this object." -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 -#: flatcamGUI/ObjectUI.py:1089 flatcamGUI/ObjectUI.py:1693 -#: flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 +#: flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "Plot" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 +#: flatcamGUI/ObjectUI.py:1120 flatcamGUI/ObjectUI.py:1745 +#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 +#: flatcamGUI/PreferencesUI.py:3112 flatcamGUI/PreferencesUI.py:3617 +msgid "Plot Options" +msgstr "Plot Options" + +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 +#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 +#: flatcamGUI/PreferencesUI.py:6153 flatcamTools/ToolCopperThieving.py:190 +msgid "Solid" +msgstr "Solid" + +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 +msgid "Solid color polygons." +msgstr "Solid color polygons." + +#: flatcamGUI/ObjectUI.py:192 +#| msgid "M-Color" +msgid "Multi-Color" +msgstr "Multi-Color" + +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 +msgid "Draw polygons in different colors." +msgstr "Draw polygons in different colors." + +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 +#: flatcamGUI/ObjectUI.py:1126 flatcamGUI/ObjectUI.py:1775 +#: flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Name" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -6945,11 +7054,11 @@ msgstr "" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas." -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "Mark All" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -6959,15 +7068,15 @@ msgstr "" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas." -#: flatcamGUI/ObjectUI.py:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "Mark the aperture instances on canvas." -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "Isolation Routing" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." @@ -6975,7 +7084,7 @@ msgstr "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -6987,30 +7096,30 @@ msgstr "" "When the 'V-shape' is selected then the tool\n" "diameter will depend on the chosen cut depth." -#: flatcamGUI/ObjectUI.py:296 +#: flatcamGUI/ObjectUI.py:301 msgid "V-Shape" msgstr "V-Shape" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 -#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:3992 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 +#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:4010 #: flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "V-Tip Dia" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 -#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:3994 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 +#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:4012 #: flatcamTools/ToolNonCopperClear.py:233 msgid "The tip diameter for V-Shape Tool" msgstr "The tip diameter for V-Shape Tool" -#: flatcamGUI/ObjectUI.py:315 flatcamGUI/ObjectUI.py:1313 -#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4004 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 +#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4022 #: flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "V-Tip Angle" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 -#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4006 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 +#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4024 #: flatcamTools/ToolNonCopperClear.py:244 msgid "" "The tip angle for V-Shape Tool.\n" @@ -7019,9 +7128,9 @@ msgstr "" "The tip angle for V-Shape Tool.\n" "In degree." -#: flatcamGUI/ObjectUI.py:331 flatcamGUI/ObjectUI.py:1332 -#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3179 -#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCutOut.py:135 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 +#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3181 +#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7029,7 +7138,7 @@ msgstr "" "Cutting depth (negative)\n" "below the copper surface." -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -7043,11 +7152,11 @@ msgstr "" "feature, use a negative value for\n" "this parameter." -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "# Passes" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." @@ -7055,25 +7164,22 @@ msgstr "" "Width of the isolation gap in\n" "number (integer) of tool widths." -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "Pass overlap" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 -#| msgid "" -#| "How much (fraction) of the tool\n" -#| "width to overlap each tool pass." +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "How much (fraction) of the tool width to overlap each tool pass." -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "Milling Type" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 msgid "" "Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -7083,29 +7189,29 @@ msgstr "" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" -#: flatcamGUI/ObjectUI.py:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "Climb" -#: flatcamGUI/ObjectUI.py:394 +#: flatcamGUI/ObjectUI.py:399 msgid "Conventional" msgstr "Conventional" -#: flatcamGUI/ObjectUI.py:399 +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "Combine" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "Combine all passes into one object" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "\"Follow\"" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" @@ -7115,11 +7221,11 @@ msgstr "" "This means that it will cut through\n" "the middle of the trace." -#: flatcamGUI/ObjectUI.py:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "Except" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" @@ -7129,12 +7235,12 @@ msgstr "" "by checking this, the area of the object bellow\n" "will be subtracted from the isolation geometry." -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "Obj Type" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -7146,22 +7252,22 @@ msgstr "" "What is selected here will dictate the kind\n" "of objects that will populate the 'Object' combobox." -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "Object" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 msgid "Object whose area will be removed from isolation geometry." msgstr "Object whose area will be removed from isolation geometry." -#: flatcamGUI/ObjectUI.py:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" msgstr "Scope" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 msgid "" "Isolation scope. Choose what to isolate:\n" "- 'All' -> Isolate all the polygons in the object\n" @@ -7171,16 +7277,16 @@ msgstr "" "- 'All' -> Isolate all the polygons in the object\n" "- 'Selection' -> Isolate a selection of polygons." -#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "Selection" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 msgid "Isolation Type" msgstr "Isolation Type" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -7200,24 +7306,24 @@ msgstr "" "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:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "Full" -#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/ObjectUI.py:492 msgid "Ext" msgstr "Ext" -#: flatcamGUI/ObjectUI.py:488 +#: flatcamGUI/ObjectUI.py:493 msgid "Int" msgstr "Int" -#: flatcamGUI/ObjectUI.py:493 +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "Generate Isolation Geometry" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -7239,11 +7345,11 @@ msgstr "" "inside the actual Gerber feature, use a negative tool\n" "diameter above." -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "Buffer Solid Geometry" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -7255,11 +7361,11 @@ msgstr "" "Clicking this will create the buffered geometry\n" "required for isolation." -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "Clear N-copper" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." @@ -7267,7 +7373,8 @@ msgstr "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -7275,11 +7382,11 @@ msgstr "" "Create the Geometry Object\n" "for non-copper routing." -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "Board cutout" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7289,7 +7396,7 @@ msgstr "" "the PCB and separate it from\n" "the original board." -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." @@ -7297,11 +7404,11 @@ msgstr "" "Generate the geometry for\n" "the board cutout." -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "Non-copper regions" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -7315,12 +7422,12 @@ msgstr "" "object. Can be used to remove all\n" "copper from a specified region." -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 #: flatcamGUI/PreferencesUI.py:1534 flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "Boundary Margin" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -7332,27 +7439,27 @@ msgstr "" "objects with this minimum\n" "distance." -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 #: flatcamGUI/PreferencesUI.py:1549 flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "Rounded Geo" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "Resulting geometry will have rounded corners." -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 #: flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "Generate Geo" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Bounding Box" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -7360,7 +7467,7 @@ msgstr "" "Create a geometry surrounding the Gerber object.\n" "Square shape." -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -7368,7 +7475,7 @@ msgstr "" "Distance of the edges of the box\n" "to the nearest polygon." -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -7380,32 +7487,33 @@ msgstr "" "their radius is equal to\n" "the margin." -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "Generate the Geometry object." -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "Excellon Object" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "Solid circles." -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "Drills" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 -#: flatcamTools/ToolProperties.py:162 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:2952 flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "Slots" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "Offset Z" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7419,7 +7527,7 @@ msgstr "" "\n" "Here the tools are selected for G-code generation." -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 #: flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" @@ -7428,7 +7536,7 @@ msgstr "" "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -7436,7 +7544,7 @@ msgstr "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." -#: flatcamGUI/ObjectUI.py:752 +#: flatcamGUI/ObjectUI.py:769 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -7444,7 +7552,7 @@ msgstr "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." -#: flatcamGUI/ObjectUI.py:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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" @@ -7454,7 +7562,7 @@ msgstr "" "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:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -7462,12 +7570,12 @@ msgstr "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." -#: flatcamGUI/ObjectUI.py:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "Create CNC Job" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." @@ -7475,7 +7583,7 @@ msgstr "" "Create a CNC Job object\n" "for this drill object." -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -7483,7 +7591,7 @@ msgstr "" "Drill depth (negative)\n" "below the copper surface." -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -7491,12 +7599,12 @@ msgstr "" "Tool height when travelling\n" "across the XY plane." -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 -#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 +#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "Tool change" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -7504,12 +7612,12 @@ msgstr "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "Tool change Z" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 -#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 +#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." @@ -7517,12 +7625,12 @@ msgstr "" "Z-axis position (height) for\n" "tool change." -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "Start move Z" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -7530,13 +7638,13 @@ msgstr "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 -#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 +#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "End move Z" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 -#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 +#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3288 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -7544,13 +7652,13 @@ msgstr "" "Height of the tool after\n" "the last move at the end of the job." -#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1469 -#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3319 -#: flatcamGUI/PreferencesUI.py:5479 flatcamTools/ToolSolderPaste.py:264 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 +#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/PreferencesUI.py:5497 flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "Feedrate Z" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7562,12 +7670,12 @@ msgstr "" "So called 'Plunge' feedrate.\n" "This is for linear move G01." -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 -#: flatcamGUI/PreferencesUI.py:2583 flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 +#: flatcamGUI/PreferencesUI.py:2585 flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "Feedrate Rapids" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7581,12 +7689,12 @@ msgstr "" "It is useful only for Marlin,\n" "ignore for any other cases." -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 -#: flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 +#: flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "Spindle speed" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -7594,8 +7702,8 @@ msgstr "" "Speed of the spindle\n" "in RPM (optional)" -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 -#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/PreferencesUI.py:2441 flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7603,12 +7711,12 @@ msgstr "" "Pause to allow the spindle to reach its\n" "speed before cutting." -#: flatcamGUI/ObjectUI.py:931 flatcamGUI/ObjectUI.py:1541 -#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 +#: flatcamGUI/PreferencesUI.py:2446 flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "Number of time units for spindle to dwell." -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7616,13 +7724,13 @@ msgstr "" "The preprocessor JSON file that dictates\n" "Gcode output." -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 -#: flatcamGUI/PreferencesUI.py:2599 flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 +#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "Probe Z depth" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 -#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 +#: flatcamGUI/PreferencesUI.py:2603 flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7630,21 +7738,21 @@ msgstr "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 -#: flatcamGUI/PreferencesUI.py:2612 flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 +#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "Feedrate Probe" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 -#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 +#: flatcamGUI/PreferencesUI.py:2616 flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "The feedrate used while the probe is probing." -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "Gcode" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7656,19 +7764,19 @@ msgstr "" "When choosing 'Slots' or 'Both', slots will be\n" "converted to a series of drills." -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "Create Drills GCode" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "Generate the CNC Job." -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "Mill Holes" -#: flatcamGUI/ObjectUI.py:1019 +#: flatcamGUI/ObjectUI.py:1044 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" @@ -7678,20 +7786,20 @@ msgstr "" "Select from the Tools Table above the hole dias to be\n" "milled. Use the # column to make the selection." -#: flatcamGUI/ObjectUI.py:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "Drill Tool dia" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "Diameter of the cutting tool." -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "Mill Drills Geo" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -7699,11 +7807,11 @@ msgstr "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "Slot Tool dia" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7711,11 +7819,11 @@ msgstr "" "Diameter of the cutting tool\n" "when milling slots." -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "Mill Slots Geo" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -7723,11 +7831,11 @@ msgstr "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "Geometry Object" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -7755,22 +7863,23 @@ msgstr "" "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:1127 flatcamGUI/ObjectUI.py:1771 -#: flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 +#: flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "Plot Object" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 -#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 +#: flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:6172 +#: flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "Dia" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "TT" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7780,7 +7889,7 @@ msgstr "" "When ToolChange is checked, on toolchange event this value\n" "will be showed as a T1, T2 ... Tn" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -7796,7 +7905,7 @@ msgstr "" "'pocket'.\n" "- Out(side) -> The tool cut will follow the geometry line on the outside." -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -7816,7 +7925,7 @@ msgstr "" "For Isolation we need a lower Feedrate as it use a milling bit with a fine " "tip." -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -7846,7 +7955,7 @@ msgstr "" "Choosing the V-Shape Tool Type automatically will select the Operation Type " "as Isolation." -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -7864,7 +7973,7 @@ msgstr "" "plot on canvas\n" "for the corresponding tool." -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -7876,7 +7985,7 @@ msgstr "" "The value can be positive for 'outside'\n" "cut and negative for 'inside' cut." -#: flatcamGUI/ObjectUI.py:1230 +#: flatcamGUI/ObjectUI.py:1267 msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." @@ -7884,11 +7993,11 @@ msgstr "" "Add a new tool to the Tool Table\n" "with the specified diameter." -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" msgstr "Add Tool from DataBase" -#: flatcamGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1277 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." @@ -7896,7 +8005,7 @@ msgstr "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7904,7 +8013,7 @@ msgstr "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." -#: flatcamGUI/ObjectUI.py:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7912,7 +8021,7 @@ msgstr "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." -#: flatcamGUI/ObjectUI.py:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -7920,13 +8029,13 @@ msgstr "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "Multi-Depth" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -7938,12 +8047,12 @@ msgstr "" "cut multiple times until Cut Z is\n" "reached." -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "Depth of each pass (positive)." -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." @@ -7951,7 +8060,7 @@ msgstr "" "Height of the tool when\n" "moving without cutting." -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -7959,12 +8068,12 @@ msgstr "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "Feedrate X-Y" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -7972,7 +8081,7 @@ msgstr "" "Cutting speed in the XY\n" "plane in units per minute" -#: flatcamGUI/ObjectUI.py:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -7982,7 +8091,7 @@ msgstr "" "plane in units per minute.\n" "It is called also Plunge." -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -7996,11 +8105,13 @@ msgstr "" "It is useful only for Marlin,\n" "ignore for any other cases." -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." -msgstr "Re-cut 1st pt." +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +#| msgid "Re-cut 1st pt." +msgid "Re-cut" +msgstr "Re-cut" -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 +#: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -8012,7 +8123,7 @@ msgstr "" "meet with last cut, we generate an\n" "extended cut over the first cut section." -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -8022,12 +8133,12 @@ msgstr "" "If LASER preprocessor is used,\n" "this value is the power of laser." -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "PostProcessor" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -8035,11 +8146,11 @@ msgstr "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." -#: flatcamGUI/ObjectUI.py:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" msgstr "Apply parameters to all tools" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." @@ -8047,7 +8158,7 @@ msgstr "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." -#: flatcamGUI/ObjectUI.py:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" @@ -8057,44 +8168,39 @@ msgstr "" "Click the header to select all, or Ctrl + LMB\n" "for custom selection of tools." -#: flatcamGUI/ObjectUI.py:1616 -#| msgid "Generate the CNC Job object." +#: flatcamGUI/ObjectUI.py:1670 msgid "Generate CNCJob object" msgstr "Generate CNCJob object" -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "Generate the CNC Job object." -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" -msgstr "Paint Area" - -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 -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:1639 +#: flatcamGUI/ObjectUI.py:1689 msgid "Launch Paint Tool in Tools Tab." msgstr "Launch Paint Tool in Tools Tab." -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 +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:1737 msgid "CNC Job Object" msgstr "CNC Job Object" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "Plot kind" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -8106,15 +8212,15 @@ msgstr "" "above the work piece or it can be of type 'Cut',\n" "which means the moves that cut into the material." -#: flatcamGUI/ObjectUI.py:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "Travel" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "Display Annotation" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -8124,11 +8230,11 @@ msgstr "" "When checked it will display numbers in order for each end\n" "of a travel line." -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." msgstr "Travelled dist." -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -8136,11 +8242,11 @@ msgstr "" "This is the total travelled distance on X-Y plane.\n" "In current units." -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "Estimated time" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -8148,11 +8254,11 @@ msgstr "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." -#: flatcamGUI/ObjectUI.py:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "CNC Tools Table" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -8174,24 +8280,24 @@ msgstr "" "The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" "ball(B), or V-Shaped(V)." -#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "P" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "Update Plot" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "Update the plot." -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "Export CNC Code" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -8199,11 +8305,11 @@ msgstr "" "Export and save G-Code to\n" "make this object to a file." -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "Prepend to CNC Code" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3776 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8211,7 +8317,7 @@ msgstr "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 +#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would like to add at the beginning of the " "G-Code file." @@ -8219,11 +8325,11 @@ msgstr "" "Type here any G-Code commands you would like to add at the beginning of the " "G-Code file." -#: flatcamGUI/ObjectUI.py:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Append to CNC Code" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/PreferencesUI.py:3792 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8233,7 +8339,7 @@ msgstr "" "like to append to the generated file.\n" "I.e.: M2 (End of program)" -#: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 +#: flatcamGUI/ObjectUI.py:1929 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would like to append to the generated " "file. I.e.: M2 (End of program)" @@ -8241,11 +8347,11 @@ msgstr "" "Type here any G-Code commands you would like to append to the generated " "file. I.e.: M2 (End of program)" -#: flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "Toolchange G-Code" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8267,7 +8373,7 @@ msgstr "" "that has 'toolchange_custom' in it's name and this is built\n" "having as template the 'Toolchange Custom' posprocessor file." -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 msgid "" "Type here any G-Code commands you would like to be executed when Toolchange " "event is encountered. This will constitute a Custom Toolchange GCode, or a " @@ -8281,11 +8387,11 @@ msgstr "" "WARNING: it can be used only with a preprocessor file that has " "'toolchange_custom' in it's name." -#: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "Use Toolchange Macro" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -8293,7 +8399,7 @@ msgstr "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -8303,73 +8409,73 @@ msgstr "" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "Parameters" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "FlatCAM CNC parameters" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "tool number" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "tool diameter" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "for Excellon, total number of drills" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" msgstr "X coord for Toolchange" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" msgstr "Y coord for Toolchange" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "Z coord for Toolchange" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "depth where to cut" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "height where to travel" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "the step value for multidepth cut" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "the value for the spindle speed" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 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:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "View CNC Code" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." @@ -8377,11 +8483,11 @@ msgstr "" "Opens TAB to view/modify/print G-Code\n" "file." -#: flatcamGUI/ObjectUI.py:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "Save CNC Code" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 msgid "" "Opens dialog to save G-Code\n" "file." @@ -8389,75 +8495,75 @@ msgstr "" "Opens dialog to save G-Code\n" "file." -#: flatcamGUI/ObjectUI.py:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "Script Object" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "Auto Completer" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 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:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "Document Object" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 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:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "Font Type" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "Font Size" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "Alignment" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "Align Left" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "Center" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "Align Right" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "Justify" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "Font Color" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "Set the font color for the selected text" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "Selection Color" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 msgid "Set the selection color when doing text selection." msgstr "Set the selection color when doing text selection." -#: flatcamGUI/ObjectUI.py:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "Tab Size" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "Set the tab size. In pixels. Default value is 80 pixels." @@ -8531,12 +8637,12 @@ msgstr "" "- Portrait\n" "- Landscape" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" msgstr "Portrait" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" msgstr "Landscape" @@ -8927,7 +9033,7 @@ msgid "App Preferences" msgstr "App Preferences" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -8945,7 +9051,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" @@ -8955,7 +9061,6 @@ msgid "IN" msgstr "IN" #: flatcamGUI/PreferencesUI.py:1074 -#| msgid "Precision" msgid "Precision MM" msgstr "Precision MM" @@ -8970,7 +9075,6 @@ msgstr "" "Any change here require an application restart." #: flatcamGUI/PreferencesUI.py:1088 -#| msgid "Precision" msgid "Precision INCH" msgstr "Precision INCH" @@ -9264,8 +9368,12 @@ msgstr "" msgid "Gerber General" msgstr "Gerber General" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "Circle Steps" @@ -9296,13 +9404,13 @@ msgstr "The units used in the Gerber file." #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "INCH" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "Zeros" @@ -9322,13 +9430,13 @@ msgstr "" "and Leading Zeros are kept." #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" @@ -9337,8 +9445,8 @@ msgstr "TZ" msgid "Gerber Options" msgstr "Gerber Options" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "Conv." @@ -9350,8 +9458,8 @@ msgstr "Combine Passes" msgid "Gerber Adv. Options" msgstr "Gerber Adv. Options" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "Advanced Options" @@ -9399,8 +9507,8 @@ msgstr "" "- Full --> slow file loading but good visuals. This is the default.\n" "<>: Don't change this unless you know what you are doing !!!" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -9433,7 +9541,7 @@ msgstr "Tolerance for polygon simplification." msgid "Gerber Export" msgstr "Gerber Export" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "Export Options" @@ -9445,7 +9553,7 @@ msgstr "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Gerber menu entry." -#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "Int/Decimals" @@ -9477,8 +9585,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "A list of Gerber Editor parameters." -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "Selection limit" @@ -9524,8 +9632,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "Aperture Dimensions" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "Diameters of the cutting tools, separated by ','" @@ -9533,8 +9641,8 @@ msgstr "Diameters of the cutting tools, separated by ','" msgid "Linear Pad Array" msgstr "Linear Pad Array" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "Linear Direction" @@ -9542,13 +9650,13 @@ msgstr "Linear Direction" msgid "Circular Pad Array" msgstr "Circular Pad Array" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "Circular Direction" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -9556,8 +9664,8 @@ msgstr "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "Circular Angle" @@ -9644,7 +9752,7 @@ msgid "Default values for INCH are 2:4" msgstr "Default values for INCH are 2:4" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -9653,7 +9761,7 @@ msgstr "" "the whole part of Excellon coordinates." #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -9673,7 +9781,7 @@ msgstr "Default values for METRIC are 3:3" msgid "Default Zeros" msgstr "Default Zeros" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -9799,11 +9907,11 @@ msgstr "" "Parameters used to create a CNC Job object\n" "for this drill object." -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "Duration" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -9815,19 +9923,19 @@ msgstr "" "When choosing 'Slots' or 'Both', slots will be\n" "converted to drills." -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "Create Geometry for milling holes." -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "Defaults" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "Excellon Adv. Options" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -9837,20 +9945,19 @@ msgstr "" "Those parameters are available only for\n" "Advanced App. Level." -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "Toolchange X,Y" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "Toolchange X,Y position." -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 -#| msgid "Spindle dir." +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 msgid "Spindle direction" msgstr "Spindle direction" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -9862,11 +9969,11 @@ msgstr "" "- CW = clockwise or\n" "- CCW = counter clockwise" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "Fast Plunge" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -9878,11 +9985,11 @@ msgstr "" "meaning the fastest speed available.\n" "WARNING: the move is done at Toolchange X,Y coords." -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "Fast Retract" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -9898,11 +10005,11 @@ msgstr "" " - 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/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "Excellon Export" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -9910,11 +10017,11 @@ msgstr "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "The units used in the Excellon file." -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -9926,11 +10033,11 @@ msgstr "" "Here we set the format used when the provided\n" "coordinates are not using period." -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "Format" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -9946,15 +10053,15 @@ msgstr "" "Also it will have to be specified if LZ = leading zeros are kept\n" "or TZ = trailing zeros are kept." -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "Decimal" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "No-Decimal" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -9968,11 +10075,11 @@ msgstr "" "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed." -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "Slot type" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -9986,19 +10093,19 @@ msgstr "" "If DRILLED(G85) the slots will be exported\n" "using the Drilled slot command (G85)." -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "Routed" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "Drilled(G85)" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "A list of Excellon Editor parameters." -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -10012,19 +10119,19 @@ msgstr "" "Increases the performance when moving a\n" "large number of geometric elements." -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "New Tool Dia" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "Linear Drill Array" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "Circular Drill Array" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -10036,19 +10143,19 @@ msgstr "" "Min value is: -359.99 degrees.\n" "Max value is: 360.00 degrees." -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "Linear Slot Array" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "Circular Slot Array" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "Geometry General" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -10056,11 +10163,11 @@ msgstr "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "Geometry Options" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -10070,11 +10177,11 @@ msgstr "" "tracing the contours of this\n" "Geometry object." -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "Depth/Pass" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -10088,11 +10195,11 @@ msgstr "" "it is a fraction from the depth\n" "which has negative value." -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "Geometry Adv. Options" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -10102,12 +10209,13 @@ msgstr "" "Those parameters are available only for\n" "Advanced App. Level." -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "Toolchange X-Y" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -10115,12 +10223,11 @@ msgstr "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." -#: flatcamGUI/PreferencesUI.py:3508 -#| msgid "Seg. X size" +#: flatcamGUI/PreferencesUI.py:3526 msgid "Segment X size" msgstr "Segment X size" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -10130,12 +10237,11 @@ msgstr "" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." -#: flatcamGUI/PreferencesUI.py:3524 -#| msgid "Seg. Y size" +#: flatcamGUI/PreferencesUI.py:3542 msgid "Segment Y size" msgstr "Segment Y size" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -10145,15 +10251,15 @@ msgstr "" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "Geometry Editor" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "A list of Geometry Editor parameters." -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -10167,11 +10273,11 @@ msgstr "" "Increases the performance when moving a\n" "large number of geometric elements." -#: flatcamGUI/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "CNC Job General" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -10179,11 +10285,11 @@ msgstr "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "Travel dia" -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 msgid "" "The width of the travel lines to be\n" "rendered in the plot." @@ -10191,11 +10297,11 @@ msgstr "" "The width of the travel lines to be\n" "rendered in the plot." -#: flatcamGUI/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "Coordinates decimals" -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -10203,11 +10309,11 @@ msgstr "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "Feedrate decimals" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -10215,11 +10321,11 @@ msgstr "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" -#: flatcamGUI/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "Coordinates type" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -10231,19 +10337,19 @@ msgstr "" "- Absolute G90 -> the reference is the origin x=0, y=0\n" "- Incremental G91 -> the reference is the previous position" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "Absolute G90" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "Incremental G91" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" msgstr "Force Windows style line-ending" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." @@ -10251,63 +10357,63 @@ msgstr "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." -#: flatcamGUI/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "CNC Job Options" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "Export G-Code" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "Prepend to G-Code" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "Append to G-Code" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "CNC Job Adv. Options" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" msgstr "Z depth for the cut" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" msgstr "Z height for travel" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 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/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "Annotation Size" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 msgid "The font size of the annotation text. In pixels." msgstr "The font size of the annotation text. In pixels." -#: flatcamGUI/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "Annotation Color" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "Set the font color for the annotation texts." -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "NCC Tool Options" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "Tools dia" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolNonCopperClear.py:223 msgid "" @@ -10319,11 +10425,11 @@ msgstr "" "- 'V-shape'\n" "- Circular" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "V-shape" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 #: flatcamTools/ToolNonCopperClear.py:264 msgid "" @@ -10333,11 +10439,11 @@ msgstr "" "Depth of cut into material. Negative value.\n" "In FlatCAM units." -#: flatcamGUI/PreferencesUI.py:4039 +#: flatcamGUI/PreferencesUI.py:4057 msgid "The new tool diameter (cut width) to add in the tool table." msgstr "The new tool diameter (cut width) to add in the tool table." -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 #: flatcamTools/ToolNonCopperClear.py:172 msgid "" @@ -10349,13 +10455,13 @@ msgstr "" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "Tool order" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 #: flatcamTools/ToolNonCopperClear.py:192 flatcamTools/ToolPaint.py:154 #: flatcamTools/ToolPaint.py:164 @@ -10376,28 +10482,17 @@ msgstr "" "WARNING: using rest machining will automatically set the order\n" "in reverse and disable this control." -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "Forward" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "Reverse" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be cleared are still \n" -#| "not cleared.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10415,14 +10510,14 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "Bounding box margin." -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -10433,22 +10528,22 @@ msgstr "" "
Seed-based: Outwards from seed.
Line-based: Parallel " "lines." -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "Connect" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "Contour" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "Rest M." -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -10466,7 +10561,7 @@ msgstr "" "no more copper to clear or there are no more tools.\n" "If not checked, use the standard algorithm." -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -10479,11 +10574,11 @@ msgstr "" "from the copper features.\n" "The value can be between 0 and 10 FlatCAM units." -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "Offset value" -#: flatcamGUI/PreferencesUI.py:4192 +#: flatcamGUI/PreferencesUI.py:4210 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10495,26 +10590,26 @@ msgstr "" "from the copper features.\n" "The value can be between 0.0 and 9999.9 FlatCAM units." -#: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 #: flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "Itself" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "Area" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "Ref" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "Reference" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -10534,19 +10629,19 @@ msgstr "" "- 'Reference Object' - will do non copper clearing within the area\n" "specified by another object." -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "Normal" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "Progressive" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "NCC Plotting" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 msgid "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10554,16 +10649,16 @@ msgstr "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." -#: flatcamGUI/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "Cutout Tool Options" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "Tool Diameter" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10571,12 +10666,11 @@ msgstr "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." -#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 -#| msgid "Obj kind" +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 msgid "Object kind" msgstr "Object kind" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -10588,15 +10682,15 @@ msgstr "" "Gerber object, which is made\n" "out of many individual PCB outlines." -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "Single" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "Panel" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10606,11 +10700,11 @@ msgstr "" "will make the cutout of the PCB further from\n" "the actual PCB border" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "Gap size" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10622,11 +10716,11 @@ msgstr "" "the surrounding material (the one \n" "from which the PCB is cutout)." -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "Gaps" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10650,11 +10744,11 @@ msgstr "" "- 2tb - 2*top + 2*bottom\n" "- 8 - 2*left + 2*right +2*top + 2*bottom" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "Convex Sh." -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10662,11 +10756,11 @@ msgstr "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "2Sided Tool Options" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -10674,36 +10768,36 @@ msgstr "" "A tool to help in creating a double sided\n" "PCB using alignment holes." -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "Drill dia" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "Diameter of the drill for the alignment holes." -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "Mirror Axis:" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Mirror vertically (X) or horizontally (Y)." -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "Point" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "Box" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" msgstr "Axis Ref" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -10713,26 +10807,15 @@ msgstr "" " a specified box (in a FlatCAM object) through \n" "the center." -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "Paint Tool Options" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "Parameters:" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." +#: flatcamGUI/PreferencesUI.py:4534 flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10750,7 +10833,7 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 msgid "" "How to select Polygons to be painted.\n" @@ -10775,15 +10858,15 @@ msgstr "" "- 'Reference Object' - will do non copper clearing within the area\n" "specified by another object." -#: flatcamGUI/PreferencesUI.py:4596 +#: flatcamGUI/PreferencesUI.py:4614 msgid "Sel" msgstr "Sel" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "Paint Plotting" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 msgid "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10791,11 +10874,11 @@ msgstr "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." -#: flatcamGUI/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "Film Tool Options" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" @@ -10805,11 +10888,11 @@ msgstr "" "FlatCAM object.\n" "The file is saved in SVG format." -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "Film Type" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -10825,19 +10908,19 @@ msgstr "" "with white on a black canvas.\n" "The Film format is SVG." -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "Film Color" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 msgid "Set the film color when positive film is selected." msgstr "Set the film color when positive film is selected." -#: flatcamGUI/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Border" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -10857,11 +10940,11 @@ msgstr "" "white color like the rest and which may confound with the\n" "surroundings if not for this border." -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Scale Stroke" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 " @@ -10873,11 +10956,11 @@ msgstr "" "thinner,\n" "therefore the fine features may be more affected by this parameter." -#: flatcamGUI/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Film Adjustments" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -10887,11 +10970,11 @@ msgstr "" "types.\n" "This section provide the tools to compensate for the print distortions." -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Scale Film geometry" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -10899,21 +10982,21 @@ msgstr "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "X factor" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Y factor" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Skew Film geometry" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -10921,17 +11004,17 @@ msgstr "" "Positive values will skew to the right\n" "while negative values will skew to the left." -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "X angle" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "Y angle" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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." @@ -10939,57 +11022,57 @@ 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/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Bottom Left" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Top Left" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Bottom Right" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Top right" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Mirror Film geometry" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 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/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Both" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Mirror axis" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" msgstr "SVG" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" msgstr "PNG" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" msgstr "PDF" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "Film Type:" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -11001,11 +11084,11 @@ msgstr "" "- 'PNG' -> raster image\n" "- 'PDF' -> portable document format" -#: flatcamGUI/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" msgstr "Page Orientation" -#: flatcamGUI/PreferencesUI.py:4835 +#: flatcamGUI/PreferencesUI.py:4853 msgid "" "Can be:\n" "- Portrait\n" @@ -11015,19 +11098,19 @@ msgstr "" "- Portrait\n" "- Lanscape" -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" msgstr "Page Size" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." msgstr "A selection of standard ISO 216 page sizes." -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "Panelize Tool Options" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11037,11 +11120,11 @@ msgstr "" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "Spacing cols" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11049,11 +11132,11 @@ msgstr "" "Spacing between columns of the desired panel.\n" "In current units." -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "Spacing rows" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11061,36 +11144,36 @@ msgstr "" "Spacing between rows of the desired panel.\n" "In current units." -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "Columns" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "Number of columns of the desired panel" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "Rows" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "Number of rows of the desired panel" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "Gerber" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "Geo" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "Panel Type" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11100,11 +11183,11 @@ msgstr "" "- Gerber\n" "- Geometry" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "Constrain within" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11118,11 +11201,11 @@ msgstr "" "the final panel will have as many columns and rows as\n" "they fit completely within selected area." -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "Width (DX)" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11130,11 +11213,11 @@ msgstr "" "The width (DX) within which the panel must fit.\n" "In current units." -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "Height (DY)" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11142,15 +11225,15 @@ msgstr "" "The height (DY)within which the panel must fit.\n" "In current units." -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "Calculators Tool Options" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "V-Shape Tool Calculator" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -11160,11 +11243,11 @@ msgstr "" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." -#: flatcamGUI/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Tip Diameter" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11172,11 +11255,11 @@ msgstr "" "This is the tool tip diameter.\n" "It is specified by manufacturer." -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Tip Angle" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -11184,7 +11267,7 @@ msgstr "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -11192,11 +11275,11 @@ msgstr "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "ElectroPlating Calculator" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " @@ -11206,27 +11289,27 @@ msgstr "" "using a method like grahite ink or calcium hypophosphite ink or palladium " "chloride." -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Board Length" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "This is the board length. In centimeters." -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Board Width" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "This is the board width.In centimeters." -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Current Density" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11234,11 +11317,11 @@ msgstr "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Copper Growth" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11246,11 +11329,11 @@ msgstr "" "How thick the copper growth is intended to be.\n" "In microns." -#: flatcamGUI/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "Transform Tool Options" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." @@ -11258,19 +11341,19 @@ msgstr "" "Various transformations that can be applied\n" "on a FlatCAM object." -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "Skew" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "Factor for scaling on X axis." -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Factor for scaling on Y axis." -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11278,7 +11361,7 @@ msgstr "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11290,27 +11373,27 @@ msgstr "" "and the center of the biggest bounding box\n" "of the selected objects when unchecked." -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "X val" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "Distance to offset on X axis. In current units." -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Y val" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 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/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "Mirror Reference" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11332,11 +11415,11 @@ msgstr "" "Or enter the coords in format (x, y) in the\n" "Point Entry field and click Flip on X(Y)" -#: flatcamGUI/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "Mirror Reference point" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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" @@ -11346,11 +11429,11 @@ msgstr "" "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/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "SolderPaste Tool Options" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11358,47 +11441,47 @@ msgstr "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "Diameters of nozzle tools, separated by ','" -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "New Nozzle Dia" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 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/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" msgstr "Z Dispense Start" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "The height (Z) when solder paste dispensing starts." -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" msgstr "Z Dispense" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 msgid "The height (Z) when doing solder paste dispensing." msgstr "The height (Z) when doing solder paste dispensing." -#: flatcamGUI/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" msgstr "Z Dispense Stop" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "The height (Z) when solder paste dispensing stops." -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "Z Travel" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11406,15 +11489,15 @@ msgstr "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "Z Toolchange" -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "The height (Z) for tool (nozzle) change." -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11422,11 +11505,11 @@ msgstr "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." -#: flatcamGUI/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Feedrate (speed) while moving on the X-Y plane." -#: flatcamGUI/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11434,11 +11517,11 @@ msgstr "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." -#: flatcamGUI/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" msgstr "Feedrate Z Dispense" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11446,11 +11529,11 @@ msgstr "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "Spindle Speed FWD" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11458,19 +11541,19 @@ msgstr "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "Dwell FWD" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "Pause after solder dispensing." -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "Spindle Speed REV" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11478,11 +11561,11 @@ msgstr "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "Dwell REV" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11490,15 +11573,15 @@ msgstr "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "Files that control the GCode generation." -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "Substractor Tool Options" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11506,21 +11589,21 @@ msgstr "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "Close paths" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 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/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "Check Rules Tool Options" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -11528,20 +11611,20 @@ msgstr "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "Trace Size" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 msgid "This checks if the minimum size for traces is met." msgstr "This checks if the minimum size for traces is met." -#: flatcamGUI/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -11550,16 +11633,16 @@ msgstr "This checks if the minimum size for traces is met." msgid "Min value" msgstr "Min value" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "Minimum acceptable trace size." -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "Copper to Copper clearance" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." @@ -11567,23 +11650,23 @@ msgstr "" "This checks if the minimum clearance between copper\n" "features is met." -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "Minimum acceptable clearance value." -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "Copper to Outline clearance" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -11591,11 +11674,11 @@ msgstr "" "This checks if the minimum clearance between copper\n" "features and the outline is met." -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "Silk to Silk Clearance" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." @@ -11603,13 +11686,13 @@ msgstr "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "Silk to Solder Mask Clearance" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -11617,13 +11700,13 @@ msgstr "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "Silk to Outline Clearance" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -11631,12 +11714,12 @@ msgstr "" "This checks if the minimum clearance between silk\n" "features and the outline is met." -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "Minimum Solder Mask Sliver" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -11644,13 +11727,13 @@ msgstr "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." -#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "Minimum Annular Ring" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -11658,16 +11741,16 @@ msgstr "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." -#: flatcamGUI/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "Minimum acceptable ring value." -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "Hole to Hole Clearance" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." @@ -11675,16 +11758,16 @@ msgstr "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "Minimum acceptable drill size." -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "Hole Size" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -11692,11 +11775,11 @@ msgstr "" "This checks if the drill holes\n" "sizes are above the threshold." -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "Optimal Tool Options" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -11704,19 +11787,19 @@ msgstr "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Precision" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 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/PreferencesUI.py:5855 +#: flatcamGUI/PreferencesUI.py:5873 msgid "QRCode Tool Options" msgstr "QRCode Tool Options" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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." @@ -11724,11 +11807,11 @@ 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/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 msgid "Version" msgstr "Version" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11736,11 +11819,11 @@ msgstr "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." -#: flatcamGUI/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 msgid "Error correction" msgstr "Error correction" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -11756,11 +11839,11 @@ msgstr "" "Q = maximum 25%% errors can be corrected\n" "H = maximum 30%% errors can be corrected." -#: flatcamGUI/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 msgid "Box Size" msgstr "Box Size" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11768,11 +11851,11 @@ msgstr "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." -#: flatcamGUI/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 msgid "Border Size" msgstr "Border Size" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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." @@ -11780,23 +11863,23 @@ 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/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "QRCode Data" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 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/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 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/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "Polarity" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11806,17 +11889,17 @@ msgstr "" "It can be drawn in a negative way (squares are clear)\n" "or in a positive way (squares are opaque)." -#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Negative" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Positive" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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" @@ -11828,7 +11911,7 @@ msgstr "" "be added as positive. If it is added to a Copper Gerber\n" "file then perhaps the QRCode can be added as negative." -#: flatcamGUI/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" @@ -11837,31 +11920,31 @@ msgstr "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." -#: flatcamGUI/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 msgid "Rounded" msgstr "Rounded" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "Fill Color" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "Set the QRCode fill color (squares color)." -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "Back Color" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "Set the QRCode background color." -#: flatcamGUI/PreferencesUI.py:6043 +#: flatcamGUI/PreferencesUI.py:6061 msgid "Copper Thieving Tool Options" msgstr "Copper Thieving Tool Options" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." @@ -11869,16 +11952,16 @@ msgstr "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." -#: flatcamGUI/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." msgstr "Number of steps (lines) used to interpolate circles." -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 msgid "Clearance" msgstr "Clearance" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -11888,22 +11971,22 @@ msgstr "" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." -#: flatcamGUI/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "Area Selection" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "Reference Object" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "Reference:" -#: flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6126 msgid "" "- 'Itself' - the copper Thieving extent is based on the object that is " "copper cleared.\n" @@ -11919,20 +12002,20 @@ msgstr "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." -#: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "Rectangular" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" msgstr "Minimal" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Box Type:" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" " - 'Minimal' - the bounding box will be the convex hull shape." @@ -11940,23 +12023,23 @@ msgstr "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" " - 'Minimal' - the bounding box will be the convex hull shape." -#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" msgstr "Dots Grid" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 msgid "Squares Grid" msgstr "Squares Grid" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 msgid "Lines Grid" msgstr "Lines Grid" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 msgid "Fill Type:" msgstr "Fill Type:" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" " - 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -11968,54 +12051,54 @@ msgstr "" "- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" "- 'Lines Grid' - the empty area will be filled with a pattern of lines." -#: flatcamGUI/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 msgid "Dots Grid Parameters" msgstr "Dots Grid Parameters" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 msgid "Dot diameter in Dots Grid." msgstr "Dot diameter in Dots Grid." -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 msgid "Spacing" msgstr "Spacing" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." msgstr "Distance between each two dots in Dots Grid." -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 msgid "Squares Grid Parameters" msgstr "Squares Grid Parameters" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." msgstr "Square side size in Squares Grid." -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." msgstr "Distance between each two squares in Squares Grid." -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 msgid "Lines Grid Parameters" msgstr "Lines Grid Parameters" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." msgstr "Line thickness size in Lines Grid." -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." msgstr "Distance between each two lines in Lines Grid." -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" msgstr "Robber Bar Parameters" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -12023,27 +12106,27 @@ msgstr "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." -#: flatcamGUI/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 msgid "Bounding box margin for robber bar." msgstr "Bounding box margin for robber bar." -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" msgstr "Thickness" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." msgstr "The robber bar thickness." -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" msgstr "Pattern Plating Mask" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." msgstr "Generate a mask for pattern plating." -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -12051,17 +12134,16 @@ msgstr "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." -#: flatcamGUI/PreferencesUI.py:6298 -#| msgid "Fiducials Tools Options" +#: flatcamGUI/PreferencesUI.py:6316 msgid "Fiducials Tool Options" msgstr "Fiducials Tool Options" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "Parameters used for this tool." -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -12071,19 +12153,19 @@ msgstr "" "otherwise is the size of the fiducial.\n" "The soldermask opening is double than that." -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "Auto" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "Manual" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "Mode:" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 flatcamTools/ToolFiducials.py:191 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -12093,19 +12175,19 @@ msgstr "" "box.\n" " - 'Manual' - manual placement of fiducials." -#: flatcamGUI/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "Up" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "Down" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "Second fiducial" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 flatcamTools/ToolFiducials.py:205 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -12117,19 +12199,19 @@ msgstr "" " - '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/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "Cross" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "Chess" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "Fiducial Type" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -12141,21 +12223,19 @@ msgstr "" "- 'Cross' - cross lines fiducial.\n" "- 'Chess' - chess pattern fiducial." -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "Line thickness" -#: flatcamGUI/PreferencesUI.py:6414 -#| msgid "Calculators Tool Options" +#: flatcamGUI/PreferencesUI.py:6432 msgid "Calibration Tool Options" msgstr "Calibration Tool Options" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 -#| msgid "Source" +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "Source Type" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -12167,28 +12247,27 @@ msgstr "" "- Object -> click a hole geo for Excellon or a pad for Gerber\n" "- Free -> click freely on canvas to acquire the calibration points" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 -#| msgid "FreeForm" +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "Free" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "Height (Z) for travelling between the points." -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "Verification Z" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "Height (Z) for checking the point." -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "Zero Z tool" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." @@ -12196,41 +12275,76 @@ msgstr "" "Include a sequence to zero the height (Z)\n" "of the verification tool." -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "Height (Z) for mounting the verification probe." -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +#| msgid "Second Point" +msgid "Second point" +msgstr "Second point" + +#: flatcamGUI/PreferencesUI.py:6532 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/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +#| msgid "Top Left" +msgid "Top-Left" +msgstr "Top-Left" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +#| msgid "Bottom Right" +msgid "Bottom-Right" +msgstr "Bottom-Right" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "Excellon File associations" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "Restore" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "Restore the extension list to the default state." -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "Delete All" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "Delete all extensions from the list." -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "Extensions list" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -12238,43 +12352,43 @@ msgstr "" "List of file extensions to be\n" "associated with FlatCAM." -#: flatcamGUI/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "Extension" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 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/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "Add Extension" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "Add a file extension to the list" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "Delete Extension" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "Delete a file extension from the list" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "Apply Association" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12286,31 +12400,31 @@ msgstr "" "They will be active after next logon.\n" "This work only in Windows." -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "GCode File associations" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "Gerber File associations" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "Autocompleter Keywords" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 msgid "Restore the autocompleter keywords list to the default state." msgstr "Restore the autocompleter keywords list to the default state." -#: flatcamGUI/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "Delete all autocompleter keywords from the list." -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "Keywords list" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -12322,23 +12436,23 @@ msgstr "" "The autocompleter is installed\n" "in the Code Editor and for the Tcl Shell." -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 msgid "A keyword to be added or deleted to the list." msgstr "A keyword to be added or deleted to the list." -#: flatcamGUI/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "Add keyword" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "Add a keyword to the list" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "Delete keyword" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "Delete a keyword from the list" @@ -12395,11 +12509,14 @@ msgstr "Font not supported, try another one." msgid "Gerber processing. Parsing" msgstr "Gerber processing. Parsing" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "lines" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "Coordinates missing, line ignored" @@ -12415,7 +12532,7 @@ msgstr "" "Region does not have enough points. File will be processed but there are " "parser errors. Line number" -#: flatcamParsers/ParseGerber.py:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "Gerber processing. Joining polygons" @@ -12455,6 +12572,26 @@ msgstr "Gerber Skew done." msgid "Gerber Rotate done." msgstr "Gerber Rotate done." +#: flatcamParsers/ParseHPGL2.py:176 +#| msgid "Gerber processing. Parsing" +msgid "HPGL2 processing. Parsing" +msgstr "HPGL2 processing. Parsing" + +#: flatcamParsers/ParseHPGL2.py:408 +#| msgid "Plot Line" +msgid "HPGL2 Line" +msgstr "HPGL2 Line" + +#: flatcamParsers/ParseHPGL2.py:408 +#| msgid "Gerber Line Content" +msgid "HPGL2 Line Content" +msgstr "HPGL2 Line Content" + +#: flatcamParsers/ParseHPGL2.py:409 +#| msgid "Gerber Parser ERROR" +msgid "HPGL2 Parser ERROR" +msgstr "HPGL2 Parser ERROR" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Calculators" @@ -12545,17 +12682,19 @@ msgstr "" msgid "Calc. Tool" msgstr "Calc. Tool" -#: flatcamTools/ToolCalibration.py:36 -#| msgid "Calibration Points" -msgid "Calibration Tool" -msgstr "Calibration Tool" +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "GCode Parameters" -#: flatcamTools/ToolCalibration.py:66 -#| msgid "Acquire Calibration Points" +#: 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:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" "Pick four points by clicking inside the drill holes.\n" "Those four points should be in the four\n" @@ -12565,27 +12704,25 @@ msgstr "" "Those four points should be in the four\n" "(as much as possible) corners of the Excellon object." -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 #: flatcamTools/ToolPanelize.py:66 flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "Object Type" -#: flatcamTools/ToolCalibration.py:101 -#| msgid "No object selected." +#: flatcamTools/ToolCalibration.py:211 msgid "Source object selection" msgstr "Source object selection" -#: flatcamTools/ToolCalibration.py:103 -#| msgid "Excellon Object to be used as a source for reference points." +#: flatcamTools/ToolCalibration.py:213 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:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "Calibration Points" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." @@ -12593,61 +12730,56 @@ msgstr "" "Contain the expected calibration points and the\n" "ones measured." -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "Target" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "Found Delta" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 msgid "Bot Left X" msgstr "Bot Left X" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 msgid "Bot Left Y" msgstr "Bot Left Y" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 msgid "Origin" msgstr "Origin" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 msgid "Bot Right X" msgstr "Bot Right X" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 msgid "Bot Right Y" msgstr "Bot Right Y" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 msgid "Top Left X" msgstr "Top Left X" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 msgid "Top Left Y" msgstr "Top Left Y" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 msgid "Top Right X" msgstr "Top Right X" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 msgid "Top Right Y" msgstr "Top Right Y" -#: flatcamTools/ToolCalibration.py:258 -#| msgid "Ref. Point" +#: flatcamTools/ToolCalibration.py:370 msgid "Get Points" msgstr "Get Points" -#: flatcamTools/ToolCalibration.py:260 -#| msgid "" -#| "Pick four points by clicking inside the drill holes.\n" -#| "Those four points should be in the four squares of\n" -#| "the Excellon object." +#: flatcamTools/ToolCalibration.py:372 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" @@ -12659,37 +12791,37 @@ msgstr "" "Those four points should be in the four squares of\n" "the object." -#: flatcamTools/ToolCalibration.py:281 -#| msgid "Verification GCode" +#: flatcamTools/ToolCalibration.py:393 msgid "STEP 2: Verification GCode" msgstr "STEP 2: Verification GCode" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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." +"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:288 -msgid "GCode Parameters" -msgstr "GCode Parameters" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parameters used when creating the GCode in this tool." - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Generate GCode" -#: flatcamTools/ToolCalibration.py:369 -#| msgid "Film Adjustments" +#: flatcamTools/ToolCalibration.py:432 msgid "STEP 3: Adjustments" msgstr "STEP 3: Adjustments" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" @@ -12699,16 +12831,15 @@ msgstr "" "found when checking the PCB pattern. The differences must be filled\n" "in the fields Found (Delta)." -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 msgid "Calculate Factors" msgstr "Calculate Factors" -#: flatcamTools/ToolCalibration.py:400 -#| msgid "Generate Adjusted GCode" +#: flatcamTools/ToolCalibration.py:463 msgid "STEP 4: Adjusted GCode" msgstr "STEP 4: Adjusted GCode" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." @@ -12716,56 +12847,62 @@ msgstr "" "Generate verification GCode file adjusted with\n" "the factors above." -#: flatcamTools/ToolCalibration.py:407 -#| msgid "Scale Factor:" +#: flatcamTools/ToolCalibration.py:470 msgid "Scale Factor X:" msgstr "Scale Factor X:" -#: flatcamTools/ToolCalibration.py:419 -#| msgid "Scale Factor:" +#: flatcamTools/ToolCalibration.py:482 msgid "Scale Factor Y:" msgstr "Scale Factor Y:" -#: flatcamTools/ToolCalibration.py:431 -#| msgid "Ap. Scale Factor:" +#: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" msgstr "Apply Scale Factors" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "Apply Scale factors on the calibration points." -#: flatcamTools/ToolCalibration.py:443 -#| msgid "Angle X:" +#: flatcamTools/ToolCalibration.py:506 msgid "Skew Angle X:" msgstr "Skew Angle X:" -#: flatcamTools/ToolCalibration.py:456 -#| msgid "Angle Y:" +#: flatcamTools/ToolCalibration.py:519 msgid "Skew Angle Y:" msgstr "Skew Angle Y:" -#: flatcamTools/ToolCalibration.py:469 -#| msgid "Ap. Scale Factor:" +#: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" msgstr "Apply Skew Factors" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "Apply Skew factors on the calibration points." -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 msgid "Generate Adjusted GCode" msgstr "Generate Adjusted GCode" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +#| msgid "" +#| "Generate verification GCode file adjusted with\n" +#| "the factors above." +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:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "STEP 5: Calibrate FlatCAM Objects" -#: flatcamTools/ToolCalibration.py:563 -#| msgid "" -#| "Ajust the Excellon and Cutout Geometry objects\n" -#| "with the factors determined, and verified, above." +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." @@ -12773,32 +12910,27 @@ msgstr "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." -#: flatcamTools/ToolCalibration.py:572 -#| msgid "Adjust Objects" +#: flatcamTools/ToolCalibration.py:641 msgid "Adjusted object type" msgstr "Adjusted object type" -#: flatcamTools/ToolCalibration.py:574 -#| msgid "Geometry Object to be adjusted." +#: flatcamTools/ToolCalibration.py:643 msgid "Type of the FlatCAM Object to be adjusted." msgstr "Type of the FlatCAM Object to be adjusted." -#: flatcamTools/ToolCalibration.py:585 -#| msgid "Adjust Objects" +#: flatcamTools/ToolCalibration.py:654 msgid "Adjusted object selection" msgstr "Adjusted object selection" -#: flatcamTools/ToolCalibration.py:587 -#| msgid "Excellon Object to be adjusted." +#: flatcamTools/ToolCalibration.py:656 msgid "The FlatCAM Object to be adjusted." msgstr "The FlatCAM Object to be adjusted." -#: flatcamTools/ToolCalibration.py:594 -#| msgid "Calibrate Excellon" +#: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" msgstr "Calibrate" -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." @@ -12806,82 +12938,76 @@ msgstr "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 #: flatcamTools/ToolPaint.py:378 flatcamTools/ToolPanelize.py:266 #: flatcamTools/ToolQRCode.py:314 flatcamTools/ToolRulesCheck.py:507 #: flatcamTools/ToolSolderPaste.py:470 flatcamTools/ToolSub.py:170 -#| msgid "Rules Tool" msgid "Reset Tool" msgstr "Reset Tool" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 #: flatcamTools/ToolPaint.py:380 flatcamTools/ToolPanelize.py:268 #: flatcamTools/ToolQRCode.py:316 flatcamTools/ToolRulesCheck.py:509 #: flatcamTools/ToolSolderPaste.py:472 flatcamTools/ToolSub.py:172 -#| msgid "" -#| "Select tools.\n" -#| "Modify parameters." msgid "Will reset the tool parameters." msgstr "Will reset the tool parameters." -#: flatcamTools/ToolCalibration.py:688 -#| msgid "Calibrate Excellon" +#: flatcamTools/ToolCalibration.py:762 msgid "Calibrate Tool" msgstr "Calibrate Tool" -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "Tool initialized" -#: flatcamTools/ToolCalibration.py:747 -#| msgid "There is no Excellon object loaded ..." +#: flatcamTools/ToolCalibration.py:824 msgid "There is no source FlatCAM object selected..." msgstr "There is no source FlatCAM object selected..." -#: flatcamTools/ToolCalibration.py:768 -#| msgid "Click inside the First drill point. Bottom Left..." +#: flatcamTools/ToolCalibration.py:845 msgid "Get First calibration point. Bottom Left..." msgstr "Get First calibration point. Bottom Left..." -#: flatcamTools/ToolCalibration.py:820 -#| msgid "Click inside the Second drill point. Bottom Right..." +#: flatcamTools/ToolCalibration.py:906 +#| msgid "Copy cancelled. No shape selected." +msgid "Cancelled by user request." +msgstr "Cancelled by user request." + +#: flatcamTools/ToolCalibration.py:912 msgid "Get Second calibration point. Bottom Right..." msgstr "Get Second calibration point. Bottom Right..." -#: flatcamTools/ToolCalibration.py:824 -#| msgid "Click inside the Third drill point. Top Left..." +#: flatcamTools/ToolCalibration.py:916 msgid "Get Third calibration point. Top Left..." msgstr "Get Third calibration point. Top Left..." -#: flatcamTools/ToolCalibration.py:828 -#| msgid "Click inside the Fourth drill point. Top Right..." +#: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." msgstr "Get Forth calibration point. Top Right..." -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "Done. All four points have been acquired." -#: flatcamTools/ToolCalibration.py:857 +#: flatcamTools/ToolCalibration.py:955 msgid "Verification GCode for FlatCAM Calibrate Tool" msgstr "Verification GCode for FlatCAM Calibrate Tool" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "Gcode Viewer" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." msgstr "Cancelled. Four points are needed for GCode generation." -#: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 -#| msgid "There is no Box object loaded ..." +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 msgid "There is no FlatCAM object selected..." msgstr "There is no FlatCAM object selected..." @@ -13042,7 +13168,6 @@ msgid "mm" msgstr "mm" #: flatcamTools/ToolCopperThieving.py:458 -#| msgid "info" msgid "in" msgstr "in" @@ -13103,9 +13228,9 @@ msgstr "Copper Thieving Tool done." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 -#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1155 -#: flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1156 +#: flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 #: flatcamTools/ToolSub.py:492 flatcamTools/ToolSub.py:507 @@ -13115,7 +13240,7 @@ msgid "Could not retrieve object" msgstr "Could not retrieve object" #: flatcamTools/ToolCopperThieving.py:764 -#: flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "Click the start point of the area." @@ -13124,7 +13249,7 @@ msgid "Click the end point of the filling area." msgstr "Click the end point of the filling area." #: flatcamTools/ToolCopperThieving.py:821 -#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 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." @@ -13156,12 +13281,12 @@ msgid "Geometry not supported for bounding box" msgstr "Geometry not supported for bounding box" #: flatcamTools/ToolCopperThieving.py:1061 -#: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "No object available." #: flatcamTools/ToolCopperThieving.py:1098 -#: flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "The reference object type is not supported." @@ -13207,12 +13332,10 @@ msgstr "" "of objects that will populate the 'Object' combobox." #: flatcamTools/ToolCutOut.py:91 flatcamTools/ToolCutOut.py:92 -#| msgid "Object to be painted." msgid "Object to be cutout" msgstr "Object to be cutout" #: flatcamTools/ToolCutOut.py:214 -#| msgid "Convex Sh." msgid "Convex Shape" msgstr "Convex Shape" @@ -13249,7 +13372,6 @@ msgstr "" "- 8 - 2*left + 2*right +2*top + 2*bottom" #: flatcamTools/ToolCutOut.py:262 -#| msgid "Generate Geometry" msgid "Generate Freeform Geometry" msgstr "Generate Freeform Geometry" @@ -13264,7 +13386,6 @@ msgstr "" "Useful when the PCB has a non-rectangular shape." #: flatcamTools/ToolCutOut.py:276 -#| msgid "Generate Geometry" msgid "Generate Rectangular Geometry" msgstr "Generate Rectangular Geometry" @@ -13299,7 +13420,6 @@ msgid "Geometry object used to create the manual cutout." msgstr "Geometry object used to create the manual cutout." #: flatcamTools/ToolCutOut.py:326 -#| msgid "Generate Geometry" msgid "Generate Manual Geometry" msgstr "Generate Manual Geometry" @@ -13374,8 +13494,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "Any form CutOut operation finished." -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "Object not found" @@ -13431,7 +13551,6 @@ msgid "2-Sided PCB" msgstr "2-Sided PCB" #: flatcamTools/ToolDblSided.py:58 -#| msgid "Gerber to be mirrored" msgid "Gerber to be mirrored" msgstr "Gerber to be mirrored" @@ -13459,10 +13578,6 @@ msgstr "Excellon Object to be mirrored." msgid "Geometry Obj to be mirrored." msgstr "Geometry Obj to be mirrored." -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "Axis Ref:" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "Point/Box Reference" @@ -13981,25 +14096,30 @@ msgstr "No FlatCAM object selected. Load an object for Film and retry." 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:680 +#: flatcamTools/ToolFilm.py:673 +#| msgid "No object selected." +msgid "No FlatCAM object selected." +msgstr "No FlatCAM object selected." + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Generating Film ..." -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 msgid "Export positive film" msgstr "Export positive film" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 msgid "Export positive film cancelled." msgstr "Export positive film cancelled." -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 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:784 +#: flatcamTools/ToolFilm.py:794 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14007,7 +14127,7 @@ 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:796 +#: 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." @@ -14015,7 +14135,7 @@ 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:814 +#: flatcamTools/ToolFilm.py:824 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14023,24 +14143,24 @@ 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:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 msgid "Export negative film" msgstr "Export negative film" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 msgid "Export negative film cancelled." msgstr "Export negative film cancelled." -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "No object Box. Using instead" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 msgid "Film file exported to" msgstr "Film file exported to" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "Generating Film ... Please wait." @@ -14352,110 +14472,110 @@ msgstr "" msgid "Generate Geometry" msgstr "Generate Geometry" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "New Tool" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 msgid "Please enter a tool diameter to add, in Float format." msgstr "Please enter a tool diameter to add, in Float format." -#: flatcamTools/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "Adding tool cancelled. Tool already in Tool Table." -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "New tool added to Tool Table." -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "Tool from Tool Table was edited." -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "Edit cancelled. New diameter value is already in the Tool Table." -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "Delete failed. Select a tool to delete." -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "Tool(s) deleted from Tool Table." -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 msgid "Wrong Tool Dia value format entered, use a number." msgstr "Wrong Tool Dia value format entered, use a number." -#: flatcamTools/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "No selected tools in Tool Table." -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "Click the end point of the paint area." -#: flatcamTools/ToolNonCopperClear.py:1413 -#: flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 +#: flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "Non-Copper clearing ..." -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "NCC Tool started. Reading parameters." -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "NCC Tool. Preparing non-copper polygons." -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 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/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "NCC Tool. Calculate 'empty' area." -#: flatcamTools/ToolNonCopperClear.py:1629 -#: flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 -#: flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 -#: flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 +#: flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 +#: flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 +#: flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "Buffering finished" -#: flatcamTools/ToolNonCopperClear.py:1747 -#: flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 +#: flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "The selected object is not suitable for copper clearing." -#: flatcamTools/ToolNonCopperClear.py:1752 -#: flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 +#: flatcamTools/ToolNonCopperClear.py:2109 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/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "NCC Tool. Finished calculation of 'empty' area." -#: flatcamTools/ToolNonCopperClear.py:1772 -#: flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 +#: flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "NCC Tool clearing with tool diameter = " -#: flatcamTools/ToolNonCopperClear.py:1775 -#: flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 +#: flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "started." -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14467,25 +14587,25 @@ msgstr "" "geometry.\n" "Change the painting parameters and try again." -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "NCC Tool clear all done." -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 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/ToolNonCopperClear.py:1943 -#: flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 +#: flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "tools" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "NCC Tool Rest Machining clear all done." -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -14493,7 +14613,7 @@ msgstr "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -14798,68 +14918,68 @@ msgstr "" "- 'Reference Object' - will do non copper clearing within the area\n" "specified by another object." -#: flatcamTools/ToolPaint.py:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "Paint Tool. Reading parameters." -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "Could not retrieve object: %s" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "Can't do Paint on MultiGeo geometries" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 msgid "Click on a polygon to paint it." msgstr "Click on a polygon to paint it." -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Click the start point of the paint area." -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 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:1138 +#: flatcamTools/ToolPaint.py:1140 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:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "Paint Tool." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "Normal painting polygon task started." -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "Buffering geometry..." -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "No polygon found." -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "Painting polygon..." -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "Geometry could not be painted completely" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -14867,9 +14987,9 @@ msgstr "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" -#: flatcamTools/ToolPaint.py:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14881,36 +15001,36 @@ msgstr "" "geometry.\n" "Change the painting parameters and try again." -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "Paint Single Done." -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "Polygon Paint started ..." -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "Painting polygons..." -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "Paint Tool. Normal painting all task started." -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "Painting with tool diameter = " -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "started" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" @@ -14918,33 +15038,33 @@ msgstr "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "Paint All Done." -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "Rest machining painting all task started." -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "Paint All with Rest-Machining done." -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "Normal painting area task started." -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "Paint Area Done." -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "Rest machining painting area task started." -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "Paint Tool. Rest machining painting area task started." @@ -15320,22 +15440,18 @@ msgid "Metric" msgstr "Metric" #: flatcamTools/ToolProperties.py:401 flatcamTools/ToolProperties.py:459 -#| msgid "Workers number" msgid "Drills number" msgstr "Drills number" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 -#| msgid "tool number" msgid "Slots number" msgstr "Slots number" #: flatcamTools/ToolProperties.py:404 -#| msgid "tool number" msgid "Drills total number:" msgstr "Drills total number:" #: flatcamTools/ToolProperties.py:405 -#| msgid "tool number" msgid "Slots total number:" msgstr "Slots total number:" @@ -15346,37 +15462,30 @@ msgid "Present" msgstr "Present" #: flatcamTools/ToolProperties.py:427 flatcamTools/ToolProperties.py:457 -#| msgid "Buffer Solid Geometry" msgid "Solid Geometry" msgstr "Solid Geometry" #: flatcamTools/ToolProperties.py:430 -#| msgid "Add Text" msgid "GCode Text" msgstr "GCode Text" #: flatcamTools/ToolProperties.py:433 -#| msgid "New Geometry" msgid "GCode Geometry" msgstr "GCode Geometry" #: flatcamTools/ToolProperties.py:435 -#| msgid "Tool Data" msgid "Data" msgstr "Data" #: flatcamTools/ToolProperties.py:468 -#| msgid "depth where to cut" msgid "Depth of Cut" msgstr "Depth of Cut" #: flatcamTools/ToolProperties.py:480 -#| msgid "Clearance" msgid "Clearance Height" msgstr "Clearance Height" #: flatcamTools/ToolProperties.py:492 -#| msgid "Feedrate:" msgid "Feedrate" msgstr "Feedrate" @@ -15385,7 +15494,6 @@ msgid "Routing time" msgstr "Routing time" #: flatcamTools/ToolProperties.py:519 -#| msgid "Travelled dist." msgid "Travelled distance" msgstr "Travelled distance" @@ -15402,7 +15510,6 @@ msgid "Convex_Hull Area" msgstr "Convex_Hull Area" #: flatcamTools/ToolProperties.py:583 flatcamTools/ToolProperties.py:585 -#| msgid "Copper Gerber" msgid "Copper Area" msgstr "Copper Area" @@ -15946,38 +16053,38 @@ msgstr "Some or all pads have no solder due of inadequate nozzle diameters..." msgid "Generating Solder Paste dispensing geometry..." msgstr "Generating Solder Paste dispensing geometry..." -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "There is no Geometry object available." -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 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:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "ToolSolderPaste CNCjob created" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 msgid "SP GCode Editor" msgstr "SP GCode Editor" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 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:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "No Gcode in the object" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "Export GCode ..." -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "Solder paste dispenser GCode file saved to" @@ -16273,16 +16380,16 @@ msgstr "Expected a list of objects names separated by comma. Got" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds done." -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "Expected -box ." -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "Could not retrieve box object" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." @@ -16290,11 +16397,11 @@ msgstr "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "Expected -x and -y ." -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." @@ -16322,6 +16429,19 @@ 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 "Paint Area" +#~ msgstr "Paint Area" + +#~ msgid "" +#~ "Generate GCode file to locate and align the PCB by using\n" +#~ "the four points acquired above." +#~ msgstr "" +#~ "Generate GCode file to locate and align the PCB by using\n" +#~ "the four points acquired above." + +#~ msgid "Axis Ref:" +#~ msgstr "Axis Ref:" + #~ msgid "Change project units ..." #~ msgstr "Change project units ..." diff --git a/locale/ro/LC_MESSAGES/strings.mo b/locale/ro/LC_MESSAGES/strings.mo index 41c7649f6ec2aa4b493ac7aff5a8bed05791f87e..1db845291450cc8f27d6525b67a65cd81e11cf20 100644 GIT binary patch delta 86431 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 delta 56874 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 Q?+=J!2_6t5vpZY<4@oG;!2kdN diff --git a/locale/ro/LC_MESSAGES/strings.po b/locale/ro/LC_MESSAGES/strings.po index 8df74cbc..045b6052 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: 2019-12-09 16:52+0200\n" -"PO-Revision-Date: 2019-12-09 16:52+0200\n" +"POT-Creation-Date: 2019-12-13 17:59+0200\n" +"PO-Revision-Date: 2019-12-13 18:04+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: ro\n" @@ -23,15 +23,15 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: tests\n" "X-Poedit-SearchPathExcluded-2: doc\n" -#: FlatCAMApp.py:988 +#: FlatCAMApp.py:999 msgid "FlatCAM is initializing ..." msgstr "FlatCAM se inițializează ..." -#: FlatCAMApp.py:1566 +#: FlatCAMApp.py:1580 msgid "Could not find the Language files. The App strings are missing." msgstr "Nu am gasit fişierele cu traduceri. Mesajele aplicaţiei lipsesc." -#: FlatCAMApp.py:1659 +#: FlatCAMApp.py:1673 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -39,7 +39,7 @@ msgstr "" "FlatCAM se inițializează ...\n" "Initializarea spațiului de afisare a inceput." -#: FlatCAMApp.py:1677 +#: FlatCAMApp.py:1691 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -49,7 +49,7 @@ msgstr "" "Initializarea spațiului de afisare a inceput.\n" "Initializarea spatiului de afisare s-a terminat in" -#: FlatCAMApp.py:2373 +#: FlatCAMApp.py:2388 msgid "" "Type >help< to get started\n" "\n" @@ -57,12 +57,13 @@ msgstr "" "Tastați >help< pentru a începe\n" "\n" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "Proiect nou - Nu a fost salvat" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 +#: FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -70,45 +71,47 @@ msgstr "" "FlatCAM se inițializează ...\n" "Initializarea spațiului de afisare s-a terminat in" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "Rulează Tcl Script..." -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 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." -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "Deschidere anulată." -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "Deschiderea fişierului de configurare a eşuat." -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "Deschiderea fişierului Script eşuat." -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "Deschiderea fişierului Excellon a eşuat." -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "Deschiderea fişierului GCode a eşuat." -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "Deschiderea fişierului Gerber a eşuat." -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Selectează un obiect tip Geometrie Gerber sau Excellon pentru editare." -#: FlatCAMApp.py:3201 +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -118,83 +121,83 @@ msgstr "" "MultiGeo nu este posibilă.\n" "Se poate edita numai o singură geometrie de fiecare dată." -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "Editorul este activ ..." -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "Vrei sa salvezi obiectul editat?" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "Inchide Editorul" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Da" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "Nu" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Anuleaza" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "Obiectul nu are date dupa editare." -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" "Selectează un obiect tip Gerber, Geometrie sau Excellon pentru actualizare." -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "este actualizat, întoarcere la aplicaţie..." -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "Nu am putut incărca fişierul cu valori default." -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "Parsarea fişierului cu valori default a eșuat." -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "Importă Preferințele FlatCAM" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "Importul preferințelor FlatCAM a eșuat." -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "Valorile default au fost importate din" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "Exportă Preferințele FlatCAM" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "Exportul preferințelor FlatCAM este anulat." -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 -#: FlatCAMApp.py:10375 FlatCAMApp.py:10514 FlatCAMCommon.py:378 -#: FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 +#: FlatCAMApp.py:10509 FlatCAMApp.py:10648 FlatCAMCommon.py:378 +#: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -202,39 +205,39 @@ msgstr "" "Permisiune refuzată, salvarea nu este posibilă.\n" "Cel mai probabil o altă aplicație ține fișierul deschis și inaccesibil." -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "Nu am putut incărca fişierul cu valori default." -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "Salvarea valorilor default intr-un fişier a eșuat." -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "Exportă Preferințele in" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "Folderul de preferințe FlatCAM a fost deschis." -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "" "Deschiderea fişierului cu >fişiere recente< pentru a fi salvat a eșuat." -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "" "Deschiderea fişierului cu >proiecte recente< pentru a fi salvat a eșuat." -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 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" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -243,67 +246,63 @@ msgstr "" "Obiectul ({kind}) a eșuat din cauza: {error} \n" "\n" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "Se convertesc unitătile la " -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "" +msgstr "CREAȚI UN SCRIPT FLATCAM TCL NOU" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" -msgstr "" +msgstr "Tutorialul TCL este aici" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" -msgstr "" +msgstr "Lista de comenzi FlatCAM" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 -#, python-brace-format -msgid "" -"[selected] {kind} created/selected: {name}" -msgstr "" -"[selected]{kind} creat/selectat: {name}" +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" +msgstr "creat / selectat" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Se afișeaz" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "Despre FlatCAM" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Productie Cablaje Imprimate asistate 2D de PC" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "Dezvoltare" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "Raportare probleme" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "Închide" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" msgstr "Licențiat sub licența MIT" -#: FlatCAMApp.py:4448 +#: FlatCAMApp.py:4483 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -356,74 +355,77 @@ msgstr "" "UTILIZAREA SA,\n" "SAU ORICE TRATĂRI ÎN ACEST SOFTWARE." -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4505 msgid "" -"Some of the icons used are from the following sources:

Icons made by " -"Freepik from www.flaticon.com
Icons by Icons8" +"Some of the icons used are from the following sources:
Icons by Icons8
Icons by oNline Web Fonts" msgstr "" -"Unele dintre icon-uri sunt preluate din urmatoarele surse:
Icons " -"create de Freepik de la www.flaticon.com
Desene create de " -"Icons8" +"Unele dintre icon-uri sunt preluate din urmatoarele surse: " +"
Pictograme create de Freepik de la www.flaticon.com
Pictograme create de Icons8Pictograme create de oNline Web Fonts" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "Splash" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "Programatori" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "Traducatori" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4555 msgid "License" msgstr "Licență" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "Atribuiri" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "Programator" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "Statut" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "E-mail" -#: FlatCAMApp.py:4558 +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" msgstr "Programator Beta >= 2019" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "Limba" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "Traducător" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "Corecţii" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 -#: flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 +#: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Bookmarks Manager" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -443,37 +445,37 @@ msgstr "" "Dacă nu puteți obține informații despre FlatCAM beta\n" "utilizați linkul canalului YouTube din meniul Ajutor." -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "Site alternativ" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "Preferințele au fost salvate." -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "" "Fişierul cu valori default de fabrică nu a fost posibil să fie deschis." -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "Parsarea fişierului cu valori default de fabrică a eșuat." -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "" "Salvarea fişierului cu valori default de fabrică intr-un fişier a eșuat." -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "Valori default de fabrică au fost salvate." -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "Aplicația salvează proiectul. Vă rugăm aşteptați ..." -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -481,29 +483,29 @@ msgstr "" "FlatCAM are fişiere/obiecte care au fost modificate. \n" "Dorești să Salvezi proiectul?" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Salvează modificarile" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiile de fișiere Excellon selectate înregistrate cu FlatCAM." -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensii de fișiere GCode selectate înregistrate cu FlatCAM." -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensii de fișiere Gerber selectate înregistrate cu FlatCAM." -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 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" -#: FlatCAMApp.py:5445 +#: FlatCAMApp.py:5481 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 " @@ -520,124 +522,106 @@ msgstr "" "informatii și rezultatul ar putea să nu fie cel dorit. \n" "Verifică codul G-Code generat." -#: FlatCAMApp.py:5457 -#, fuzzy -#| msgid "Done. Gerber editing finished." +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" -msgstr "Editarea Gerber a fost terminată." +msgstr "Multigeo. Fuziunea geometriei s-a terminat" -#: FlatCAMApp.py:5466 -#, fuzzy -#| msgid "G-Code parsing finished..." +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" -msgstr "Analizarea codului G s-a terminat ..." +msgstr "Fuziunea geometriei s-a terminat" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" "Eșuat. Fuzionarea Excellon functionează doar cu obiecte de tip Excellon." -#: FlatCAMApp.py:5498 -#, fuzzy -#| msgid "Excellon editing finished." +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" -msgstr "Editarea Excellon a fost terminată." +msgstr "Fuziunea Excellon a fost terminată" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Eșuat. Fuzionarea Gerber functionează doar cu obiecte de tip Gerber ." -#: FlatCAMApp.py:5526 -#, fuzzy -#| msgid "Done. Gerber editing finished." +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" -msgstr "Editarea Gerber a fost terminată." +msgstr "Fuziunea Gerber a fost terminată" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "Eșuat. Selectează un obiect Geometrie și încearcă din nou." -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "Se astepta o Geometrie FlatCAM, s-a primit" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul MultiGeo." -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul SingleGeo ." -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "Comută Unitati" -#: FlatCAMApp.py:5799 -#, fuzzy -#| msgid "" -#| "Changing the units of the project causes all geometrical properties of " -#| "all objects to be scaled accordingly.\n" -#| "Continue?" +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" "\n" "Do you want to continue?" msgstr "" -"Schimbarea unitătilor de măsură din proiect va face ca toate proprietătile " -"geometrice ale obiectelor sa fie scalate corespunzător.\n" -"Continuati?" +"Schimbarea unităților proiectului\n" +"va scala toate obiectele.\n" +"\n" +"Doriți să continuați?" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "Ok" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "Unitătile au fost convertite in" -#: FlatCAMApp.py:5865 -#, fuzzy -#| msgid " Units conversion cancelled." +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." -msgstr " Conversia unitătilor este anulată." +msgstr "Conversia unitătilor este anulată." -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "Taburi detașabile" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "Preferințe" -#: FlatCAMApp.py:6960 -#, fuzzy -#| msgid "Preferences saved." +#: FlatCAMApp.py:6996 msgid "Preferences applied." -msgstr "Preferințele au fost salvate." +msgstr "Preferințele au fost aplicate." -#: FlatCAMApp.py:7009 -#, fuzzy -#| msgid "Preferences edited but not saved." +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." -msgstr "Preferințele au fost editate dar nu au fost salvate." +msgstr "Tab-ul Preferințe a fost închis fără a salva." -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 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." -#: FlatCAMApp.py:7037 flatcamTools/ToolNonCopperClear.py:600 -#: flatcamTools/ToolPaint.py:510 flatcamTools/ToolSolderPaste.py:566 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 +#: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Adăugarea unei unelte anulată" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -645,11 +629,11 @@ msgstr "" "Adăugarea de unelte noi functionează doar in modul Avansat.\n" "Pentru aceasta mergi in Preferințe -> General - Activează Modul Avansat." -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "Șterge obiectele" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -657,102 +641,102 @@ msgstr "" "Sigur doriți să ștergeți definitiv\n" "obiectele selectate?" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "Obiect(ele) șters(e)" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "Eșuat. Nici-un obiect nu este selectat." -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "Salvează continutul din Editor și încearcă din nou." -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "Obiectul este șters" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "Click pentru a seta originea..." -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "Setează Originea..." -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "Originea a fost setată" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "Coordonate pentru origine specificate, dar incomplete." -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "Sari la ..." -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "Introduceți coordonatele in format X,Y:" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordonate gresite. Introduceți coordonatele in format X,Y" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 -#: flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 +#: flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 #: flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 #: flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "Executat." -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 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." -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7667 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 ..." -#: FlatCAMApp.py:7629 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "Taskul curent a fost închis la cererea utilizatorului ..." -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "Preferințele au fost editate dar nu au fost salvate." -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 -#: FlatCAMObj.py:4107 +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMObj.py:4213 msgid "Tools Database" msgstr "Baza de Date Unelte" -#: FlatCAMApp.py:7752 +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." msgstr "Uneltele din Baza de date au fost editate dar nu au fost salvate." -#: FlatCAMApp.py:7776 +#: FlatCAMApp.py:7820 msgid "Tool from DB added in Tool Table." msgstr "Unealtă din Baza de date adăugată in Tabela de Unelte." -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7822 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." -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -760,113 +744,107 @@ msgstr "" "Una sau mai multe valori au fost schimbate.\n" "Dorești să salvezi Preferințele?" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Salvează Pref" -#: FlatCAMApp.py:7838 -#, fuzzy -#| msgid "" -#| "One or more values are changed.\n" -#| "Do you want to save the Preferences?" +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" msgstr "" -"Una sau mai multe valori au fost schimbate.\n" -"Dorești să salvezi Preferințele?" +"Unul sau mai multe Unelte sunt editate.\n" +"Doriți să actualizați baza de date a Uneltelor?" -#: FlatCAMApp.py:7840 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMApp.py:7884 msgid "Save Tools Database" -msgstr "Date unealtă" +msgstr "Salvează baza de date Unelte" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Editor Cod" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "Nu sete nici-un obiect selectat pentru oglindire pe axa Y." -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "Oglindire pe axa Y executată." -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "Acțiunea de Oglindire nu a fost executată." -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "Nu este nici-un obiect selectat pentru oglindire pe axa X." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "Oglindirea pe axa X executată." -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "Nici-un obiect selectat pentru Rotaţie." -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "Transformare" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "Introduceți valoaea Unghiului:" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "Rotaţie executată." -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "Mișcarea de rotație nu a fost executată." -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa X." -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "Deformare pe axa X terminată." -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa Y." -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "Deformare pe axa Y terminată." -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Selectează toate" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Deselectează toate" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "Totate obiectele sunt selectate." -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "Nici-un obiect nu este selectat." -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Grid On/Off" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1228 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 #: flatcamTools/ToolNonCopperClear.py:286 flatcamTools/ToolPaint.py:188 #: flatcamTools/ToolSolderPaste.py:121 flatcamTools/ToolSolderPaste.py:591 @@ -874,77 +852,76 @@ msgstr "Grid On/Off" msgid "Add" msgstr "Adaugă" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 -#: flatcamGUI/FlatCAMGUI.py:1955 flatcamGUI/FlatCAMGUI.py:2279 -#: flatcamGUI/ObjectUI.py:1254 flatcamTools/ToolNonCopperClear.py:298 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 +#: flatcamGUI/FlatCAMGUI.py:1967 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/ObjectUI.py:1291 flatcamTools/ToolNonCopperClear.py:298 #: flatcamTools/ToolPaint.py:200 flatcamTools/ToolSolderPaste.py:127 #: flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "Șterge" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "Grid nou ..." -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "Introduceti of valoare pt Grid:" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 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." -#: FlatCAMApp.py:8347 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "Grid nou" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "Grila există deja" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "Adăugarea unei valori de Grilă a fost anulată" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" msgstr " Valoarea Grilei nu există" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "Valoarea Grila a fost stearsă" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "Ștergerea unei valori de Grilă a fost anulată" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "Lista de shortcut-uri" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" msgstr " Nici-un obiect nu este selectat pentru i se copia valoarea" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "Numele a fost copiat pe Clipboard ..." -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Coordonatele au fost copiate in clipboard." -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" -msgstr "[selected]{name} selectat" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +msgid "selected" +msgstr "selectat" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9040 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -954,333 +931,359 @@ msgstr "" "Crearea unui nou Proiect le va șterge..\n" "Doriti să Salvati proiectul curentt?" -#: FlatCAMApp.py:9012 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "Un nou Proiect a fost creat" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Încarcă Gerber" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "Se incarcă un fişier Gerber." -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "Incărcarea unui fişier Gerber este anulată." -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Încarcă Excellon" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "Se incarcă un fişier Excellon." -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." msgstr " Incărcarea unui fişier Excellon este anulată." -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "Încarcă G-Code" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "Se incarcă un fişier G-Code." -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "Incărcarea unui fişier G-Code este anulată." -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Încarcă Project" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "Incărcarea unui fişier Proiect FlatCAM este anulată." -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 +msgid "Open HPGL2" +msgstr "Încarcă HPGL2" + +#: FlatCAMApp.py:9357 +msgid "Opening HPGL2 file." +msgstr "Se incarcă un fişier HPGL2." + +#: FlatCAMApp.py:9362 +msgid "Open HPGL2 file cancelled." +msgstr "Incărcarea fișierului HPGL2 a fost anulată." + +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "Încarcă un fişier de Configurare" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "Incărcarea unui fişier configurare FlatCAM este anulată." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "Nici-un obiect nu este selectat." -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "Selectează un obiect Geometrie pentru export" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Doar obiectele Geometrie, Gerber și CNCJob pot fi folosite." -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Exporta SVG" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr " Exportul fisierului SVG a fost anulat." -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9463 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" -#: FlatCAMApp.py:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "Exporta imagine PNG" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "Exportul imagine PNG este anulat." -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Gerber pentru export." -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 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..." -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "Salvează codul sursa Gerber ca fişier" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "Salvarea codului sursa Gerber este anulată." -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Script pentru export." -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9552 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..." -#: FlatCAMApp.py:9476 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "Salvează codul sursa Script ca fişier" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "Salvarea codului sursa Script este anulată." -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Document pentru export." -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9596 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 ..." -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "Salvează codul sursa Document ca fişier" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "Salvarea codului sursa Document este anulată." -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Excellon pentru export." -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 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 ..." -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "Salvează codul sursa Excellon ca fişier" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "Salvarea codului sursa Excellon este anulată." -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Excellon pentru export." -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "Exportă Excellon" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "Exportul fișierului Excellon a fost anulat." -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "Nici-un obiect selectat. Selectează un obiect Gerber pentru export." -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "Exportă Gerber" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "Exportul fișierului Gerber a fost anulat." -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "Doar obiecte tip Geometrie pot fi folosite." -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "Exportă DXF" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "Exportul fișierului DXF a fost anulat." -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "Importă SVG" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "Incărcarea fișierului SVG a fost anulată." -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "Importa DXF" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "Incărcarea fișierului DXF a fost anulată." -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "Vizualizarea codului sursă a obiectului selectat." -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Se incarcă..." -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 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." -#: FlatCAMApp.py:9854 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "Editor Cod Sursă" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 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." -#: FlatCAMApp.py:9913 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "Codul sursă pentru obiectul selectat nu a putut fi încărcat" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "Un nou script TCL a fost creat in Editorul de cod." -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "Încarcă TCL script" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "Incărcarea fisierului TCL script anulată." -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "Se executa un fisier script FlatCAM." -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "Ruleaza TCL script" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "Executarea fisierului Script a fost anulată." -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10147 msgid "TCL script file opened in Code Editor and executed." msgstr "Un fisier script TCL a fost deschis in Editorul de cod si executat." -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "Salvează Proiectul ca ..." -#: FlatCAMApp.py:10111 -#, python-brace-format -msgid "{l_save}/Project_{date}" -msgstr "{l_save}/Proiect_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" +msgstr "Proiect" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "Salvarea Proiect anulată." -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10216 +msgid "The object is used by another application." +msgstr "Obiectul este folosit de o altă aplicație." + +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 +msgid "Save Object as PDF ..." +msgstr "Salvați obiectul în format PDF ..." + +#: FlatCAMApp.py:10264 +msgid "Save Object PDF cancelled." +msgstr "Salvarea obiectului PDF anulată." + +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "SVG in curs de export" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "Fişier SVG exportat in" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10371 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." -#: FlatCAMApp.py:10383 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "Fişierul Excellon exportat in" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "Excellon in curs de export" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "Fişierul Excellon nu a fost posibil să fie exportat." -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "Fişier Gerber exportat in" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "Gerber in curs de export" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "Fişierul Gerber nu a fost posibil să fie exportat." -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "Fişierul DXF exportat in" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "DXF in curs de export" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "Fişierul DXF nu a fost posibil să fie exportat." -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1288,85 +1291,87 @@ msgstr "" "Tipul parametrului nu este compatibil. Doar obiectele tip Geometrie si " "Gerber sunt acceptate" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "SVG in curs de ia fi importat" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 -#: FlatCAMApp.py:10808 FlatCAMApp.py:10871 FlatCAMApp.py:10909 -#: flatcamTools/ToolImage.py:298 flatcamTools/ToolPDF.py:225 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 +#: FlatCAMApp.py:10942 FlatCAMApp.py:11005 FlatCAMApp.py:11072 +#: FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 +#: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Încarcat" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "DXF in curs de a fi importat" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "Eşec in incărcarea fişierului" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "Parsarea fişierului a eșuat" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 -#: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 +#: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 +#: flatcamTools/ToolPcbWizard.py:437 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:10722 +#: FlatCAMApp.py:10856 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Obiectul nu estetip Gerber sau este gol. Se anulează crearea obiectului." -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "Gerber in curs de incărcare" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." msgstr " Incărcarea Gerber a eșuat. Probabil nu este de tip Gerber." -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "Acesta nu este un fişier Excellon." -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "Nu se poate incărca fişierul" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "Nici-o informaţie de tip geometrie nu s-a gasit in fişierul" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "Excellon in curs de incărcare." -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Incărcarea Excellon a eșuat. Probabil nu este de tip Excellon." -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "Se citeşte un fişier G-Code" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "A eșuat incărcarea fişierului" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "Acest obiect nu este de tip GCode" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "G-Code in curs de incărcare." -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10994 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1377,55 +1382,68 @@ 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" -#: FlatCAMApp.py:10885 +#: FlatCAMApp.py:11053 +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." + +#: FlatCAMApp.py:11058 +msgid "Opening HPGL2" +msgstr "HPGL2 in curs de incărcare" + +#: FlatCAMApp.py:11065 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Incărcarea HPGL2 a eșuat. Probabil nu este de tip HPGL2 ." + +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "Încarcă TCL script..." -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "S-a încărcat un script TCL în Editorul Cod." -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "Eşec in incărcarea fişierului TCL." -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "Se incarca un fişier FlatCAM de configurare." -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "Eşec in incărcarea fişierului de configurare" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "Se încarcă proiectul ... Vă rugăm să așteptați ..." -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "Se incarca un fisier proiect FlatCAM." -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "Eşec in incărcarea fişierului proiect" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "Se încarcă proiectul ... se restabileste" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "Proiectul a fost incărcat din" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "Toate obiectele sunt reafisate" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "Comenzi disponibile:\n" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1437,51 +1455,51 @@ msgstr "" "Introduceți help pentru utilizare.\n" "Exemplu: help open_gerber" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "Arata o lista de comenzi." -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "Eşec in incărcarea listei cu fişiere recente." -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "Eşec in parsarea listei cu fişiere recente." -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "Eşec in incărcarea listei cu proiecte recente." -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "Eşec in parsarea listei cu proiecte recente." -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "Sterge Proiectele recente" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "Sterge fişierele recente" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "Lista cu taste Shortcut" -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Tab-ul Selectat - Alege un obiect din Tab-ul Proiect" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "Detalii" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "Fluxul normal cand se lucreaza in FlatCAM este urmatorul:" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11768 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 " @@ -1491,7 +1509,7 @@ msgstr "" "sau SVG în FlatCAM utilizând fie barele de instrumente, combinatii de taste " "sau chiar tragând fișierele în GUI." -#: FlatCAMApp.py:11570 +#: FlatCAMApp.py:11771 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 " @@ -1501,7 +1519,7 @@ msgstr "" "proiectului, tragând fișierul în fereastra FLATCAM sau prin icon-urile din " "meniu (sau din bara de instrumente) oferite în aplicație." -#: FlatCAMApp.py:11573 +#: FlatCAMApp.py:11774 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 " @@ -1514,7 +1532,7 @@ msgstr "" "proprietățile obiectului în funcție de tipul său: Gerber, Excellon, " "Geometrie sau obiect CNCJob." -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11778 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 " @@ -1528,14 +1546,14 @@ msgstr "" "de pe ecran va aduce fila SELECTAT și o va popula chiar dacă nu a fost in " "focus." -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11782 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:" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1548,7 +1566,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." -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11787 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1557,25 +1575,25 @@ msgstr "" "meniul Ajutor -> Lista de combinatii taste sau prin propria tasta asociata: " "F3." -#: FlatCAMApp.py:11647 +#: FlatCAMApp.py:11848 msgid "Failed checking for latest version. Could not connect." msgstr "" "Verificarea pentru ultima versiune a eșuat. Nu a fost posibilă conectarea la " "server." -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "Informatia cu privire la ultima versiune nu s-a putut interpreta." -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "FlatCAM este la ultima versiune!" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "O nouă versiune este disponibila" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1583,63 +1601,63 @@ msgstr "" "O nouă versiune de FlatCAM este disponibilă pentru download::\n" "\n" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11875 msgid "info" msgstr "informaţie" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "Toate afişările sunt dezactivate." -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "Toate afişările care nu sunt selectate sunt dezactivate." -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "Toate afişările sunt activate." -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "Toate afişările selectate sunt activate..." -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "Toate afişările selectate sunt dezactivate..." -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "Activează Afișare ..." -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "Dezactivează Afișare ..." -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "Se lucrează..." -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "Proiectul FlatCAM este in curs de salvare" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "Proiectul s-a salvat in" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "Eşec in incărcarea fişierului proiect" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "Încercați din nou pentru a-l salva." -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "Esec in analizarea fişierului Proiect" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "Utilizatorul a solicitat o inchidere grațioasă a taskului curent." @@ -1695,43 +1713,33 @@ msgstr "Importă lista" #: FlatCAMCommon.py:260 msgid "Title entry is empty." -msgstr "" +msgstr "Caseta de introducere Titlu este goală." #: FlatCAMCommon.py:269 msgid "Web link entry is empty." -msgstr "" +msgstr "Caseta de introducere a link-ului web este goală." #: FlatCAMCommon.py:277 -#, fuzzy -#| msgid "Edit cancelled. New diameter value is already in the Tool Table." msgid "Either the Title or the Weblink already in the table." -msgstr "" -"Editare eșuată. Noua valoare pt diametrul uneltei este deja in Tabela de " -"Unelte." +msgstr "Fie Titlul, fie Weblink-ul deja sunt in tabel." #: FlatCAMCommon.py:297 -#, fuzzy -#| msgid "Bookmarks Manager" msgid "Bookmark added." -msgstr "Bookmarks Manager" +msgstr "Bookmark adăugat." #: FlatCAMCommon.py:314 msgid "This bookmark can not be removed" msgstr "Acest bookmark nu poate fi eliminat" #: FlatCAMCommon.py:345 -#, fuzzy -#| msgid "Bookmarks limit" msgid "Bookmark removed." -msgstr "Limită nr. bookmark-uri" +msgstr "Bookmark-ul a fost eliminat." #: FlatCAMCommon.py:360 -#, fuzzy -#| msgid "Import FlatCAM Bookmarks" msgid "Export FlatCAM Bookmarks" -msgstr "Importă Bookmark-uri FlatCAM" +msgstr "Exportați bookmark-urile FlatCAM" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "Bookmarks" @@ -1763,100 +1771,89 @@ msgstr "Importul de Bookmark-uri FlatCAM a eșuat." msgid "Imported Bookmarks from" msgstr "Bookmark-uri au fost importate din" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 -#: FlatCAMObj.py:4484 FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 +#: FlatCAMObj.py:4590 FlatCAMObj.py:4599 msgid "Iso" msgstr "Izo" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 -#: FlatCAMObj.py:3488 FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 +#: FlatCAMObj.py:3588 FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "Grosier" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "Finisare" #: FlatCAMCommon.py:513 -#, fuzzy -#| msgid "Tool Number" msgid "Tool Name" -msgstr "Număr unealtă" +msgstr "Nume unealtă" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 -#: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 +#: flatcamGUI/ObjectUI.py:1256 flatcamTools/ToolNonCopperClear.py:271 #: flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "Dia Unealtă" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "Ofset unealtă" #: FlatCAMCommon.py:516 -#, fuzzy -#| msgid "Tool Offset" msgid "Custom Offset" -msgstr "Ofset unealtă" +msgstr "Ofset personal." -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 -#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3991 #: flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "Tip Unealtă" #: FlatCAMCommon.py:518 -#, fuzzy -#| msgid "Tool change" msgid "Tool Shape" -msgstr "Schimb unealtă" +msgstr "Formă unealtă" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 -#: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:1666 flatcamGUI/PreferencesUI.py:2334 +#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4036 +#: flatcamGUI/PreferencesUI.py:4290 flatcamGUI/PreferencesUI.py:5114 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:132 +#: flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "Z tăiere" #: FlatCAMCommon.py:520 -#, fuzzy -#| msgid "Multi-Depth" msgid "MultiDepth" msgstr "Multi-Pas" #: FlatCAMCommon.py:521 msgid "DPP" -msgstr "" +msgstr "DPP" #: FlatCAMCommon.py:522 msgid "V-Dia" -msgstr "" +msgstr "V-Dia" #: FlatCAMCommon.py:523 -#, fuzzy -#| msgid "Angle" msgid "V-Angle" -msgstr "Unghi" +msgstr "V-Unghi" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Z Deplasare" #: FlatCAMCommon.py:525 msgid "FR" -msgstr "" +msgstr "Feedrate" #: FlatCAMCommon.py:526 msgid "FR Z" -msgstr "" +msgstr "Z feedrate" #: FlatCAMCommon.py:527 -#, fuzzy -#| msgid "Feed Rate Rapids" msgid "FR Rapids" msgstr "Feedrate rapizi" @@ -1864,76 +1861,69 @@ msgstr "Feedrate rapizi" msgid "Spindle Speed" msgstr "Viteza Motor" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "Pauza" #: FlatCAMCommon.py:530 -#, fuzzy -#| msgid "Dwell" msgid "Dwelltime" -msgstr "Pauza" +msgstr "Durata pauza" -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 -#: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 +#: flatcamGUI/PreferencesUI.py:2461 flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "Postprocesor" #: FlatCAMCommon.py:532 msgid "ExtraCut" -msgstr "" +msgstr "Extra taiere" #: FlatCAMCommon.py:533 -#, fuzzy -#| msgid "Tool change" +msgid "E-Cut Length" +msgstr "Lungime E-taiere" + +#: FlatCAMCommon.py:534 msgid "Toolchange" msgstr "Schimb unealtă" -#: FlatCAMCommon.py:534 -#, fuzzy -#| msgid "Toolchange X,Y" +#: FlatCAMCommon.py:535 msgid "Toolchange XY" -msgstr "X,Y schimb. unealtă" +msgstr "X,Y schimb unealtă" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 -#: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 -#: flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 +#: flatcamGUI/PreferencesUI.py:3264 flatcamGUI/PreferencesUI.py:6503 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Z schimb. unealtă" -#: FlatCAMCommon.py:536 -#, fuzzy -#| msgid "Start" -msgid "Start Z" -msgstr "Start" - #: FlatCAMCommon.py:537 -#, fuzzy -#| msgid "End move Z" +msgid "Start Z" +msgstr "Z Start" + +#: FlatCAMCommon.py:538 msgid "End Z" -msgstr "Z oprire" +msgstr "Z Oprire" -#: FlatCAMCommon.py:541 -#, fuzzy -#| msgid "Tool order" +#: FlatCAMCommon.py:542 msgid "Tool Index." -msgstr "Ordine unelte" +msgstr "Index unealta." -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 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." -#: FlatCAMCommon.py:547 -#, fuzzy -#| msgid "Tool Diameter" +#: FlatCAMCommon.py:548 msgid "Tool Diameter." -msgstr "Dia unealtă" +msgstr "Diametru unealtă." -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1942,14 +1932,22 @@ msgid "" "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" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 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ă." -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -1957,8 +1955,13 @@ msgid "" "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" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -1966,99 +1969,131 @@ msgid "" "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" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 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." -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 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." -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 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." -#: FlatCAMCommon.py:581 -#, fuzzy -#| msgid "Diameter of the drill for the alignment holes." +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." -msgstr "Diametrul găurii pentru găurile de aliniere." +msgstr "" +"V-Dia.\n" +"Diametrul vârfului pentru uneltele în formă de V." -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 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." -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 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." -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 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." -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 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." -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 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." -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 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." -#: FlatCAMCommon.py:606 -#, fuzzy -#| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +#: FlatCAMCommon.py:607 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." -msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată" +msgstr "" +"Pauză.\n" +"Verificați dacă este necesară o întârziere pentru a permite\n" +"motorului sa ajungă la viteza setată." -#: FlatCAMCommon.py:610 -#, fuzzy -#| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +#: FlatCAMCommon.py:611 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." -msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată" +msgstr "" +"Durata pauzei.\n" +"O întârziere pentru a permite motorului sa ajungă la viteza setată." -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 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." -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2066,390 +2101,376 @@ msgid "" "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ă." -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +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ă." + +#: FlatCAMCommon.py:631 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." -#: FlatCAMCommon.py:628 +#: FlatCAMCommon.py:636 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." -#: FlatCAMCommon.py:633 +#: FlatCAMCommon.py:641 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." -#: FlatCAMCommon.py:636 +#: FlatCAMCommon.py:644 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." -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 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." -#: FlatCAMCommon.py:661 -#, fuzzy -#| msgid "Add Text Tool" +#: FlatCAMCommon.py:669 msgid "Add Tool to Tools DB" -msgstr "Unealta Adaugare Text" +msgstr "Adăugați Unealta in DB Unelte" -#: FlatCAMCommon.py:663 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." +#: FlatCAMCommon.py:671 msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." msgstr "" -"Adaugă o noua unelata in Tabela de Unelte,\n" -"cu diametrul specificat mai sus." - -#: FlatCAMCommon.py:666 -msgid "Remove Tool from Tools DB" -msgstr "" - -#: FlatCAMCommon.py:668 -#, fuzzy -#| msgid "No selected tools in Tool Table." -msgid "Remove a selection of tools in the Tools Database." -msgstr "Nu sunt unelte selectate in Tabela de Unelte." - -#: FlatCAMCommon.py:670 -#, fuzzy -#| msgid "Export DXF" -msgid "Export Tool DB" -msgstr "Exportă DXF" - -#: FlatCAMCommon.py:672 -msgid "Save the Tools Database to a custom text file." -msgstr "" +"Adăugați un instrument nou în baza de date Unelte.\n" +"Îl puteți edita după ce este adăugat." #: FlatCAMCommon.py:674 -#, fuzzy -#| msgid "PDF Import Tool" -msgid "Import Tool DB" -msgstr "Unealta import PDF" +msgid "Remove Tool from Tools DB" +msgstr "Stergeti Unealta din DB Unelte" #: FlatCAMCommon.py:676 +msgid "Remove a selection of tools in the Tools Database." +msgstr "Stergeți o selecție de Unelte din baza de date Unelte." + +#: FlatCAMCommon.py:678 +msgid "Export Tool DB" +msgstr "Export DB Unelte" + +#: FlatCAMCommon.py:680 +msgid "Save the Tools Database to a custom text file." +msgstr "Salvați baza de date Unelte într-un fișier text." + +#: FlatCAMCommon.py:682 +msgid "Import Tool DB" +msgstr "Import DB Unelte" + +#: FlatCAMCommon.py:684 msgid "Load the Tools Database information's from a custom text file." -msgstr "" +msgstr "Încărcați informațiile din baza de date Unelte dintr-un fișier text." -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" -msgstr "" +msgstr "Adăugați Unealta din DB Unelte" -#: FlatCAMCommon.py:688 -#, fuzzy -#| msgid "" -#| "Copy a selection of tools in the Tool Table\n" -#| "by first selecting a row in the Tool Table." +#: FlatCAMCommon.py:696 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 "" -"Copiază o selecţie de unelte in Tabela de Unelte prin\n" -"selectarea unei linii (sau mai multe) in Tabela de Unelte." +"Adăugați o Unealta noua în Tabelul Unelte din\n" +"obiectul Geometrie activ după selectarea unei Unelte\n" +"în baza de date Unelte." -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 -#, fuzzy -#| msgid "Could not load bookmarks file." +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 msgid "Could not load Tools DB file." -msgstr "Nu am putut incărca fişierul cu bookmark-uri." +msgstr "Nu s-a putut încărca fișierul DB Unelte." -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 -#, fuzzy -#| msgid "Failed to parse defaults file." +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 msgid "Failed to parse Tools DB file." -msgstr "Parsarea fişierului cu valori default a eșuat." +msgstr "Eroare la analizarea fișierului DB Unelte." -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" -msgstr "" +msgstr "S-a incărcat DB Unelte din" -#: FlatCAMCommon.py:744 -#, fuzzy -#| msgid "Add Tool" +#: FlatCAMCommon.py:752 msgid "Add to DB" -msgstr "Adaugă Unealta" +msgstr "Adăugați la DB Unelte" -#: FlatCAMCommon.py:746 -#, fuzzy -#| msgid "Copy Geom\tC" +#: FlatCAMCommon.py:754 msgid "Copy from DB" -msgstr "Copiază Geo\tC" +msgstr "Copiați din DB Unelte" -#: FlatCAMCommon.py:748 -#, fuzzy -#| msgid "Delete Tool" +#: FlatCAMCommon.py:756 msgid "Delete from DB" -msgstr "Șterge Unealta" +msgstr "Ștergeți din DB Unelte" -#: FlatCAMCommon.py:998 -#, fuzzy -#| msgid "Tool added in Tool Table." +#: FlatCAMCommon.py:1026 msgid "Tool added to DB." -msgstr "Unealtă adăugată in Tabela de Unelte." +msgstr "Unealtă adăugată in DB Unelte" -#: FlatCAMCommon.py:1019 -#, fuzzy -#| msgid "Tool was copied in Tool Table." +#: FlatCAMCommon.py:1047 msgid "Tool copied from Tools DB." -msgstr "Unealta a fost copiata in Tabela de Unelte." +msgstr "Unealta a fost copiata din DB Unelte." -#: FlatCAMCommon.py:1037 -#, fuzzy -#| msgid "Tool(s) deleted from Tool Table." +#: FlatCAMCommon.py:1065 msgid "Tool removed from Tools DB." -msgstr "Au fost șterse unelte din Tabela de Unelte." +msgstr "Unealta a fost stearsa din DB Unelte." -#: FlatCAMCommon.py:1048 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMCommon.py:1076 msgid "Export Tools Database" -msgstr "Date unealtă" +msgstr "Export DB Unelte" -#: FlatCAMCommon.py:1051 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMCommon.py:1079 msgid "Tools_Database" -msgstr "Date unealtă" +msgstr "DB Unelte" -#: FlatCAMCommon.py:1058 -#, fuzzy -#| msgid "FlatCAM bookmarks export cancelled." +#: FlatCAMCommon.py:1086 msgid "FlatCAM Tools DB export cancelled." -msgstr "Exportul de bookmark-uri FlatCAM este anulat." +msgstr "Exportul DB Unelte a fost anulat." -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 -#, fuzzy -#| msgid "Failed to write bookmarks to file." +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 msgid "Failed to write Tools DB to file." -msgstr "Salvarea bookmark-urilor intr-un fişier a eșuat." +msgstr "Eroare la scrierea DB Unelte în fișier." -#: FlatCAMCommon.py:1094 -#, fuzzy -#| msgid "Exported bookmarks to" +#: FlatCAMCommon.py:1122 msgid "Exported Tools DB to" -msgstr "Exportă Bookmark-uri in" +msgstr "S-a exportat DB Unelte in" -#: FlatCAMCommon.py:1101 -#, fuzzy -#| msgid "Import FlatCAM Bookmarks" +#: FlatCAMCommon.py:1129 msgid "Import FlatCAM Tools DB" -msgstr "Importă Bookmark-uri FlatCAM" +msgstr "Importă DB Unelte" -#: FlatCAMCommon.py:1104 -#, fuzzy -#| msgid "FlatCAM bookmarks import cancelled." +#: FlatCAMCommon.py:1132 msgid "FlatCAM Tools DB import cancelled." -msgstr "Importul de Bookmark-uri FlatCAM a eșuat." +msgstr "Importul DB Unelte a fost anulat." -#: FlatCAMCommon.py:1147 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMCommon.py:1175 msgid "Saved Tools DB." -msgstr "Date unealtă" +msgstr "DB unelte salvata." -#: FlatCAMCommon.py:1293 -#, fuzzy -#| msgid "Failed. No tool selected in the tool table ..." +#: FlatCAMCommon.py:1322 msgid "No Tool/row selected in the Tools Database table" -msgstr "Eșuat. Nici-o unealtă nu este selectată in Tabela de Unelte ..." +msgstr "Nu a fost selectat nici-o Unealta / rând în tabela DB Unelte" -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." -msgstr "" +msgstr "S-a anulat adăugarea de Unealtă din DB Unelte." -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "Nume schimbat din" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "la" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "Ofsetare..." -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +msgid "Scaling could not be executed." +msgstr "Scalarea nu a putut fi executată." + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +msgid "Scale done." +msgstr "Scalare efectuată." + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "Scalare..." -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "Deformare..." -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 #: flatcamGUI/PreferencesUI.py:1123 flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "Baza" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 #: flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "Avansat" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "Buferarea geometriei solide" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 #: flatcamTools/ToolCopperThieving.py:1199 #: flatcamTools/ToolCopperThieving.py:1211 -#: flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 -#: flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 -#: flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 +#: flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 +#: flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "Buferare" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "Executat" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "Se izoleaza..." -#: FlatCAMObj.py:1063 -#, fuzzy -#| msgid "Click on Stop point to complete ..." +#: FlatCAMObj.py:1078 msgid "Click on a polygon to isolate it." -msgstr "Click pe punctul de Stop pentru terminare ..." +msgstr "Faceți clic pe un poligon pentru a-l izola." -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 -#, fuzzy -#| msgid "Add Polygon" +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 msgid "Added polygon" -msgstr "Adaugă Poligon" +msgstr "S-a adăugat poligon" -#: FlatCAMObj.py:1097 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 msgid "Click to add next polygon or right click to start isolation." msgstr "" -"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " -"dreapta pentru a termina." +"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " +"a începe izolarea." -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 -#, fuzzy -#| msgid "Add Polygon" +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 msgid "Removed polygon" -msgstr "Adaugă Poligon" +msgstr "Poligon eliminat" -#: FlatCAMObj.py:1110 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." +#: FlatCAMObj.py:1132 msgid "Click to add/remove next polygon or right click to start isolation." msgstr "" -"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " -"dreapta pentru a termina." +"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " +"dreapta pentru a începe izolarea." -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." -msgstr "" +msgstr "Nu a fost detectat niciun poligon sub poziția clicului." -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." -msgstr "" +msgstr "Lista Poligoanelor este goală. Intrerup." -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 -#: flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +msgid "No polygon in selection." +msgstr "Niciun poligon în selecție." + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 +#: flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "Geometria de izolare nu a fost posibil să fie generată." -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "Geometria de izolare creată" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "Scădere Geo" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "Aperturile sunt in curs de afișare" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "Nr. Tot. Op. Găurire" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "Nr. Tot. Sloturi" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 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." -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 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." -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 -#: flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 +#: flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "Unealta" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "Nr. Unealtă" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 -#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:736 +#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:753 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 #: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:396 #: flatcamTools/ToolProperties.py:449 flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "Diametru" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "Nr. gaura" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "Nr. slot" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "Anulat. Freza este mai mare decat diametrul slotului de frezat." -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" msgstr "" "Valoare gresita pt self.defaults[\"z_pdepth\"] sau self.options[\"z_pdepth\"]" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" @@ -2457,103 +2478,89 @@ msgstr "" "Valoare gresita pt self.defaults[\"feedrate_probe\"] sau self." "options[\"feedrate_probe\"]" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "CNC Code in curs de generare" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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țe trebuie să fie " -"in formatul (x, y) \n" -"dar are o singură valoare in loc de doua. " - -#: FlatCAMObj.py:3794 -#, fuzzy -#| msgid "Add Tool" +#: FlatCAMObj.py:3896 msgid "Add from Tool DB" -msgstr "Adaugă Unealta" +msgstr "Adaugă Unealta din DB Unelte" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 -#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2154 -#: flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 +#: flatcamGUI/FlatCAMGUI.py:1966 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "Copiază" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 -#: flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 -#: flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 -#: flatcamTools/ToolNonCopperClear.py:1464 flatcamTools/ToolPaint.py:838 -#: flatcamTools/ToolPaint.py:1022 flatcamTools/ToolPaint.py:2094 +#: flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 +#: flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 +#: flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 +#: flatcamEditors/FlatCAMGeoEditor.py:1240 +#: flatcamTools/ToolNonCopperClear.py:1057 +#: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 +#: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 #: flatcamTools/ToolSolderPaste.py:879 flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "Valoare in format incorect, foloseşte un număr." -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "Introdu diametrul dorit pt unealtă in format Real." -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "Unealtă adăugată in Tabela de Unelte." -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "Unealta implicita adăugată dar valoarea are un format gresit." -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "Eșuat. Selectează o unealtă pt copiere." -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "Unealta a fost copiata in Tabela de Unelte." -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "Unealta a fost editata in Tabela de Unelte." -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "Eșuat. Selectează o unealtă pentru ștergere." -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "Unealta a fost stearsa din Tabela de Unelte." -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 -#, fuzzy -#| msgid "Parameters" +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 msgid "Parameters for" -msgstr "Parametri" +msgstr "Parametri pt" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "Acest obiect Geometrie nu poate fi procesat deoarece" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "geometria" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "Eșuat. Nici-o unealtă nu este selectată in Tabela de Unelte ..." -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -2562,44 +2569,44 @@ msgstr "" "este oferita.\n" "Adaugă un ofset pt unealtă sau schimbă Tipul Ofset." -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "Analiza codului G în curs ..." -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "Analizarea codului G s-a terminat ..." -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "Prelucrarea G-Code terminată" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "Procesarea G-Code a eșuat cu eroarea" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "Anulat. Fişier gol, nu are geometrie" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "Prelucrarea G-Code terminată ..." -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "CNCjob creat" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "Factorul de scalare trebuie să fie un număr: natural sau real." -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "Scalare Geometrie executată." -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -2607,11 +2614,11 @@ msgstr "" "O pereche de valori (x,y) este necesară. Probabil că ai introdus numai o " "singură valoare in câmpul Offset." -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "Ofset Geometrie executat." -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -2621,80 +2628,80 @@ msgstr "" "in formatul (x, y) \n" "dar are o singură valoare in loc de două." -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "Baza" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "Avansat" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "Se afișeaza..." -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "Exporta CNC Cod Masina ..." -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "Exportul Codului Mașina a fost anulat ..." -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "Fişierul cu cod CNC este salvat in" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "S-a încărcat Codul Masina în Editorul Cod" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "Acest obiect CNCJob nu poate fi procesat deoarece este un" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "Obiect CNCJob" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "G-code nu contine codul pt unitati: G20 sau G21" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 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." -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 msgid "Toolchange G-code was replaced by a custom code." msgstr "G-Code-ul pt schimbare unealtă a fost inlocuit cu un cod pesonalizat." -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "Nu exista un aşa fişier sau director" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "Salvat in" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 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'" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "Nu exista nici-un fişier postprocesor." -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "Editor Script" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "Editor Documente" @@ -2719,7 +2726,7 @@ msgstr "Aplică Traducere ..." msgid "Object renamed from {old} to {new}" msgstr "Obiectul este redenumit din {old} in {new}" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "Motivul erorii" @@ -2767,7 +2774,7 @@ msgstr "Deformare eșuată. Nici-un obiect nu este selectat" msgid "There is no such parameter" msgstr "Nu exista un asemenea parametru" -#: camlib.py:2366 +#: camlib.py:2368 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -2780,37 +2787,47 @@ 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:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 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:2450 +#: camlib.py:2389 camlib.py:3409 +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țe trebuie să fie " +"in formatul (x, y) \n" +"dar are o singură valoare in loc de doua. " + +#: camlib.py:2458 msgid "Creating a list of points to drill..." msgstr "Crearea unei liste de puncte pentru găurire ..." -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "Începând G-Code" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "Pornirea codului G pentru scula cu diametrul" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "Coordonatele G91 nu au fost implementate" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "Fişierul Excellon incărcat nu are găuri" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "Generarea G-Code finalizata ..." -#: camlib.py:3050 +#: camlib.py:3061 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -2820,7 +2837,7 @@ msgstr "" "in formatul (x, y) \n" "dar are o singură valoare in loc de doua." -#: camlib.py:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -2828,7 +2845,7 @@ msgstr "" "Parametrul >Z tăiere< este None sau zero. Cel mai probabil o combinaţie " "nefericita de parametri." -#: camlib.py:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -2841,11 +2858,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:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "Parametrul >Z deplasare< este None sau zero." -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -2858,40 +2875,40 @@ 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:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 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:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "Geometria se indexeaza înainte de a genera G-Code..." -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "Pornirea G-Code ..." -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "Generarea G-Code terminată" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "căi trasate" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "Se astepta o Geometrie, am primit in schimb" -#: camlib.py:3303 +#: camlib.py:3316 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:3343 +#: camlib.py:3356 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -2900,35 +2917,35 @@ msgstr "" "current_geometry \n" "Mareste valoarea absoluta și încearcă din nou." -#: camlib.py:3604 +#: camlib.py:3618 msgid " paths traced." msgstr " căi trasate." -#: camlib.py:3632 +#: camlib.py:3646 msgid "There is no tool data in the SolderPaste geometry." msgstr "Nu există date cu privire la unealtă in Geometria SolderPaste." -#: camlib.py:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "Generarea G-Code SolderPaste s-a terminat" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "căi trasate." -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "Analizând fișierul GCode. Numărul de linii" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "Crează un obiect tip Geometrie din fisierul GCode analizat. " -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "Coordonatele G91 nu au fost implementate ..." -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "Se unifica Geometria din segmentele de Geometrie parsate" @@ -3043,8 +3060,8 @@ msgstr "" "dimetrul la care se face redimensionarea." #: flatcamEditors/FlatCAMExcEditor.py:983 -#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2879 -#: flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2892 +#: flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "Anulat." @@ -3069,7 +3086,7 @@ msgstr "Executat. Operatiile de găurire au fost mutate." msgid "Done. Drill(s) copied." msgstr "Executat. Operatiile de găurire au fost copiate." -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "Editor Excellon" @@ -3078,13 +3095,13 @@ msgstr "Editor Excellon" msgid "Name:" msgstr "Nume:" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "Tabela Unelte" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -3104,8 +3121,8 @@ msgstr "" "Adaugă/Șterge o unealtă la lista de unelte\n" "pentru acest obiect Excellon." -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "Diametru pentru noua unealtă (burghiu, freza)" @@ -3133,7 +3150,7 @@ msgstr "" "Șterge o unealtă in lista de unelte\n" "prin selectarea unei linii in tabela de unelte." -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "Redimensionare operațiuni de găurire" @@ -3159,8 +3176,8 @@ msgstr "Redimensionează" msgid "Resize drill(s)" msgstr "Redimensionează op. de găurire." -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "Adaugă o arie de op. găurire" @@ -3184,17 +3201,17 @@ msgstr "Liniar" #: flatcamEditors/FlatCAMExcEditor.py:1634 #: flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "Nr. op. găurire" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "Specifica cate operațiuni de găurire să fie incluse in arie." @@ -3205,14 +3222,14 @@ msgstr "Specifica cate operațiuni de găurire să fie incluse in arie." #: flatcamEditors/FlatCAMExcEditor.py:1927 #: flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 -#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2970 +#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "Direcţie" #: flatcamEditors/FlatCAMExcEditor.py:1663 #: flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -3228,8 +3245,8 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 #: flatcamEditors/FlatCAMGrbEditor.py:2733 flatcamGUI/PreferencesUI.py:1946 -#: flatcamGUI/PreferencesUI.py:2884 flatcamGUI/PreferencesUI.py:2979 -#: flatcamGUI/PreferencesUI.py:3032 flatcamGUI/PreferencesUI.py:4804 +#: flatcamGUI/PreferencesUI.py:2886 flatcamGUI/PreferencesUI.py:2981 +#: flatcamGUI/PreferencesUI.py:3034 flatcamGUI/PreferencesUI.py:4822 #: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" @@ -3238,8 +3255,8 @@ msgstr "X" #: flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 #: flatcamEditors/FlatCAMGrbEditor.py:2734 flatcamGUI/PreferencesUI.py:1947 -#: flatcamGUI/PreferencesUI.py:2885 flatcamGUI/PreferencesUI.py:2980 -#: flatcamGUI/PreferencesUI.py:3033 flatcamGUI/PreferencesUI.py:4805 +#: flatcamGUI/PreferencesUI.py:2887 flatcamGUI/PreferencesUI.py:2982 +#: flatcamGUI/PreferencesUI.py:3035 flatcamGUI/PreferencesUI.py:4823 #: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" @@ -3255,10 +3272,10 @@ msgstr "Y" #: flatcamEditors/FlatCAMGrbEditor.py:2735 #: flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -3267,25 +3284,19 @@ msgstr "Unghi" #: flatcamEditors/FlatCAMExcEditor.py:1676 #: flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "Pas" #: flatcamEditors/FlatCAMExcEditor.py:1678 #: flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "Pas = Distanta între elementele ariei." #: flatcamEditors/FlatCAMExcEditor.py:1691 #: flatcamEditors/FlatCAMExcEditor.py:1907 -#, fuzzy -#| 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." msgid "" "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" @@ -3294,7 +3305,7 @@ msgid "" 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 minima este: -360grade.\n" "Val maxima este: 360.00 grade." #: flatcamEditors/FlatCAMExcEditor.py:1712 @@ -3310,25 +3321,25 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 #: flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "Orar" #: flatcamEditors/FlatCAMExcEditor.py:1720 #: flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "Antiorar" #: flatcamEditors/FlatCAMExcEditor.py:1724 #: flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "" "Unghiul la care fiecare element al ariei circulare este plasat fata de " @@ -3346,16 +3357,16 @@ msgstr "" "Parametri pentru adăugarea unui slot (gaură cu formă ovală)\n" "fie single sau ca parte a unei arii." -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "Lungime" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "Lungime = Lungimea slotului." -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -3368,12 +3379,6 @@ msgstr "" "- „Unghi” - un unghi personalizat pentru înclinarea slotului" #: flatcamEditors/FlatCAMExcEditor.py:1800 -#, fuzzy -#| 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." msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -3382,8 +3387,8 @@ msgid "" 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." +"Valoarea minimă este: -360 grade.\n" +"Valoarea maximă este: 360.00 grade." #: flatcamEditors/FlatCAMExcEditor.py:1833 msgid "Slot Array Parameters" @@ -3401,11 +3406,11 @@ msgstr "" "Selectați tipul de slot pentru creare.\n" "Poate fi liniar X (Y) sau circular" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "Nr de sloturi" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "Specificați câte sloturi trebuie să fie în arie." @@ -3418,7 +3423,7 @@ msgstr "" "Salvează și reeditează obiectul Excellon dacă ai nevoie să adaugi această " "unealtă. " -#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "O nouă unealtă este adăugată cu diametrul" @@ -3495,7 +3500,7 @@ msgid "Round" msgstr "Rotund" #: flatcamEditors/FlatCAMGeoEditor.py:96 -#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5971 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5989 #: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Patrat" @@ -3518,7 +3523,7 @@ msgid "Full Buffer" msgstr "Bufer complet" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamEditors/FlatCAMGeoEditor.py:2758 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Unealta Bufer" @@ -3526,9 +3531,9 @@ msgstr "Unealta Bufer" #: flatcamEditors/FlatCAMGeoEditor.py:145 #: flatcamEditors/FlatCAMGeoEditor.py:162 #: flatcamEditors/FlatCAMGeoEditor.py:179 -#: flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 -#: flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 +#: flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" @@ -3539,7 +3544,7 @@ msgstr "" msgid "Font" msgstr "Font" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "Text" @@ -3547,13 +3552,13 @@ msgstr "Text" msgid "Text Tool" msgstr "Unealta Text" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "Dia unealtă" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -3561,30 +3566,16 @@ msgstr "" "Diametrul uneltei care este utilizata in operaţie. \n" "Este și lăţimea de tăiere pentru uneltele cilindrice." -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "Rată suprapunere" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, fuzzy, python-format -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3594,9 +3585,6 @@ msgid "" msgstr "" "Cat de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " "trecere a uneltei.\n" -"Exemplu:\n" -"O valoare aici de 0.25 inseamna 25%% din diametrul uneltei de mai sus.\n" -"\n" "Ajustează valoarea incepand de la valori mici și pe urma creste daca ariile " "care ar trebui\n" " >pictate< inca nu sunt procesate.\n" @@ -3604,17 +3592,17 @@ msgstr "" "Valori mari= procesare lenta cat și o execuţie la fel de lenta a PCB-ului,\n" "datorita numărului mai mare de treceri-tăiere." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "Margine" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3625,13 +3613,13 @@ msgstr "" "poligonului care trebuie\n" "să fie >pictat<." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Metodă" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -3639,30 +3627,30 @@ msgstr "" "Algoritm pentru a picta poligonul
Standard: Pas fix spre interior." "
Samanta: Spre exterior pornind de la un punct-samanta." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Standard" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "Punct-samanta" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Linii drepte" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "Conectează:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" @@ -3672,12 +3660,12 @@ msgstr "" "rezultate pentru a minimiza miscarile\n" "de ridicare a uneltei." -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "Contur:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" "Cut around the perimeter of the polygon\n" @@ -3686,86 +3674,86 @@ msgstr "" "Taie de-a lungul perimetrului poligonului\n" "pentru a elimina bavurile." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Pictează" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 -#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 +#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Unealta Paint" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "Operaţie Paint anulată. Nici-o forma selectată." -#: flatcamEditors/FlatCAMGeoEditor.py:599 -#: flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3138 +#: flatcamEditors/FlatCAMGeoEditor.py:597 +#: flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 +#: flatcamEditors/FlatCAMGeoEditor.py:2844 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Unelte" -#: flatcamEditors/FlatCAMGeoEditor.py:610 -#: flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:751 -#: flatcamGUI/FlatCAMGUI.py:2195 flatcamTools/ToolTransform.py:371 +#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 +#: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Unealta Transformare" -#: flatcamEditors/FlatCAMGeoEditor.py:611 -#: flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 -#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5189 +#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Rotaţie" -#: flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGrbEditor.py:5013 flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "Deformare" -#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 -#: flatcamGUI/FlatCAMGUI.py:2271 flatcamGUI/ObjectUI.py:92 -#: flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/ObjectUI.py:92 +#: flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "Scalare" -#: flatcamEditors/FlatCAMGeoEditor.py:614 +#: flatcamEditors/FlatCAMGeoEditor.py:612 #: flatcamEditors/FlatCAMGrbEditor.py:5015 flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "Oglindire" -#: flatcamEditors/FlatCAMGeoEditor.py:615 -#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:124 -#: flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 +#: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "Ofset" -#: flatcamEditors/FlatCAMGeoEditor.py:628 -#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:698 -#: flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGeoEditor.py:626 +#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 +#: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Editor" -#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGeoEditor.py:658 #: flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "Unghi:" -#: flatcamEditors/FlatCAMGeoEditor.py:662 -#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5199 +#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" @@ -3777,7 +3765,7 @@ msgstr "" "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:678 +#: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" @@ -3789,17 +3777,17 @@ msgstr "" "formei înconjurătoare care cuprinde\n" "toate formele selectate." -#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:699 #: flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "Unghi X:" -#: flatcamEditors/FlatCAMGeoEditor.py:703 -#: flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 -#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5218 -#: flatcamGUI/PreferencesUI.py:5232 flatcamTools/ToolCalibration.py:445 -#: flatcamTools/ToolCalibration.py:458 +#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 +#: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 +#: flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -3807,13 +3795,13 @@ msgstr "" "Valoarea unghiului de Deformare, in grade.\n" "Ia valori Reale între -360 and 359 grade." -#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:712 #: flatcamEditors/FlatCAMGrbEditor.py:5115 flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "Deformare X" -#: flatcamEditors/FlatCAMGeoEditor.py:716 -#: flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 #: flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" @@ -3826,33 +3814,33 @@ msgstr "" "formei înconjurătoare care cuprinde\n" "toate formele selectate." -#: flatcamEditors/FlatCAMGeoEditor.py:721 +#: flatcamEditors/FlatCAMGeoEditor.py:719 #: flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "Unghi Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:734 +#: flatcamEditors/FlatCAMGeoEditor.py:732 #: flatcamEditors/FlatCAMGrbEditor.py:5135 flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "Deformare Y" -#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGeoEditor.py:760 #: flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "Factor X:" -#: flatcamEditors/FlatCAMGeoEditor.py:764 -#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Factor pentru scalarea pe axa X." -#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:772 #: flatcamEditors/FlatCAMGrbEditor.py:5175 flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "Scalează X" -#: flatcamEditors/FlatCAMGeoEditor.py:776 -#: flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 #: flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" @@ -3864,28 +3852,28 @@ msgstr "" "Punctul de referinţă depinde de \n" "starea checkbox-ului >Referința scalare<." -#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGeoEditor.py:779 #: flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "Factor Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:783 -#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Factor pentru scalarea pe axa Y." -#: flatcamEditors/FlatCAMGeoEditor.py:793 +#: flatcamEditors/FlatCAMGeoEditor.py:791 #: flatcamEditors/FlatCAMGrbEditor.py:5194 flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "Scalează Y" -#: flatcamEditors/FlatCAMGeoEditor.py:802 -#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5268 +#: flatcamEditors/FlatCAMGeoEditor.py:800 +#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Legatura" -#: flatcamEditors/FlatCAMGeoEditor.py:804 +#: flatcamEditors/FlatCAMGeoEditor.py:802 #: flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" @@ -3894,13 +3882,13 @@ msgstr "" "Scalează formele selectate\n" "folsoind factorul: Factor X pentru ambele axe." -#: flatcamEditors/FlatCAMGeoEditor.py:810 -#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5276 +#: flatcamEditors/FlatCAMGeoEditor.py:808 +#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Referința scalare" -#: flatcamEditors/FlatCAMGeoEditor.py:812 +#: flatcamEditors/FlatCAMGeoEditor.py:810 #: flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" @@ -3914,23 +3902,23 @@ msgstr "" "toate formele selectate când nu este\n" "bifat și este originea când este bifat." -#: flatcamEditors/FlatCAMGeoEditor.py:840 +#: flatcamEditors/FlatCAMGeoEditor.py:838 #: flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "Valoare X:" -#: flatcamEditors/FlatCAMGeoEditor.py:842 +#: flatcamEditors/FlatCAMGeoEditor.py:840 #: flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "Valoare pentru deplasarea pe axa X." -#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:850 #: flatcamEditors/FlatCAMGrbEditor.py:5254 flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "Ofset pe X" -#: flatcamEditors/FlatCAMGeoEditor.py:854 -#: flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 #: flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" @@ -3943,28 +3931,28 @@ msgstr "" "formei înconjurătoare care cuprinde\n" "toate formele selectate.\n" -#: flatcamEditors/FlatCAMGeoEditor.py:860 +#: flatcamEditors/FlatCAMGeoEditor.py:858 #: flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "Valoare Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:862 +#: flatcamEditors/FlatCAMGeoEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "Valoare pentru deplasarea pe axa Y." -#: flatcamEditors/FlatCAMGeoEditor.py:872 +#: flatcamEditors/FlatCAMGeoEditor.py:870 #: flatcamEditors/FlatCAMGrbEditor.py:5274 flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "Ofset pe Y" -#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:901 #: flatcamEditors/FlatCAMGrbEditor.py:5305 flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "Oglindește pe X" -#: flatcamEditors/FlatCAMGeoEditor.py:905 -#: flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 #: flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" @@ -3974,17 +3962,17 @@ msgstr "" "Oglindește formele selectate peste axa X\n" "Nu crează noi forme." -#: flatcamEditors/FlatCAMGeoEditor.py:910 +#: flatcamEditors/FlatCAMGeoEditor.py:908 #: flatcamEditors/FlatCAMGrbEditor.py:5312 flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "Oglindește pe Y" -#: flatcamEditors/FlatCAMGeoEditor.py:918 +#: flatcamEditors/FlatCAMGeoEditor.py:916 #: flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "Pt ref" -#: flatcamEditors/FlatCAMGeoEditor.py:920 +#: flatcamEditors/FlatCAMGeoEditor.py:918 #: flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" @@ -4008,12 +3996,12 @@ msgstr "" "Alternativ se pot introduce manual in formatul (x, y). \n" "La final click pe >Oglindește pe X(Y)<." -#: flatcamEditors/FlatCAMGeoEditor.py:932 +#: flatcamEditors/FlatCAMGeoEditor.py:930 #: flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "Punct:" -#: flatcamEditors/FlatCAMGeoEditor.py:934 +#: flatcamEditors/FlatCAMGeoEditor.py:932 #: flatcamEditors/FlatCAMGrbEditor.py:5336 flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -4024,7 +4012,7 @@ msgstr "" "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:944 +#: flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:5348 flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -4036,360 +4024,360 @@ msgstr "" "tasta SHIFT.\n" "La final, apasa butonul >Adaugă< pt a le insera." -#: flatcamEditors/FlatCAMGeoEditor.py:1059 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 #: flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "Transformare anulată. Nici-o formă nu este selectată." -#: flatcamEditors/FlatCAMGeoEditor.py:1260 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 #: flatcamEditors/FlatCAMGrbEditor.py:5657 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:1263 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 #: flatcamEditors/FlatCAMGrbEditor.py:5660 flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "Execuţie Rotaţie" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 #: flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "Executat. Rotaţie finalizată." -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "Actiunea de rotatie nu a fost efectuată" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 #: flatcamEditors/FlatCAMGrbEditor.py:5715 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:1312 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 #: flatcamEditors/FlatCAMGrbEditor.py:5718 flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "Execuţie Oglindire" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 #: flatcamEditors/FlatCAMGrbEditor.py:5758 flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "Oglindire pe axa Y executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 #: flatcamEditors/FlatCAMGrbEditor.py:5767 flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "Oglindire pe axa X executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "Actiunea de oglindire nu a fost efectuată" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 #: flatcamEditors/FlatCAMGrbEditor.py:5789 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:1370 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 #: flatcamEditors/FlatCAMGrbEditor.py:5792 flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "Execuţie Deformare" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 #: flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "Oglindire pe axa X executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "Oglindire pe axa Y executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "Actiunea de deformare nu a fost efectuată" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 #: flatcamEditors/FlatCAMGrbEditor.py:5854 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:1418 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 #: flatcamEditors/FlatCAMGrbEditor.py:5857 flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "Execuţie Scalare" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 #: flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "Scalarea pe axa X executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 #: flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "Scalarea pe axa Y executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "Scalarea nu a fost efectuată" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 #: flatcamEditors/FlatCAMGrbEditor.py:5915 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:1472 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 #: flatcamEditors/FlatCAMGrbEditor.py:5918 flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "Execuţie Ofset" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 #: flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "Ofset pe axa X efectuat" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 #: flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "Ofset pe axa Y efectuat" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "Actiuena de Ofset nu a fost efectuată" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 #: flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "Rotaţie ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1497 -#: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 +#: flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 #: flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 #: flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "Introdu o valoare in grade pt Unghi" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 #: flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "Rotatia formei geometrice executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "Rotatia formei geometrice anulată" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 #: flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "Ofset pe axa X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1516 -#: flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 +#: flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 #: flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "Introdu of valoare pt Distantă" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 #: flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "Ofset pe axa X executat" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "Ofset pe axa X anulat" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 #: flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "Ofset pe axa Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1544 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 #: flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "Ofset pe axa Y executat" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "Ofset pe axa Y anulat" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 #: flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "Deformare pe axa X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1561 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 #: flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "Deformarea pe axa X executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "Deformarea pe axa X anulată" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 #: flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "Deformare pe axa Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 #: flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "Deformarea pe axa Y executată" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "Deformarea pe axa Y anulată" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 -#: flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 +#: flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "Click pe punctul de Centru ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1953 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 #: flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "Click pe un punct aflat pe Circumferintă pentru terminare ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "Executat. Adăugarea unei forme Cerc terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2018 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 #: flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "Click pe punctul de Start ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2020 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 #: flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "Click pe Punctul3 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2022 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 #: flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "Click pe punctulde Stop ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2027 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 #: flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "Click pe punctul de Stop pentru terminare ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2029 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 #: flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "Click pe Punctul2 pentru terminare ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2031 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 #: flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "Click pe punctul de Centru pentru terminare ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "Direcţie: %s" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 #: flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Mod: Start -> Stop -> Centru. Click pe punctul de Start ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2056 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 #: flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Mod: Point1 -> Point3 -> Point2. Click pe Punctul1 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2059 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 #: flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Mod: Center -> Start -> Stop. Click pe punctul de Centru ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "Executat. Adăugarea unei forme Arc terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2217 -#: flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 +#: flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "Click pe primul colt ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "Click pe punctul opus pentru terminare ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "Executat. Adăugare Pătrat terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 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:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "Executat. Adăugarea unei forme Poligon terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2317 -#: flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 +#: flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 #: flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "Revenit la penultimul Punct ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "Executat. Traseu finalizat." -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "Nicio formă selectată. Selectați o formă pentru a o exploda" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "Terminat. Poligoanele au fost descompuse în linii." -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 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:2520 -#: flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." msgstr " MUTARE: Click pe punctul de referinţă ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr " Click pe punctul de Destinaţie ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "Executat. Mutarea Geometriilor terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "Executat. Copierea Geometriilor terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -4397,98 +4385,98 @@ msgstr "" "Fontul nu este compatibil. Doar cele tip: Regular, Bold, Italic și " "BoldItalic sunt acceptate. Eroarea" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "Niciun text de adăugat." -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr " Executat. Adăugarea de Text terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "Crează o geometrie de tipe Bufer ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2768 -#: flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 +#: flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "" "Crearea de geometrie Bufer anulată. Nici-o forma geometrică nu este " "selectată." -#: flatcamEditors/FlatCAMGeoEditor.py:2793 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 #: flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "Executat. Unealta Bufer terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "Executat. Unealta Bufer Intern terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "Executat. Unealta Bufer Extern terminată." -#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 #: flatcamEditors/FlatCAMGrbEditor.py:2087 msgid "Select a shape to act as deletion area ..." msgstr "Selectează o formă geometrică ca formă de stergere ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2890 -#: flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 #: flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "Click pentru a activa forma de stergere..." -#: flatcamEditors/FlatCAMGeoEditor.py:2919 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 #: flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "Click pt a sterge ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2949 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 #: flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "Executat. Unealta Stergere s-a terminat." -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "Crează o geometrie Paint ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3006 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 #: flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "Transformări de forme geometrice ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "Se editează Geometrie tip MultiGeo. unealta" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "cu diametrul" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "Copiere anulată. Nici-o forma geometrică nu este selectată." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 -#: flatcamGUI/FlatCAMGUI.py:3388 flatcamGUI/FlatCAMGUI.py:3401 -#: flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 +#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 +#: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Click pe punctul tinta." -#: flatcamEditors/FlatCAMGeoEditor.py:4330 -#: flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 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:4451 -#: flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 +#: flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -4496,59 +4484,59 @@ msgstr "" "O valoare de bufer negativă nu se acceptă. Foloseste Bufer Interior pentru a " "genera o formă geo. interioară" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 -#: flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 +#: flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "Nici-o forma geometrică nu este selectată pentru a face Bufer." -#: flatcamEditors/FlatCAMGeoEditor.py:4466 -#: flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 +#: flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "Distanta invalida pentru a face Bufer." -#: flatcamEditors/FlatCAMGeoEditor.py:4490 -#: flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 +#: flatcamEditors/FlatCAMGeoEditor.py:4587 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:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "Geometrie tip Bufer Complet creată." -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "Valoarea bufer negativă nu este acceptată." -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 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:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "Geometrie Bufer interior creată." -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "Geometrie Bufer Exterior creată." -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "" "Nu se poate face Paint. Valoarea de suprapunere trebuie să fie mai puțin de " "1.00 (100%%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "Nici-o forma geometrică nu este selectată pentru Paint." -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "Valoare invalida pentru" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -4556,7 +4544,7 @@ msgstr "" "Nu se poate face Paint. Incearcă o combinaţie diferita de parametri. Or o " "metoda diferita de Paint" -#: flatcamEditors/FlatCAMGeoEditor.py:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "Pictare executata." @@ -4707,54 +4695,54 @@ msgstr "Executat. Mutarea Aperturilor terminată." msgid "Done. Apertures copied." msgstr "Executat. Aperturile au fost copiate." -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "Editor Gerber" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "Aperturi" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "Tabela de aperturi pt obiectul Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "Cod" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "Tip" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/PreferencesUI.py:6183 flatcamGUI/PreferencesUI.py:6212 -#: flatcamGUI/PreferencesUI.py:6314 flatcamTools/ToolCopperThieving.py:260 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/PreferencesUI.py:6201 flatcamGUI/PreferencesUI.py:6230 +#: flatcamGUI/PreferencesUI.py:6332 flatcamTools/ToolCopperThieving.py:260 #: flatcamTools/ToolCopperThieving.py:300 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Dimensiune" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "Dim" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "Index" #: flatcamEditors/FlatCAMGrbEditor.py:2415 -#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:251 +#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "Cod" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "" "Tipul aperturilor:\n" @@ -4763,11 +4751,11 @@ msgstr "" "- macro-uri\n" "etc" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "Dim. aper.:" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4874,9 +4862,9 @@ msgstr "" " - 'Beveled:' coltul este inlocuit cu o linie care uneste capetele liniilor " "care formează coltul" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 -#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 +#: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "Bufer" @@ -4952,8 +4940,8 @@ msgstr "Șterge" msgid "Clear all the markings." msgstr "Ștergeți toate marcajele." -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "Adaugă o arie de paduri" @@ -5031,26 +5019,20 @@ msgid "Deleted aperture with code" msgstr "A fost stearsă unealta cu codul" #: flatcamEditors/FlatCAMGrbEditor.py:3847 -#, fuzzy -#| msgid "Gerber Editor" msgid "Loading Gerber into Editor" -msgstr "Editor Gerber" +msgstr "Se încarcă Gerber în editor" #: flatcamEditors/FlatCAMGrbEditor.py:3957 msgid "Setting up the UI" -msgstr "" +msgstr "Configurarea UI" #: flatcamEditors/FlatCAMGrbEditor.py:3958 -#, fuzzy -#| msgid "Adding geometry for aperture" msgid "Adding geometry finished. Preparing the GUI" -msgstr "Se adaugă geometria pentru apertura" +msgstr "Adăugarea geometriei terminate. Pregătirea GUI" #: flatcamEditors/FlatCAMGrbEditor.py:3967 -#, fuzzy -#| msgid "One or more of the Gerber objects is not valid." msgid "Finished loading the Gerber object into the editor." -msgstr "Unul sau mai multe dintre obiectele Gerber nu sunt valabile." +msgstr "S-a terminat încărcarea obiectului Gerber în editor." #: flatcamEditors/FlatCAMGrbEditor.py:4107 msgid "" @@ -5187,9 +5169,9 @@ 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:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "Toate" @@ -5228,12 +5210,12 @@ msgstr "Va salva textul din Editor intr-un fisier." #: flatcamEditors/FlatCAMTextEditor.py:101 msgid "Run Code" -msgstr "Ruleaza Cod" +msgstr "Rulează Cod" #: flatcamEditors/FlatCAMTextEditor.py:102 msgid "Will run the TCL commands found in the text file, one by one." msgstr "" -"Va rula instructiunile/comenzile TCL care se gasesc in textul din Editor, " +"Va rula instructiunile/comenzile TCL care se găsesc in textul din Editor, " "una cate una." #: flatcamEditors/FlatCAMTextEditor.py:176 @@ -5242,10 +5224,8 @@ msgstr "Deschide fişierul" #: flatcamEditors/FlatCAMTextEditor.py:207 #: flatcamEditors/FlatCAMTextEditor.py:212 -#, fuzzy -#| msgid "Export GCode ..." msgid "Export Code ..." -msgstr "Exporta GCode ..." +msgstr "Exportă GCode ..." #: flatcamEditors/FlatCAMTextEditor.py:215 msgid "Export Code cancelled." @@ -5256,7 +5236,7 @@ msgid "Code Editor content copied to clipboard ..." msgstr "Conținut Editor de cod copiat în clipboard ..." #: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 -#: flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "Comută Panel" @@ -5308,7 +5288,7 @@ msgstr "Document\tD" msgid "Will create a new, empty Document Object." msgstr "Va crea un obiect nou de tip Document, fără continut." -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "Încarcă" @@ -5317,15 +5297,15 @@ msgstr "Încarcă" msgid "Open &Project ..." msgstr "Încarcă &Project ..." -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "Încarcă &Gerber ...\tCTRL+G" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "Încarcă &Excellon ...\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "Încarcă G-&Code ..." @@ -5345,22 +5325,22 @@ msgstr "Fişierele Recente" msgid "Scripting" msgstr "Scripting" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 -#: flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "Script nou ..." -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 -#: flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 +#: flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "Încarcă &Script..." -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 -#: flatcamGUI/FlatCAMGUI.py:2176 flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:2188 flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "Rulează Script..." -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -5390,23 +5370,27 @@ msgstr "&DXF ca și obiect Geometrie ..." msgid "&DXF as Gerber Object ..." msgstr "&DXF ca și obiect Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 ca obiect de geometrie ..." + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "Export" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "Exporta &SVG ..." -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "Exporta DXF ..." -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "Exporta &PNG ..." -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -5416,11 +5400,11 @@ msgstr "" "imagina salvata va contine elementele vizuale\n" "afisate in zona de afișare." -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "Exporta Excellon ..." -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -5430,11 +5414,11 @@ msgstr "" "Formatul coordonatelor, unitatile de masura și tipul\n" "de zerouri se vor seta in Preferințe -> Export Excellon." -#: flatcamGUI/FlatCAMGUI.py:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "Exporta &Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -5444,61 +5428,61 @@ msgstr "" "Formatul coordonatelor, unitatile de măsură și tipul\n" "de zerouri se vor seta in Preferințe -> Export Gerber." -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "Backup" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "Importați Preferințele din fișier ..." -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "Exportați Preferințele într-un fișier ..." -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 -#: flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 +#: flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "Salvează" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "&Salvează Proiect ..." -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "Salvează Proiect &ca ...\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "Salvează o C&opie Proiect..." -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "Iesire" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 -#: flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "Editează" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "Editare Obiect\tE" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "Salvează Editor\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "Conversii" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "&Fuzionează Geo/Gerber/Exc -> Geo" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -5512,30 +5496,30 @@ msgstr "" "- Geometrie\n" "intr-un nou obiect tip Geometrie >combo<." -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "Fuzionează Excellon(s) -> Excellon" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 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:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "Fuzionează Gerber(s) -> Gerber" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 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:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "Converteste SingleGeo in MultiGeo" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -5543,11 +5527,11 @@ msgstr "" "Va converti un obiect Geometrie din tipul simpla geometrie (SingleGeo)\n" "la tipul geometrie complexa (MultiGeo)." -#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "Converteste MultiGeo in SingleGeo" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -5555,704 +5539,702 @@ msgstr "" "Va converti un obiect Geometrie din tipul geometrie complexa (MultiGeo)\n" "la tipul geometrie simpla (SingleGeo)." -#: flatcamGUI/FlatCAMGUI.py:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "Converteste Oricare to Geo" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "Converteste Oricare in Gerber" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "&Copiază\tCTRL+C" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "&Șterge\tDEL" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "Se&tează Originea\tO" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "Sari la Locaţie\tJ" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "Comută Unitati\tQ" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "&Selectează Tot\tCTRL+A" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "&Preferințe\tSHIFT+P" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "Opțiuni" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "&Roteste Selectia\tSHIFT+(R)" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "&Deformează pe axa X\tSHIFT+X" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "Deformează pe axa Y\tSHIFT+Y" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "Oglindește pe axa &X\tX" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "Oglindește pe axa &Y\tY" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "Vezi sursa\tALT+S" -#: flatcamGUI/FlatCAMGUI.py:369 -#, fuzzy -#| msgid "Tool Data" +#: flatcamGUI/FlatCAMGUI.py:380 msgid "Tools DataBase\tCTRL+D" -msgstr "Date unealtă" +msgstr "Baza de data Unelte\tCTRL+D" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "Vizualizare" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "Activează toate afişările\tALT+1" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "Dezactivează toate afişările\tALT+2" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "Dezactivează non-selectate\tALT+3" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "&Mărește și potrivește\tV" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "&Măreste\t=" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "&Micșorează\t-" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "Reafisare Toate\tF5" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "Comută Editorul de cod\tSHIFT+E" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "Comută FullScreen\tALT+F10" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "Comută Aria de Afișare\tCTRL+F10" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "Comută Proiect/Sel/Unealta\t`" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "Comută Grid\tG" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "Comută Linii Grid\tALT+G" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "Comută Axe\tSHIFT+G" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "Comută Suprafata de lucru\tSHIFT+W" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "Obiecte" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "&Linie de comanda\tS" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "Ajutor" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "Resurse online\tF1" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "Raportati o eroare program" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "Specificatii Excellon" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "Specificatii Gerber" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "Lista shortcut-uri\tF3" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "YouTube \tF4" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "Adaugă Cerc\tO" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "Adaugă Arc\tA" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "Adaugă Patrulater\tR" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "Adaugă Poligon\tN" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "Adaugă Cale\tP" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "Adaugă Text\tT" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "Uniune Poligoane\tU" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "Intersecţie Poligoane\tE" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "Substracţie Poligoane\tS" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "Tăiere Cale\tX" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "Copiază Geo\tC" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "Șterge forma Geo.\tDEL" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "Muta\tM" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "Unealta Bufer\tB" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "Unealta Paint\tI" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "Unealta Transformare\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "Comută lipire colt\tK" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr ">Editor Excellon<" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "Adaugă Arie Găuriri\tA" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "Adaugă Găurire\tD" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "Adăugați Arie de Sloturi\tQ" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "Adăugați Slot\tW" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "Redimens. Găuriri\tR" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "Copiază\tC" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "Șterge\tDEL" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "Muta Găuriri\tM" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr ">Editor Gerber<" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "Adaugă Pad\tP" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "Adaugă Arie paduri\tA" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "Adaugă Traseu\tA" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "Adaugă Regiune\tN" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "Poligonizare\tALT+N" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "Adaugă SemiDisc\tE" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "Adaugă Disc\tD" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "Bufer\tB" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "Scalare\tS" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "Marchează aria\tALT+A" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "Radieră\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "Unealta Transformare\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "Activează Afișare" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "Dezactivează Afișare" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "Generează CNC" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "Vizualiz. Sursa" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "Proprietati" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "Toolbar Fişiere" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "Toolbar Editare" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "Toolbar Vizualizare" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "Toolbar Linie de comanda" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "Toolbar Unelte" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "Toolbar Editor Excellon" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "Toolbar Editor Geometrii" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "Toolbar Editor Gerber" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "Toolbar Grid-uri" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "Încarcă Proiect" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "Salvează Proiect" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "Geometrie Noua (goală)" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "Gerber Nou (gol)" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "Excellon nou (gol)" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "Salvează Obiectul și inchide Editorul" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "&Șterge" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 -#: flatcamGUI/FlatCAMGUI.py:1653 flatcamGUI/FlatCAMGUI.py:2157 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1665 flatcamGUI/FlatCAMGUI.py:2169 #: flatcamTools/ToolDistance.py:30 flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "Unealta Distanță" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "Unealta Distanță min" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 -#: flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "Setează Originea" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "Sari la Locaţie" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "&Reafișare" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "&Șterge Afișare" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "Marire" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "Micsorare" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 -#: flatcamGUI/FlatCAMGUI.py:1893 flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1905 flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "Marire și ajustare" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "&Linie de comanda" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "Unealta 2-fețe" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 #: flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "Unealta Decupare" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 -#: flatcamGUI/ObjectUI.py:550 flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 +#: flatcamGUI/ObjectUI.py:555 flatcamGUI/ObjectUI.py:1712 +#: flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "Unealta NCC" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "Unealta Panel" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "Unealta Film" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "Unealta Dispenser SP" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 #: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Unealta Scădere" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "Unalta Verif. Reguli" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 #: flatcamTools/ToolOptimal.py:34 flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "Unealta Optim" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "Unealta Calculatoare" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 -#: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:2208 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 -#, fuzzy -#| msgid "Rules Tool" msgid "QRCode Tool" -msgstr "Unalta Verif. Reguli" +msgstr "Unealta QRCode" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool" -msgstr "Curățăre Non-Cupru" +msgstr "Unealta Copper Thieving" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2212 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 -#, fuzzy -#| msgid "Film Tool" msgid "Fiducials Tool" -msgstr "Unealta Film" +msgstr "Unealta Fiducials" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 -#: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 -#: flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 +msgid "Calibration Tool" +msgstr "Unealta Calibrare" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 +#: flatcamGUI/FlatCAMGUI.py:830 flatcamGUI/FlatCAMGUI.py:2216 +#: flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "Selectează" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "Adaugă o Găurire" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "Adaugă o arie de Găuriri" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1960 flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "Adaugă Slot" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "Adaugă o Arie sloturi" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 -#: flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 +#: flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "Redimens. Găurire" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "Copiază Găurire" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "Șterge Găurire" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "Muta Găurire" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "Adaugă Cerc" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "Adaugă Arc" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "Adaugă Patrulater" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "Adaugă Cale" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "Adaugă Poligon" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "Adaugă Text" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "Adaugă Bufer" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "Paint o forma" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 -#: flatcamGUI/FlatCAMGUI.py:1910 flatcamGUI/FlatCAMGUI.py:1938 -#: flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 +#: flatcamGUI/FlatCAMGUI.py:1922 flatcamGUI/FlatCAMGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "Stergere Selectivă" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "Uniune Poligoane" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "Explodare Poligoane" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "Intersecţie Poligoane" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "Substracţie Poligoane" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "Taie Cale" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "Copiază forme geo." -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "Șterge forme geo" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 -#: flatcamGUI/FlatCAMGUI.py:1917 flatcamGUI/FlatCAMGUI.py:1942 -#: flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 +#: flatcamGUI/FlatCAMGUI.py:1929 flatcamGUI/FlatCAMGUI.py:1954 +#: flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "Transformări" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "Mută Obiecte " -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "Adaugă Pad" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 -#: flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "Adaugă Traseu" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "Adaugă Regiune" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 -#: flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 +#: flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "Poligonizare" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 -#: flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 +#: flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "SemiDisc" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 -#: flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "Disc" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 -#: flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "Marc. aria" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1961 -#: flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:1973 +#: flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "Mutare" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "Lipire la grid" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "Distanta de lipire la grid pe axa X" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "Distanta de lipire la grid pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -6260,66 +6242,63 @@ msgstr "" "Când este activ, valoarea de pe Grid_X\n" "este copiata și in Grid_Y." -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "Lipire la colt" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "Distanta magnetica maxima" -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 -msgid "Project" -msgstr "Proiect" - -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Selectat" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "Arie Afișare" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "General" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "GERBER" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "GEOMETRIE" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "CNCJob" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "Unelte" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "UNELTE 2" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "UTILITARE" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "Importa Preferințele" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -6333,11 +6312,11 @@ msgstr "" "FlatCAM salvează automat un fişier numit 'factory_defaults'\n" "la prima pornire. Nu șterge acel fişier." -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "Exporta Preferințele" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." @@ -6345,23 +6324,23 @@ msgstr "" "Exporta un set complet de setări ale FlatCAM\n" "intr-un fişier care se salvează pe HDD." -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "Deschide Pref Dir" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 msgid "Open the folder where FlatCAM save the preferences files." msgstr "Deschide directorul unde FlatCAM salvează fişierele cu setări." -#: flatcamGUI/FlatCAMGUI.py:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" -msgstr "" +msgstr "Aplicați" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." -msgstr "" +msgstr "Aplicați preferințele actuale fără a salva într-un fișier." -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -6369,534 +6348,532 @@ 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:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 msgid "Will not save the changes and will close the preferences window." -msgstr "" +msgstr "Nu va salva modificările și va închide fereastra de preferințe." -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "ARATA LISTA DE TASTE SHORTCUT" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "Treci la Tab-ul Proiect" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "Treci la Tab-ul Selectat" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "Treci la Tab-ul 'Unealta'" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "Gerber Nou" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "Editeaza obiectul (daca este selectat)" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "Sari la Coordonatele" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "Excellon nou" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "Mută Obiecte" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "Geometrie Noua" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "Comută Unitati" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "Deschide Unealta Proprietati" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "Roteste cu 90 grade CW" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "Comuta Linie de comanda" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 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:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "Oglindește pe axa X" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "Oglindește pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "Copiază Obiecte" -#: flatcamGUI/FlatCAMGUI.py:1453 -#, fuzzy -#| msgid "Tool Data" +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Open Tools Database" -msgstr "Date unealtă" +msgstr "Deschide baza de date Unelte" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "Încarcă un fisier Excellon" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "Încarcă un fisier Gerber" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "Un Nou Project" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "Unealta import PDF" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "Salvează Proiectul ca" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "Comută Aria de Afișare" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "Copiază Nume Obiect" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "Comută Editorul de cod" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "Comută Reprezentare Axe" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 -#: flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 +#: flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "Unealta Distanță minimă" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "Deschide Preferințe" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "Roteste cu 90 grade CCW" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "Rulează TCL script" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "Comută Suprafata de lucru" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "Deformare pe axa X" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "Deformare pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "Unealta 2-fețe" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "Unealta Transformări" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "Unealta DispensorPF" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "Unealta Film" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "Curățăre Non-Cupru" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "Unealta Paint" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "Unealta Verificari Reguli" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "Vizualiz. Cod Sursă" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "Unealta Decupare" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "Activează Afișare pt Tot" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "Dezactivează Afișare pt Tot" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "Dezactivează ne-selectate" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "Comută FullScreen" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "Renutna la task" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "Deschide Manualul Online" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "Deschide Tutoriale Online" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "Improspatare Afișare" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "Șterge Obiectul" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "Alternativ: Șterge Unealta" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "(in stanga tasta 1) Comuta aria Notebook (partea stanga)" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "(Dez)activează Afișare" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "Deselectează toate obiectele" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "Lista de shortcut-uri" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "EDITOR GEOMETRIE" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "Deseneaza un Arc" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "Copiază Geo" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 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:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "Unealta Intersecţie Poligoane" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "Unealta Paint Geo" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "Sari la Locaţia (x, y)" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "Comută lipire colt" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "Muta El. Geo" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 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:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "Deseneaza un Poligon" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "Deseneaza un Cerc" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "Deseneaza un Traseu" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "Deseneaza un Patrulater" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "Unealta Substracţie Poligoane" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "Unealta Adaugare Text" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "Unealta Uniune Poligoane" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "Oglindește pe axa X" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "Oglindește pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "Deformare pe axa X" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "Deformare pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "Unealta Transformare in Editor" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "Ofset pe axa X" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "Ofset pe axa Y" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "Salvează Obiectul și inchide Editorul" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "Unealta Taiere Poligoane" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "Roteste Geometrie" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "Termina de desenat (pt anumite unelte)" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "Renutna si intoarce-te la Selectie" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "Șterge forme geo" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "EDITOR EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "Copiaza Găurire" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "Adaugă găurire" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "Muta Găuri" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "Adaugă Unealta Noua" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "Șterge Găuri" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "Alternativ: Șterge Unealta" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "EDITOR GERBER" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "Adaugă Disc" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "Adaugă SemiDisc" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 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:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 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:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "Alternativ: Șterge Apertură" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "Unealta Stergere" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "Unealta de Marc. Arie" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "Unealta Poligonizare" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "Unealta Transformare" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "Comută Vizibilitate" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "Nou" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "Geometrie" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "Grid-uri" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "Șterge Afișare" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "Reafișare" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "Editor Geometrii" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "Pe cale" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "Patrulater" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "Cerc" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "Poligon" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "Arc" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "Uniune" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "Intersecţie" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "Scădere" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "Tăiere" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "Pad" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "Arie de paduri" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "Traseu" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "Regiune" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "Editor EXC" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" @@ -6904,7 +6881,7 @@ msgstr "" "Măsurătoare relativă.\n" "Referința este poziţia ultimului click pe canvas" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" @@ -6912,27 +6889,27 @@ msgstr "" "Măsurătoare absolută.\n" "Referința este originea (0, 0)" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "Blochează Toolbar-uri" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "Unealta Decupare" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "Select" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "Copiază Obiecte" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "Mută Obiecte" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6943,12 +6920,12 @@ msgstr "" "apoi selectează forma geo. tăietoare. La final apasă tasta ~X~ sau\n" "butonul corespunzator din Toolbar." -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 -#: flatcamGUI/FlatCAMGUI.py:3010 flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 +#: flatcamGUI/FlatCAMGUI.py:3023 flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "Atenţie" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -6956,7 +6933,7 @@ msgstr "" "Selectează forma geometrică asupra căreia să se\n" "aplice Unealta Intersecţie." -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -6964,7 +6941,7 @@ msgstr "" "Selectează forma geometrică asupra căreia să se\n" "aplice Unealta Substracţie." -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." @@ -6972,52 +6949,52 @@ msgstr "" "Selectează forma geometrică asupra căreia să se\n" "aplice Unealta Uniune." -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "Anulat. Nimic nu este selectat pentru ștergere." -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "Anulat. Nimic nu este selectat pentru copiere." -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "Anulat. Nimic nu este selectat pentru mutare." -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "O noua Unealtă ..." -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "Introduceti un Diametru de Unealtă" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "Adăugarea unei unelte anulată..." -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "Măsurătoarea s-a terminat ..." -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "Inactiv." -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "Aplicaţia a pornit ..." -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "Bună!" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "Încarcă Project ..." -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "Iesiere" @@ -7054,88 +7031,92 @@ msgstr "Factor" #: flatcamGUI/ObjectUI.py:102 msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"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." +"acestui obiect.\n" +"Expresiile sunt permise. De ex: 1 / 25.4" -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "Efectuează operatia de scalare." -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "Schimbă poziţia acestui obiect." -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "Vector" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"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)." +"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:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "Efectuează operația de Ofset." -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "Obiect Gerber" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 -#: flatcamGUI/ObjectUI.py:1083 flatcamGUI/ObjectUI.py:1663 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 +#: flatcamGUI/ObjectUI.py:1166 flatcamGUI/ObjectUI.py:1855 +#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3118 +#: flatcamGUI/PreferencesUI.py:3628 +msgid "Plot (show) this object." +msgstr "Afisează (arata) acest obiect." + +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 +#: flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "Afisează" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 +#: flatcamGUI/ObjectUI.py:1120 flatcamGUI/ObjectUI.py:1745 #: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 -#: flatcamGUI/PreferencesUI.py:3110 flatcamGUI/PreferencesUI.py:3599 +#: flatcamGUI/PreferencesUI.py:3112 flatcamGUI/PreferencesUI.py:3617 msgid "Plot Options" msgstr "Opțiuni afișare" -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 #: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 -#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:190 +#: flatcamGUI/PreferencesUI.py:6153 flatcamTools/ToolCopperThieving.py:190 msgid "Solid" msgstr "Solid" -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 msgid "Solid color polygons." msgstr "Poligoane color solide." -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" -msgstr "M-Color" +#: flatcamGUI/ObjectUI.py:192 +msgid "Multi-Color" +msgstr "Multicolor" -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 msgid "Draw polygons in different colors." msgstr "" "Desenează poligoanele Gerber din multiple culori\n" "alese in mod aleator." -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 -#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 -#: flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "Afisează" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 -#: flatcamGUI/ObjectUI.py:1129 flatcamGUI/ObjectUI.py:1773 -#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3116 -#: flatcamGUI/PreferencesUI.py:3610 -msgid "Plot (show) this object." -msgstr "Afisează (arata) acest obiect." - -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 -#: flatcamGUI/ObjectUI.py:1089 flatcamGUI/ObjectUI.py:1693 -#: flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 +#: flatcamGUI/ObjectUI.py:1126 flatcamGUI/ObjectUI.py:1775 +#: flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Nume" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -7145,11 +7126,11 @@ msgstr "" "Când se debifează, toate marcajele aperturilor\n" "care sutn curent afisate, vor fi șterse." -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "Marc. Toate" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -7158,15 +7139,15 @@ 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:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "Marchează aperturile pe canvas." -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "Izolare" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." @@ -7175,7 +7156,7 @@ msgstr "" "care să fie taiate in afara poligoanelor,\n" "urmărindu-le conturul." -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -7187,34 +7168,32 @@ msgstr "" "Când este selectată „forma V”, atunci\n" "diametrul uneltei va depinde de adâncimea de tăiere aleasă." -#: flatcamGUI/ObjectUI.py:296 -#, fuzzy -#| msgid "V-shape" +#: flatcamGUI/ObjectUI.py:301 msgid "V-Shape" msgstr "Forma-V" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 -#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:3992 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 +#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:4010 #: flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "V-dia" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 -#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:3994 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 +#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:4012 #: flatcamTools/ToolNonCopperClear.py:233 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:315 flatcamGUI/ObjectUI.py:1313 -#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4004 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 +#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4022 #: flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "V-unghi" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 -#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4006 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 +#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4024 #: flatcamTools/ToolNonCopperClear.py:244 msgid "" "The tip angle for V-Shape Tool.\n" @@ -7223,9 +7202,9 @@ msgstr "" "Unghiul la vârf pentru unealta tip V-Shape. \n" "In grade." -#: flatcamGUI/ObjectUI.py:331 flatcamGUI/ObjectUI.py:1332 -#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3179 -#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCutOut.py:135 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 +#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3181 +#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7233,7 +7212,7 @@ msgstr "" "Adâncimea la care se taie sub suprafata de cupru.\n" "Valoare negativă." -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -7246,11 +7225,11 @@ msgstr "" "in interiorul poligonului Gerber (traseu), foloseşte\n" "o valoare negativă pt acest parametru." -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "# Treceri" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." @@ -7258,28 +7237,24 @@ msgstr "" "Lăţimea spatiului de izolare\n" "in număr intreg de grosimi ale uneltei." -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "Suprapunere" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool\n" -#| "width to overlap each tool pass." +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "" "Cat de mult (o fracţie din diametrul uneltei) din diametrul uneltei,\n" "(lăţimea de tăiere) să se suprapună peste trecerea anterioară." -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "Tip Frezare" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 msgid "" "Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -7290,31 +7265,29 @@ msgstr "" "uneltei\n" "- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" -#: flatcamGUI/ObjectUI.py:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "Urcare" -#: flatcamGUI/ObjectUI.py:394 -#, fuzzy -#| msgid "Conversion" -msgid "Conventional" -msgstr "Conversii" - #: flatcamGUI/ObjectUI.py:399 +msgid "Conventional" +msgstr "Convenţional" + +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "Combina" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "Combina toate trecerile intr-un singur obiect" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "\"Urmareste\"" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" @@ -7324,11 +7297,11 @@ msgstr "" "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:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "Exceptie" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" @@ -7338,12 +7311,12 @@ msgstr "" "prin bifarea aici, aria obiectului de mai jos va fi\n" "scăzută din geometrie de tip Izolare." -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "Tip obiect" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -7356,41 +7329,42 @@ msgstr "" "obiecte care vor aparea in combobox-ul\n" "numit >Obiect<." -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "Obiect" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 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:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" -msgstr "" +msgstr "Domeniu" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 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:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "Selecţie" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 -#, fuzzy -#| msgid "Isolation Routing" +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 msgid "Isolation Type" -msgstr "Izolare" +msgstr "Tip de izolare" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -7401,29 +7375,33 @@ msgid "" "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:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "Complet" -#: flatcamGUI/ObjectUI.py:487 -#, fuzzy -#| msgid "Exit" +#: flatcamGUI/ObjectUI.py:492 msgid "Ext" -msgstr "Iesiere" - -#: flatcamGUI/ObjectUI.py:488 -#, fuzzy -#| msgid "In" -msgid "Int" -msgstr "În" +msgstr "Ext" #: flatcamGUI/ObjectUI.py:493 +msgid "Int" +msgstr "Int" + +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "Creează Geometrie de Izolare" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -7442,11 +7420,11 @@ msgstr "" "(traseu, zona etc) iar >in interior< inseamna efectiv in interiorul\n" "acelui elem. Gerber (daca poate fi posibil)." -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "Creează Bufer Geometrie Solidă" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -7458,11 +7436,11 @@ msgstr "" "Bifarea aici va crea această buferare care este necesară\n" "pentru a crea geometrie de tip Izolare." -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "Curăță Non-Cu" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." @@ -7471,7 +7449,8 @@ msgstr "" "care să curete de cupru toate zonele unde se dorește să nu \n" "fie cupru." -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -7480,11 +7459,11 @@ msgstr "" "pt rutare non-cupru (adica pt\n" "curățare zone de cupru)." -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "Decupare PCB" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7494,7 +7473,7 @@ msgstr "" "lasand punţi pentru a separa PCB-ul de \n" "placa din care a fost taiat." -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." @@ -7502,11 +7481,11 @@ msgstr "" "Generează un obiect Geometrie\n" "pt decuparea PCB." -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "Regiuni fără Cu" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -7519,12 +7498,12 @@ msgstr "" "obiectului sursa. Poate fi folosit pt a indeparta\n" "cuprul din zona specificata." -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 #: flatcamGUI/PreferencesUI.py:1534 flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "Margine" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -7535,29 +7514,29 @@ msgstr "" "unei forme patratice de jur imprejurul la toate obiectele\n" "la o distanţa minima cu valoarea din acest câmp." -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 #: flatcamGUI/PreferencesUI.py:1549 flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "Geo rotunjita" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "" "Obiectul Geometrie rezultat \n" "va avea colțurile rotunjite." -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 #: flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "Crează Geo" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Forma înconjurătoare" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -7565,7 +7544,7 @@ msgstr "" "Generează un obiect tip Geometrie care va inconjura\n" "obiectul Gerber. Forma patratica (rectangulara)." -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -7573,7 +7552,7 @@ msgstr "" "Distanta de la marginile formei înconjurătoare\n" "pana la cel mai apropiat poligon." -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -7583,32 +7562,33 @@ msgstr "" "Daca forma înconjurătoare să aibă colțuri rotunjite.\n" "Raza acesor colțuri va fi egală cu parametrul Margine." -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "Generează obiectul Geometrie." -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "Obiect Excellon" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "Cercuri solide." -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "Găuri" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 -#: flatcamTools/ToolProperties.py:162 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:2952 flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "Sloturi" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "Ofset Z" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7622,7 +7602,7 @@ msgstr "" "in codul masina CNC.\n" "Aici se selectează uneltele pt generarea de G-Code." -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 #: flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" @@ -7631,7 +7611,7 @@ msgstr "" "Diametrul uneltei. Valoarea să (in unitati curente)\n" "reprezinta lăţimea taieturii in material." -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -7639,7 +7619,7 @@ msgstr "" "Numărul de găuri. Sunt găuri efectuate prin\n" "operațiuni de găurire efectuate cu un burghiu." -#: flatcamGUI/ObjectUI.py:752 +#: flatcamGUI/ObjectUI.py:769 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -7647,7 +7627,7 @@ msgstr "" "Numărul de sloturi. Sunt găuri efectuate\n" "prin op. de frezare cu o freza." -#: flatcamGUI/ObjectUI.py:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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" @@ -7660,7 +7640,7 @@ msgstr "" "Valoarea de aici efectuează o compensare asupra\n" "parametrului >Z tăiere<." -#: flatcamGUI/ObjectUI.py:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -7668,12 +7648,12 @@ msgstr "" "Comută afișarea găurilor pt unealta curentă.\n" "Aceata nu selectează uneltele pt generarea G-Code." -#: flatcamGUI/ObjectUI.py:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "Crează CNCJob" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." @@ -7681,7 +7661,7 @@ msgstr "" "Crează un obiect CNCJob din\n" "acest obiect." -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -7690,7 +7670,7 @@ msgstr "" "Daca se foloseşte o val. pozitivă, aplicaţia\n" "va incerca in mod automat să schimbe semnul." -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -7699,12 +7679,12 @@ msgstr "" "in planul X-Y, fără a efectua taieri, adica\n" "in afara materialului." -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 -#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 +#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "Schimb unealtă" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -7713,23 +7693,23 @@ msgstr "" "in codul G-Code (pauza pentru schimbare unealtă).\n" "De obicei este folosita comanda G-Code M6." -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "Z schimb unealtă" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 -#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 +#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "Înălţimea, pe axa Z, pentru schimbul uneltei." -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "Z pornire" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -7737,25 +7717,25 @@ msgstr "" "Înălţimea uneltei imediat dupa ce se porneste operatia CNC.\n" "Lasa casuta goala daca nu se foloseşte." -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 -#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 +#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "Z oprire" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 -#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 +#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3288 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:874 flatcamGUI/ObjectUI.py:1469 -#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3319 -#: flatcamGUI/PreferencesUI.py:5479 flatcamTools/ToolSolderPaste.py:264 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 +#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/PreferencesUI.py:5497 flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "Feedrate Z" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7767,12 +7747,12 @@ msgstr "" "Asa numita viteza unealta tip \"plunge\".\n" "Aceasta este mișcarea lineara G01." -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 -#: flatcamGUI/PreferencesUI.py:2583 flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 +#: flatcamGUI/PreferencesUI.py:2585 flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "Feedrate rapizi" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7785,12 +7765,12 @@ msgstr "" "printerul 3D Marlin, implicit când se foloseşte fişierul\n" "postprocesor: Marlin. Ignora aceasta parametru in rest." -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 -#: flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 +#: flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "Viteza motor" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -7800,8 +7780,8 @@ msgstr "" "Acest parametru este optional și se poate lasa gol\n" "daca nu se foloseşte." -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 -#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/PreferencesUI.py:2441 flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7809,12 +7789,12 @@ 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:931 flatcamGUI/ObjectUI.py:1541 -#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 +#: flatcamGUI/PreferencesUI.py:2446 flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "Timpul (ori secunde ori milisec) cat se stă in pauză." -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7822,13 +7802,13 @@ msgstr "" "Fișierul JSON postprocesor care dictează\n" "codul Gcode." -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 -#: flatcamGUI/PreferencesUI.py:2599 flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 +#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "Z sonda" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 -#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 +#: flatcamGUI/PreferencesUI.py:2603 flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7836,21 +7816,21 @@ msgstr "" "Adâncimea maxima la care este permis sondei să coboare.\n" "Are o valoare negativă, in unitatile curente." -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 -#: flatcamGUI/PreferencesUI.py:2612 flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 +#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "Feedrate sonda" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 -#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 +#: flatcamGUI/PreferencesUI.py:2616 flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "Viteza sondei când aceasta coboara." -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "Gcode" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7864,47 +7844,42 @@ msgstr "" "Când se alege >Sloturi< sau >Ambele<, sloturile\n" "vor fi convertite intr-o serie de găuriri." -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "Crează GCode Găuri" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "Generează un obiect CNCJob." -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "Frezare găuri" -#: flatcamGUI/ObjectUI.py:1019 -#, fuzzy -#| msgid "" -#| "Select from the Tools Table above\n" -#| "the hole dias that are to be milled.\n" -#| "Use the # column to make the selection." +#: flatcamGUI/ObjectUI.py:1044 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 "" -"Selecteaa din Tabela de Unelte de mai sus\n" -"acele găuri care vor fi frezate.\n" -"Foloseste coloana # pt a face această selectie." +"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:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "Dia. Burghiu Găurire" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "Diametrul uneltei taietoare." -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "Geo pt frezare găuri" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -7912,21 +7887,21 @@ msgstr "" "Crează un obiect tip Geometrie pt.\n" "frezarea rutelor create din Găuri." -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "Dia. Freza Slot" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "Diametrul frezei când se frezează sloturile." -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "Geo pt. frezare sloturi" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -7934,11 +7909,11 @@ msgstr "" "Crează un obiect tip Geometrie pt.\n" "frezarea rutelor create din Sloturi." -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "Obiect Geometrie" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -7968,22 +7943,23 @@ msgstr "" "- V-Dia \n" "- V-unghi." -#: flatcamGUI/ObjectUI.py:1127 flatcamGUI/ObjectUI.py:1771 -#: flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 +#: flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "Afisează" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 -#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 +#: flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:6172 +#: flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "Dia" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "TU" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7994,7 +7970,7 @@ msgstr "" "la evenim. de schimb unealtă, va aparea sub forma T1, T2, etc\n" "in codul masina CNC" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -8010,7 +7986,7 @@ msgstr "" "'buzunar'\n" "- Afară-> Tăietura va urma geometria pe exterior." -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -8033,7 +8009,7 @@ msgstr "" "un\n" "vârf fin, ascuțit." -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -8063,7 +8039,7 @@ msgstr "" "Alegerea tipului V-Shape (forma in V) va selecta automat Tipul de Operaţie " "ca Izolare." -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -8083,7 +8059,7 @@ msgstr "" "se poate activa/dezactiva\n" "afișarea in canvas." -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -8094,35 +8070,27 @@ msgstr "" "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:1230 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." +#: flatcamGUI/ObjectUI.py:1267 msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." msgstr "" -"Adaugă o noua unelata in Tabela de Unelte,\n" -"cu diametrul specificat mai sus." +"Adăugați o Unealta noua in Tabelul de Unelte\n" +"cu diametrul specificat." -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" -msgstr "" +msgstr "Adăugați Unealta din DB Unelte" -#: flatcamGUI/ObjectUI.py:1240 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." +#: flatcamGUI/ObjectUI.py:1277 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." msgstr "" -"Adaugă o noua unelata in Tabela de Unelte,\n" -"cu diametrul specificat mai sus." +"Adaugă o noua unealta in Tabela de Unelte,\n" +"din DB Unelte." -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -8130,7 +8098,7 @@ 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:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -8138,7 +8106,7 @@ 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:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -8146,13 +8114,13 @@ msgstr "" "Datele folosite pentru crearea codului GCode.\n" "Fiecare unealtă stochează un subset de asemenea date." -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "Multi-Pas" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -8164,14 +8132,14 @@ msgstr "" "va tăia de mai multe ori până când este\n" "atins Z de tăiere, Z Cut." -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "" "Adâncimea pentru fiecare trecere.\n" "Valoare pozitivă, in unitatile curente." -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." @@ -8179,7 +8147,7 @@ msgstr "" "Înălţimea la care se misca unealta când nu taie,\n" "deasupra materialului." -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -8188,12 +8156,12 @@ msgstr "" "codul masina CNC. O pauza pentru schimbul\n" "uneltei (M6)." -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "Feedrate X-Y" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -8201,7 +8169,7 @@ msgstr "" "Viteza de tăiere in planul X-Y\n" "in unitati pe minut" -#: flatcamGUI/ObjectUI.py:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -8211,7 +8179,7 @@ msgstr "" "in unitati pe minut.\n" "Mai este numita și viteza de plonjare." -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -8224,11 +8192,12 @@ msgstr "" "Este utila doar când se foloseşte cu un printer 3D Marlin,\n" "pentru toate celelalte cazuri ignora acest parametru." -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." -msgstr "Re-tăiere 1-ul pt." +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +msgid "Re-cut" +msgstr "Re-tăiere" -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 +#: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -8240,7 +8209,7 @@ msgstr "" "cu sfârşitul acesteia (este vorba de un contur), sunt eliminate\n" "prin taierea peste acest punct." -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -8250,12 +8219,12 @@ msgstr "" "Daca postprocesorul Laser este folosit,\n" "valoarea să este puterea laserului." -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "Postprocesor" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -8264,17 +8233,19 @@ msgstr "" "codului masina CNC (GCode, RML, HPGL) care \n" "mai apoi este salvat." -#: flatcamGUI/ObjectUI.py:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" -msgstr "" +msgstr "Aplicați parametrii la toate Uneltele" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 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:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" @@ -8284,21 +8255,21 @@ msgstr "" "Click pe header pentru selectarea tuturora asu CTRL + LMB click\n" "pentru o selecţie personalizata de unelte." -#: flatcamGUI/ObjectUI.py:1616 -#, fuzzy -#| msgid "Generate the CNC Job object." +#: flatcamGUI/ObjectUI.py:1670 msgid "Generate CNCJob object" -msgstr "Generează un obiect CNCJob." +msgstr "Generează un obiect CNCJob" -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "Generează un obiect CNCJob." -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" -msgstr "Unealta Paint" +#: flatcamGUI/ObjectUI.py:1689 +msgid "Launch Paint Tool in Tools Tab." +msgstr "" +"Lansează unealta FlatCAM numita Paint și\n" +"o instalează in Tab-ul Unealta." -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -8311,21 +8282,15 @@ msgstr "" "singur poligon se va cere să faceti click pe poligonul\n" "dorit." -#: flatcamGUI/ObjectUI.py:1639 -msgid "Launch Paint Tool in Tools Tab." -msgstr "" -"Lansează unealta FlatCAM numita Paint și\n" -"o instalează in Tab-ul Unealta." - -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1737 msgid "CNC Job Object" msgstr "Obiect CNCJob" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "Tip afișare" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -8337,15 +8302,15 @@ msgstr "" "- Voiaj -> miscarile deasupra materialului\n" "- Tăiere -> miscarile in material, tăiere." -#: flatcamGUI/ObjectUI.py:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "Voiaj" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "Afişează notații" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -8355,11 +8320,11 @@ msgstr "" "Cand este selectat va afisa numerele in ordine pt fiecare\n" "capat al liniilor de traversare." -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." -msgstr "Distanța parcursă" +msgstr "Dist. parcursă" -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -8367,11 +8332,11 @@ msgstr "" "Aceasta este distanţa totala parcursa in planul X-Y.\n" "In unitatile curente." -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "Durată estimată" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -8379,11 +8344,11 @@ msgstr "" "Acesta este timpul estimat pentru efectuarea traseului / găuririi,\n" "fără timpul petrecut în evenimentele ToolChange." -#: flatcamGUI/ObjectUI.py:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "Tabela Unelte CNC" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -8404,24 +8369,24 @@ msgstr "" "Shape\n" "(cu forma in V)." -#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "P" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "Actualiz. afișare" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "Actualizează afișarea obiectelor." -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "Exporta codul masina CNC" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -8429,11 +8394,12 @@ msgstr "" "Exportă și salvează codul G-Code intr-un fişier\n" "care este salvat pe HDD." -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "Adaugă la inceput in codul G-Code" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 +#: flatcamGUI/PreferencesUI.py:3776 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8441,23 +8407,12 @@ msgstr "" "Adaugă aici orice comenzi G-Code care se dorește să fie\n" "inserate la inceputul codului G-Code." -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to add at the beginning of the G-Code file." -msgid "" -"Type here any G-Code commands you would 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:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Adaugă la sfârşit in codul G-Code" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 +#: flatcamGUI/PreferencesUI.py:3792 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8466,24 +8421,11 @@ 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:1839 flatcamGUI/PreferencesUI.py:3782 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to append to the generated file.\n" -#| "I.e.: M2 (End of program)" -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file. 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:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "G-Code pt schimb unealtă" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8505,40 +8447,30 @@ msgstr "" "'toolchange_custom'\n" "in numele sau." -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 -#, fuzzy -#| 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." +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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" -"\n" "ATENTIE:\n" -"poate fi folosit doar cu un fişier postprocesor care contine " +"Poate fi folosit doar cu un fişier pretprocesor care contine " "'toolchange_custom'\n" "in numele sau." -#: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "Fol. Macro schimb unealtă" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -8546,7 +8478,7 @@ msgstr "" "Bifează aici daca dorești să folosești Macro pentru\n" "schimb unelte." -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -8556,73 +8488,73 @@ msgstr "" "de schimb al uneltei (când se intalneste comanda M6).\n" "Este necesar să fie inconjurate de simbolul '%'" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "Parametri" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "Parametri FlatCAM CNC" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "numărul uneltei" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "diametrul sculei" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "pentru Excellon, numărul total de operațiuni găurire" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" msgstr "Coordonata X pentru schimbarea uneltei" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" msgstr "Coordonata Y pentru schimbarea uneltei" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "Coordonata Z pentru schimbarea uneltei" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "adâncimea de tăiere" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "inălţimea deplasare" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "pasul pentru taierea progresiva" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "valoarea viteza motor" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 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:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "Vizualiz. codul CNC" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." @@ -8630,11 +8562,11 @@ msgstr "" "Deschide un nou tab pentru a vizualiza, modifica\n" "sau tipari codul G-Code." -#: flatcamGUI/ObjectUI.py:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "Salvează codul CNC" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 msgid "" "Opens dialog to save G-Code\n" "file." @@ -8642,78 +8574,78 @@ msgstr "" "Deshide o fereastra dialog pentru salvarea codului\n" "G-Code intr-un fişier." -#: flatcamGUI/ObjectUI.py:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "Editare Script" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "Autocompletare" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 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:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "Obiect document" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 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:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "Tipul Font" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "Dim. Font" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "Aliniere" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "Aliniați la stânga" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "Centru" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "Aliniați la dreapta" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "Aliniere duala" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "Culoare FOnt" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "Setați culoarea fontului pentru textul selectat" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "Culoare de selecție" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 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:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "Dimens. filei" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 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." @@ -8763,10 +8695,8 @@ msgstr "" "Scopul este de a ilustra limitele suprafetei noastre de lucru." #: flatcamGUI/PreferencesUI.py:359 -#, fuzzy -#| msgid "Seg. X size" msgid "Wk. size" -msgstr "Dim. seg X" +msgstr "Dim. Sp. Lucru" #: flatcamGUI/PreferencesUI.py:361 msgid "" @@ -8778,24 +8708,28 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:429 msgid "Wk. Orientation" -msgstr "" +msgstr "Orientare Sp. Lucru" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" "- Landscape" msgstr "" +"Poate fi:\n" +"- Portret\n" +"- Peisaj" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" -msgstr "" +msgstr "Portret" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" -msgstr "" +msgstr "Peisaj" #: flatcamGUI/PreferencesUI.py:447 msgid "Plot Fill" @@ -8902,7 +8836,7 @@ msgstr "Setează culoarea pentru forma geometrică din Editor." #: flatcamGUI/PreferencesUI.py:607 msgid "Editor Draw Sel." -msgstr "Sel. Desen Editor" +msgstr "Sel. in Editor Desen" #: flatcamGUI/PreferencesUI.py:609 msgid "Set the color of the shape when selected." @@ -9027,7 +8961,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:806 msgid "Sel. Shape" -msgstr "Forma Sel." +msgstr "Forma de sel." #: flatcamGUI/PreferencesUI.py:808 msgid "" @@ -9196,7 +9130,7 @@ msgid "App Preferences" msgstr "Preferințele Aplicaţie" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -9213,7 +9147,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" @@ -9223,10 +9157,8 @@ msgid "IN" msgstr "Inch" #: flatcamGUI/PreferencesUI.py:1074 -#, fuzzy -#| msgid "Precision" msgid "Precision MM" -msgstr "Precizie" +msgstr "Precizie MM" #: flatcamGUI/PreferencesUI.py:1076 msgid "" @@ -9234,12 +9166,13 @@ msgid "" "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/PreferencesUI.py:1088 -#, fuzzy -#| msgid "Precision" msgid "Precision INCH" -msgstr "Precizie" +msgstr "Precizie INCH" #: flatcamGUI/PreferencesUI.py:1090 msgid "" @@ -9247,6 +9180,9 @@ msgid "" "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/PreferencesUI.py:1102 msgid "Graphic Engine" @@ -9516,7 +9452,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1310 msgid "Allow Machinist Unsafe Settings" -msgstr "" +msgstr "Permiteți setări nesigure pt Mașiniști" #: flatcamGUI/PreferencesUI.py:1312 msgid "" @@ -9526,13 +9462,22 @@ msgid "" "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/PreferencesUI.py:1333 msgid "Gerber General" msgstr "Gerber General" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "Pași pt. cerc" @@ -9563,13 +9508,13 @@ msgstr "Unitătile de măsură folosite in fişierul Gerber." #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "Inch" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "Zero-uri" @@ -9591,13 +9536,13 @@ msgstr "" "(Invers fată de fişierele Excellon)." #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" @@ -9606,8 +9551,8 @@ msgstr "TZ" msgid "Gerber Options" msgstr "Opțiuni Gerber" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "Conv." @@ -9619,8 +9564,8 @@ msgstr "Combina" msgid "Gerber Adv. Options" msgstr "Opțiuni Av. Gerber" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "Opțiuni avansate" @@ -9650,16 +9595,12 @@ msgstr "" "posibil afisatele marcaje ale aperturilor." #: flatcamGUI/PreferencesUI.py:1693 -#, fuzzy -#| msgid "Get Exteriors" msgid "Exterior" -msgstr "Obtine Exterior" +msgstr "Exterior" #: flatcamGUI/PreferencesUI.py:1694 -#, fuzzy -#| msgid "Get Interiors" msgid "Interior" -msgstr "Obtine Interioare" +msgstr "Interior" #: flatcamGUI/PreferencesUI.py:1702 msgid "" @@ -9675,8 +9616,8 @@ msgstr "" "valoarea de bază.\n" "<>: Nu schimba această valoare decat dacă stii ce faci !!!" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -9709,7 +9650,7 @@ msgstr "Toleranță pentru simplificarea poligoanelor." msgid "Gerber Export" msgstr "Export Gerber" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "Opțiuni de Export" @@ -9722,7 +9663,7 @@ msgstr "" "se exporta un fişier Gerber folosind:\n" "File -> Exportă -> Exportă Gerber." -#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "Înt/Zecimale" @@ -9754,8 +9695,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "O listă de parametri ai Editorului Gerber." -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "Limita selecţie" @@ -9800,8 +9741,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "Dim. aper" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "Diametrele pentru unelte tăietoare, separate cu virgula" @@ -9809,8 +9750,8 @@ msgstr "Diametrele pentru unelte tăietoare, separate cu virgula" msgid "Linear Pad Array" msgstr "Arie Lineară de Sloturi" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "Direcție liniară" @@ -9818,13 +9759,13 @@ msgstr "Direcție liniară" msgid "Circular Pad Array" msgstr "Arie de Sloturi circ" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "Direcția circulară" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -9833,8 +9774,8 @@ msgstr "" "Poate fi CW = in sensul acelor de ceasornic sau CCW = invers acelor de " "ceasornic." -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "Unghi circular" @@ -9927,7 +9868,7 @@ msgstr "" "adica 2 parti intregi și 4 zecimale" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -9936,7 +9877,7 @@ msgstr "" "intreaga a coordonatelor Excellon." #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -9958,7 +9899,7 @@ msgstr "" msgid "Default Zeros" msgstr "Suprimare Zero" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10097,11 +10038,11 @@ msgstr "" "Parametrii folositi pentru a crea un obiect FlatCAM tip CNCJob\n" "din acest obiect Excellon." -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "Durată" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -10115,19 +10056,19 @@ msgstr "" "Când se alege Sloturi sau Ambele, sloturile vor fi convertite in serii de " "găuri." -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "Crează un obiect tip Geometrie pentru frezarea găurilor." -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "Val. Implicite" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "Opțiuni Avans. Excellon" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -10138,21 +10079,19 @@ msgstr "" "când este selectat Nivelul Avansat pentru\n" "aplicaţie in Preferințe - > General." -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "X,Y schimb. unealtă" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "Poziţia X,Y in format (x,y) unde se face schimbarea uneltei." -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 -#, fuzzy -#| msgid "Spindle dir." +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 msgid "Spindle direction" -msgstr "Directie Motor" +msgstr "Directie rotatie Motor" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -10164,11 +10103,11 @@ msgstr "" "- CW = in sensul acelor de ceasornic\n" "- CCW = in sensul invers acelor de ceasornic" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "Plonjare rapidă" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -10185,11 +10124,11 @@ msgstr "" "schimba\n" "unealta. Daca aveti ceva plasat sub unealtă ceva se va strica." -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "Retragere rapida" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -10208,11 +10147,11 @@ msgstr "" "adâncimea\n" "de deplasare cu viteza maxima G0, intr-o singură mișcare." -#: flatcamGUI/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "Export Excellon" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -10221,11 +10160,11 @@ msgstr "" "se exporta un fişier Excellon folosind:\n" "File -> Exporta -> Exporta Excellon." -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "Unitatile de masura folosite in fişierul Excellon." -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -10237,11 +10176,11 @@ msgstr "" "Aici se setează formatul Excellon când nu se utilizează\n" "coordonate cu zecimale." -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "Format" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -10260,15 +10199,15 @@ msgstr "" "- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" "- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "Zecimale" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "Fără zecimale" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10280,11 +10219,11 @@ msgstr "" "- LZ = zerourile prefix sunt pastrate și cele sufix eliminate\n" "- TZ = zerourile prefix sunt eliminate și cele sufix pastrate." -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "Tip slot" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -10298,19 +10237,19 @@ msgstr "" "Dacă sunt Găurite (G85) sloturile vor fi exportate\n" "folosind comanda slotului găurit (G85)." -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "Decupate" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "Găurite(G85)" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "O listă de parametri ai Editorului Excellon." -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -10324,19 +10263,19 @@ msgstr "" "Creste performanta cand se muta un număr mai mare de \n" "elemente geometrice." -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "Dia. nou unealtă" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "Arie lineară de găuri" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "Arie circ. de găuri" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -10348,19 +10287,19 @@ msgstr "" "Valoarea minimă este: -359,99 grade.\n" "Valoarea maximă este: 360,00 grade." -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "Arie lineară de Sloturi" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "Arie circ. de Sloturi" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "Geometrie General" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -10368,11 +10307,11 @@ msgstr "" "Numărul de segmente utilizate pentru\n" "aproximarea lineara a Geometriilor circulare." -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "Opțiuni Geometrie" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -10381,11 +10320,11 @@ msgstr "" "Crează un obiect CNCJob care urmăreste conturul\n" "acestui obiect tip Geometrie." -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "Adânc./Trecere" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -10398,11 +10337,11 @@ msgstr "" "Valoarea este pozitivă desi reprezinta o fracţie\n" "a adancimii de tăiere care este o valoare negativă." -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "Opțiuni Avans. Geometrie" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -10413,12 +10352,13 @@ msgstr "" "când este selectat Nivelul Avansat pentru\n" "aplicaţie in Preferințe - > General." -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "X,Y schimb. unealtă" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -10426,13 +10366,11 @@ msgstr "" "Înălţimea uneltei la care se gaseste la inceputul lucrului.\n" "Lasa câmpul gol daca nu folosești aceasta." -#: flatcamGUI/PreferencesUI.py:3508 -#, fuzzy -#| msgid "Seg. X size" +#: flatcamGUI/PreferencesUI.py:3526 msgid "Segment X size" msgstr "Dim. seg X" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -10443,13 +10381,11 @@ msgstr "" "O valoare de 0 inseamnaca nu se face segmentare\n" "pe axa X." -#: flatcamGUI/PreferencesUI.py:3524 -#, fuzzy -#| msgid "Seg. Y size" +#: flatcamGUI/PreferencesUI.py:3542 msgid "Segment Y size" msgstr "Dim. seg Y" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -10460,15 +10396,15 @@ msgstr "" "O valoare de 0 inseamnaca nu se face segmentare\n" "pe axa Y." -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "Editor Geometrii" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "O lista de parametri ai Editorului de Geometrii." -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -10482,11 +10418,11 @@ msgstr "" "Creste performanta cand se muta un număr mai mare de \n" "elemente geometrice." -#: flatcamGUI/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "CNCJob General" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -10494,21 +10430,21 @@ msgstr "" "Numărul de segmente utilizate pentru\n" "aproximarea lineara a reprezentarilor GCodului circular." -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "Dia Deplasare" -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 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/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "Coord. zecimale" -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -10516,11 +10452,11 @@ msgstr "" "Numărul de zecimale care să fie folosit in \n" "coordonatele X,Y,Z in codul CNC (GCode etc)." -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "Feedrate zecimale" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -10528,11 +10464,11 @@ msgstr "" "Numărul de zecimale care să fie folosit in \n" "parametrul >Feedrate< in codul CNC (GCode etc)." -#: flatcamGUI/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "Tip coordinate" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -10544,81 +10480,83 @@ msgstr "" "- Absolut G90 -> referinta este originea x=0, y=0\n" "- Incrementator G91 -> referinta este pozitia anterioară" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "Absolut G90" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "Incrementator G91" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" -msgstr "" +msgstr "Forțați finalizarea liniei în stil Windows" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 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/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "Opțiuni CNCJob" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "Exportă G-Code" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "Adaugă la inceputul G-Code" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "Adaugă la sfârşitul G-Code" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "Opțiuni Avans. CNCJob" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" msgstr "Z adâncimea de tăiere" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" msgstr "Z Înălţimea deplasare" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 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/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "Dim. anotate" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 msgid "The font size of the annotation text. In pixels." msgstr "Dimensiunea fontului pt. textul cu notatii. In pixeli." -#: flatcamGUI/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "Culoarea anotatii" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "Setează culoarea pentru textul cu anotatii." -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "Opțiuni Unealta NCC" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "Dia unealtă" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolNonCopperClear.py:223 msgid "" @@ -10630,11 +10568,11 @@ msgstr "" "- 'Forma-V'\n" "- Circular" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "Forma-V" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 #: flatcamTools/ToolNonCopperClear.py:264 msgid "" @@ -10644,13 +10582,12 @@ msgstr "" "Adancimea de tăiere in material. Valoare negative.\n" "In unitătile FlatCAM." -#: flatcamGUI/PreferencesUI.py:4039 -#, fuzzy -#| msgid "Diameter for the new tool to add in the Tool Table" +#: flatcamGUI/PreferencesUI.py:4057 msgid "The new tool diameter (cut width) to add in the tool table." -msgstr "Diametrul pentru noua unealtă care să fie adăugată in Tabela de Unelte" +msgstr "" +"Noul diametru al sculei (lățimea tăiată) pt adăugare în tabelul Unelte." -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 #: flatcamTools/ToolNonCopperClear.py:172 msgid "" @@ -10663,13 +10600,13 @@ msgstr "" "uneltei\n" "- conventional -> pentru cazul când nu exista o compensare a 'backlash-ului'" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "Ordine unelte" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 #: flatcamTools/ToolNonCopperClear.py:192 flatcamTools/ToolPaint.py:154 #: flatcamTools/ToolPaint.py:164 @@ -10691,29 +10628,17 @@ msgstr "" "AVERTIZARE: folosirea prelucrării 'resturi' va seta automat ordonarea\n" "în sens invers și va dezactiva acest control." -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "Înainte" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "Înapoi" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be cleared are still \n" -#| "not cleared.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10725,9 +10650,6 @@ msgid "" msgstr "" "Cat de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " "trecere a uneltei.\n" -"Exemplu:\n" -"O valoare aici de 0.25 inseamna 25%% din diametrul uneltei de mai sus..\n" -"\n" "Ajustează valoarea incepand de la valori mici\n" "și pe urma creste daca ariile care ar trebui >curățate< inca\n" "nu sunt procesate.\n" @@ -10735,14 +10657,14 @@ msgstr "" "Valori mari= procesare lenta cat și o execuţie la fel de lenta a PCB-ului,\n" "datorita numărului mai mare de treceri-tăiere." -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "Marginea pentru forma înconjurătoare." -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -10753,22 +10675,22 @@ msgstr "" "
Punct-samanta: De la punctul samanta, spre expterior.
Linii " "drepte: Linii paralele." -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "Conectează" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "Contur" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "Rest M." -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -10786,7 +10708,7 @@ msgstr "" "final. Aceasta deaorece unele unelte nu vor putea genera geometrie.\n" "Daca nu este bifat, foloseşte algoritmul standard." -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -10799,17 +10721,11 @@ msgstr "" "de traseele de cupru.\n" "Valoarea poate fi cuprinsă între 0 și 10 unități FlatCAM." -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "Valoare Ofset" -#: flatcamGUI/PreferencesUI.py:4192 -#, fuzzy -#| 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." +#: flatcamGUI/PreferencesUI.py:4210 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10819,28 +10735,28 @@ 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." +"Valoarea poate fi cuprinsă între 0 și 9999.9 unități FlatCAM." -#: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 #: flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "Însuşi" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "Aria" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "Ref" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "Referinţă" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -10860,19 +10776,19 @@ msgstr "" "- „Obiect de referință” - va face o curățare fără cupru în zona\n" "specificată de un alt obiect." -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "Normal" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "Progresiv" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "Afisare NCC" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 msgid "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10880,16 +10796,16 @@ msgstr "" "- 'Normal' - afisare normală, efectuată la sfarsitul activitătii NCC\n" "- 'Progresiv' - forma se afisează imediat ce a fost generată." -#: flatcamGUI/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "Opțiuni Unealta Decupare" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "Dia unealtă" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10897,13 +10813,11 @@ msgstr "" "Diametrul uneltei folosita pt decuparea\n" "PCB-ului din materialului inconjurator." -#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 -#, fuzzy -#| msgid "Obj kind" +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 msgid "Object kind" msgstr "Tipul de obiect" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -10915,15 +10829,15 @@ msgstr "" "tip panel, care este făcut\n" "din mai multe contururi PCB." -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "Unic" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "Panel" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10933,11 +10847,11 @@ msgstr "" "va face decuparea distanțat cu aceasta valoare \n" "fata de PCB-ul efectiv" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "Dim. punte" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10948,11 +10862,11 @@ msgstr "" "in a mentine ataşat PCB-ul la materialul de unde \n" "este decupat." -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "Punţi" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10976,11 +10890,11 @@ msgstr "" "- 2tb = 2* sus - 2* jos\n" "- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "Formă Conv." -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10989,11 +10903,11 @@ msgstr "" "tot PCB-ul. Forma sa este convexa.\n" "Se foloseste doar daca obiectul sursă este de tip Gerber." -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "Opțiuni Unealta 2Fețe" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -11001,36 +10915,36 @@ msgstr "" "O unealtă care ajuta in crearea de PCB-uri cu 2 fețe\n" "folosind găuri de aliniere." -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "Dia gaură" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "Diametrul găurii pentru găurile de aliniere." -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "Axe oglindire:" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Oglindește vertical (X) sau orizontal (Y)." -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "Punct" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "Forma" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" msgstr "Axa de Ref" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -11039,61 +10953,16 @@ msgstr "" "Axa de referinţă ar trebui să treacă printr-un punct ori să strabata\n" " o forma (obiect FlatCAM) prin mijloc." -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "Opțiuni Unealta Paint" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "Parametri:" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." -msgid "" -"How much (fraction) 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" -"Exemplu:\n" -"O valoare aici de 0.25 inseamna 25%% din diametrul uneltei de mai sus.\n" -"\n" -"Ajustează valoarea incepand de la valori mici și pe urma creste daca ariile " -"care ar trebui\n" -" >pictate< inca nu sunt procesate.\n" -"Valori scazute = procesare rapida,execuţie rapida a PCB-ului.\n" -"Valori mari= procesare lenta cat și o execuţie la fel de lenta a PCB-ului,\n" -"datorita numărului mai mare de treceri-tăiere." - -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 -#, fuzzy -#| msgid "" -#| "How to select Polygons to be painted.\n" -#| "\n" -#| "- 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'All Polygons' - the Paint will start after click.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "How to select Polygons to be painted.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be " @@ -11107,26 +10976,25 @@ msgid "" "specified by another object." msgstr "" "Cum se selectează Poligoanele care vor fi pictate.\n" -"\n" +"- „Selecție poligon” - faceți clic stânga pentru a adăuga / elimina " +"poligoane care urmează să fie pictate.\n" "- „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 " +"Menținerea unei taste modificatoare 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\n" -"specificată de un alt obiect." +"- „Toate Poligoanele” - Unealta Paint va începe după clic.\n" +"- „Obiect de referință” - va face o curățare fără cupru în zona specificată " +"de un alt obiect." -#: flatcamGUI/PreferencesUI.py:4596 -#, fuzzy -#| msgid "Select" +#: flatcamGUI/PreferencesUI.py:4614 msgid "Sel" msgstr "Selectează" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "Afisare Paint" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 msgid "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -11134,11 +11002,11 @@ msgstr "" "- 'Normal' - afisare normală, efectuată la sfarsitul activitătii Paint\n" "- 'Progresiv' - forma se afisează imediat ce a fost generată." -#: flatcamGUI/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "Opțiuni Unealta Film" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" @@ -11147,11 +11015,11 @@ msgstr "" "Crează un film PCB dintr-un obiect Gerber sau tip Geometrie.\n" "Fişierul este salvat in format SVG." -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "Tip film" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -11165,19 +11033,19 @@ msgstr "" "Negativ = traseele vor fi albe pe un fundal negru.\n" "Formatul fişierului pt filmul salvat este SVG." -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "Film Color" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 msgid "Set the film color when positive film is selected." msgstr "Setați culoarea filmului atunci când este selectat filmul pozitiv." -#: flatcamGUI/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Bordură" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -11194,11 +11062,11 @@ msgstr "" "Va crea o bara solidă neagră in jurul printului efectiv permitand o\n" "delimitare exactă." -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Scalează" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 " @@ -11208,11 +11076,11 @@ msgstr "" "Scalează grosimea conturului fiecarui element din fişierul SVG.\n" "Elementele mai mici vor fi afectate mai mult." -#: flatcamGUI/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Reglarea filmelor" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -11223,11 +11091,11 @@ msgstr "" "Această secțiune oferă instrumentele pentru a compensa distorsiunile de " "tipărire." -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Scalați geo film" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -11235,21 +11103,21 @@ msgstr "" "O valoare mai mare de 1 va întinde filmul\n" "în timp ce o valoare mai mică de 1 il va compacta." -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "Factor X" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Factor Y" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Deformeaza Geo Film" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -11257,17 +11125,17 @@ msgstr "" "Valorile pozitive vor înclina spre dreapta\n" "în timp ce valorile negative vor înclina spre stânga." -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Unghi X" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "Unghi Y" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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." @@ -11276,90 +11144,85 @@ msgstr "" "Poate fi unul dintre cele patru puncte ale căsuței de delimitare a " "geometriei." -#: flatcamGUI/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Stânga jos" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Stânga sus" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Dreapta-jos" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Dreapta-sus" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Oglindeste Geo Film" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 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/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Ambele" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Axe oglindire" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" -msgstr "" +msgstr "SVG" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" -msgstr "" +msgstr "PNG" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" -msgstr "" +msgstr "PDF" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "Tip film:" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 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/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" -msgstr "" +msgstr "Orientarea paginii" -#: flatcamGUI/PreferencesUI.py:4835 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" - -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 -#, fuzzy -#| msgid "Trace Size" +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" -msgstr "Dim. traseu" +msgstr "Mărimea paginii" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." -msgstr "" +msgstr "O selecție de dimensiuni standard de pagină conform ISO 216." -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "Opțiuni Unealta Panelizare" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11369,11 +11232,11 @@ msgstr "" "unde fiecare element este o copie a obiectului sursa, separat la o\n" "distanţă X, Y unul de celalalt." -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "Sep. coloane" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11381,11 +11244,11 @@ msgstr "" "Spatiul de separare între coloane.\n" "In unitatile curente." -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "Sep. linii" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11393,36 +11256,36 @@ msgstr "" "Spatiul de separare între linii.\n" "In unitatile curente." -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "Coloane" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "Numărul de coloane ale panel-ului dorit" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "Linii" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "Numărul de linii ale panel-ului dorit" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "Gerber" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "Geo" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "Tip panel" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11432,11 +11295,11 @@ msgstr "" "- Gerber\n" "- Geometrie" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "Constrange" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11450,11 +11313,11 @@ msgstr "" "panelul final va contine numai acel număr de linii/coloane care se inscrie\n" "complet in aria desemnata." -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "Lătime (Dx)" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11462,11 +11325,11 @@ msgstr "" "Lăţimea (Dx) in care panelul trebuie să se inscrie.\n" "In unitati curente." -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "Inăltime (Dy)" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11474,15 +11337,15 @@ msgstr "" "Înălţimea (Dy) in care panelul trebuie să se inscrie.\n" "In unitati curente." -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "Opțiuni Unealta Calculatoare" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Calculator Unealta V-Shape" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -11492,11 +11355,11 @@ msgstr "" "avand diametrul vârfului și unghiul la vârf cat și\n" "adâncimea de tăiere, ca parametri." -#: flatcamGUI/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Dia vârf" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11504,11 +11367,11 @@ msgstr "" "Acesta este diametrul la vârf al uneltei.\n" "Este specificat de producator." -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "V-Unghi" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -11516,7 +11379,7 @@ msgstr "" "Acesta este unghiul la vârf al uneltei.\n" "Este specificat de producator." -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -11524,11 +11387,11 @@ msgstr "" "Aceasta este adâncimea la care se taie in material.\n" "In obiectul CNCJob este parametrul >Z tăiere<." -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Calculator ElectroPlacare" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " @@ -11540,31 +11403,31 @@ msgstr "" "- clorura paladiu\n" "- hipofosfit de calciu." -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Lung. plăcii" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "" "Aceasta este lungimea PCB-ului.\n" "In centimetri." -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Lăt. plăcii" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "" "Aceasta este lăţimea PCB-ului.\n" "In centimetri." -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Densitate I" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11572,11 +11435,11 @@ msgstr "" "Densitatea de curent care să treaca prin placa.\n" "In ASF (amperi pe picior la patrat)." -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Grosime Cu" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11584,11 +11447,11 @@ msgstr "" "Cat de gros se dorește să fie stratul de cupru depus.\n" "In microni." -#: flatcamGUI/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "Opțiuni Unealta Transformare" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." @@ -11596,19 +11459,19 @@ msgstr "" "Diverse transformări care pot fi aplicate\n" "asupra unui obiect FlatCAM." -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "Deformare" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "Factor de scalare pe axa X." -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Factor de scalare pe axa Y." -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11616,7 +11479,7 @@ msgstr "" "Scalează obiectele selectate folosind\n" "Factor Scal_X pentru ambele axe." -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11629,27 +11492,27 @@ msgstr "" "centrul formei inconjuatoare care cuprinde\n" "toate obiectele selectate." -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "Val X" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "Distanta la care se face ofset pe axa X. In unitatile curente." -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Val Y" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 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/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "Referinţă Oglindire" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11672,11 +11535,11 @@ msgstr "" "in forma (x, y).\n" "La final apasă butonul de oglindire pe axa dorită" -#: flatcamGUI/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "Punct referinţă Oglindire" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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" @@ -11687,11 +11550,11 @@ msgstr "" "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/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "Opțiuni Unealta Pasta Fludor" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11699,49 +11562,49 @@ msgstr "" "O unealtă care crează cod G-Code pentru dispensarea de pastă de fludor\n" "pe padurile unui PCB." -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "Diametrele uneltelor (nozzle), separate prin virgula." -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "Dia nou" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 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/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" -msgstr "Z start disp." +msgstr "Z start dispensare" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "Înălţimea (Z) când incepe dispensarea de pastă de fludor." -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" -msgstr "Z disp." +msgstr "Z dispensare" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 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/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" -msgstr "Z stop disp." +msgstr "Z stop dispensare" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "Înălţimea (Z) când se opreste dispensarea de pastă de fludor." -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "Z deplasare" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11749,15 +11612,15 @@ msgstr "" "Înălţimea (Z) când se face deplasare între pad-uri.\n" "(fără dispensare de pastă de fludor)." -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "Z schimb. unealtă" -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "Înălţimea (Z) când se schimbă unealta (nozzle-ul)." -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11765,22 +11628,22 @@ msgstr "" "Coordonatele X, Y pentru schimbarea uneltei (nozzle).\n" "Formatul este (x,y) unde x și y sunt numere Reale." -#: flatcamGUI/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 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/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 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/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" -msgstr "Feedrate Z disp." +msgstr "Feedrate Z dispensare" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11788,11 +11651,11 @@ msgstr "" "Viteza de deplasare la mișcarea pe verticala spre\n" "poziţia de dispensare (in planul Z)." -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "Viteza motor inainte" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11800,19 +11663,19 @@ msgstr "" "Viteza motorului de dispensare in timp ce impinge pastă de fludor\n" "prin orificiul uneltei de dispensare." -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "Pauza FWD" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "Pauza dupa dispensarea de pastă de fludor." -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "Viteza motor inapoi" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11820,11 +11683,11 @@ msgstr "" "Viteza motorului de dispensare in timp ce retrage pasta de fludor\n" "prin orificiul uneltei de dispensare." -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "Pauza REV" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11832,15 +11695,15 @@ msgstr "" "Pauza dupa ce pasta de fludor a fost retrasă,\n" "necesară pt a ajunge la un echilibru al presiunilor." -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "Fişiere care controlează generarea codului G-Code." -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "Opțiuni Unealta Substracţie" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11848,22 +11711,22 @@ msgstr "" "O unealtă pentru scăderea unui obiect Gerber sau Geometry\n" "din altul de același tip." -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "Închide căile" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 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/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "Opțiuni Unealta Verificare Reguli" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -11871,20 +11734,20 @@ msgstr "" "Un instrument pentru a verifica dacă fișierele Gerber se află într-un set\n" "de Norme de fabricație." -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "Dim. traseu" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 msgid "This checks if the minimum size for traces is met." msgstr "Aceasta verifică dacă dimensiunea minimă a traseelor este respectată." -#: flatcamGUI/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -11893,16 +11756,16 @@ msgstr "Aceasta verifică dacă dimensiunea minimă a traseelor este respectată msgid "Min value" msgstr "Val. min" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "Dimensiunea minimă acceptabilă a traseelor." -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "Distanta de la cupru până la cupru" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." @@ -11910,23 +11773,23 @@ msgstr "" "Aceasta verifică dacă distanța minimă dintre traseele cupru\n" "este îndeplinita." -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "Valoarea minimă acceptabilă a distantei." -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "Distanta de la Cupru până la contur" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -11934,11 +11797,11 @@ msgstr "" "Aceasta verifică dacă distanța minimă dintre\n" "traseele de cupru și conturul este îndeplinit." -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "Distanta Silk până la Silk Clearance" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." @@ -11946,13 +11809,13 @@ msgstr "" "Acest lucru verifică dacă distanța minimă între silk (anotari)\n" "sunt îndeplinite." -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "Distanta intre Silk (anotari) si Solder mask (masca fludor)" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -11960,13 +11823,13 @@ msgstr "" "Acest lucru verifică dacă distanța minimă între Silk (anotari)\n" "și Solder Mask (masca de fludor) este îndeplinită." -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "Distanta Silk (anotari) si Contur" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -11974,14 +11837,14 @@ msgstr "" "Acest lucru verifică dacă distanța minimă dintre Silk (anotari)\n" "și Contur este îndeplinită." -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "" "Dim. minima a separatorului din Solder Mask\n" "(masca de fludor)" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -11989,13 +11852,13 @@ msgstr "" "Acest lucru verifică dacă distanta minimă între\n" "elementele soldermask (masca de fludor) este îndeplinită." -#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "Inel anular minim" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -12003,16 +11866,16 @@ 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/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "Valoarea minimă acceptabilă a inelului." -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "Distanta de la Gaură la Gaură" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." @@ -12020,16 +11883,16 @@ msgstr "" "Acest lucru verifică dacă distanța minimă dintre o gaură\n" "și o altă gaură este îndeplinită." -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "Dimensiunea minimă acceptabilă a gaurii." -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "Dimens. gaura" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -12037,11 +11900,11 @@ msgstr "" "Acest lucru verifică dacă\n" "dimensiunile găurilor sunt peste prag." -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "Opțiuni Unealta Optim" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -12049,46 +11912,44 @@ msgstr "" "Un instrument pentru a găsi distanța minimă între\n" "la fiecare două elemente geometrice Gerber" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Precizie" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 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/PreferencesUI.py:5855 -#, fuzzy -#| msgid "NCC Tool Options" +#: flatcamGUI/PreferencesUI.py:5873 msgid "QRCode Tool Options" -msgstr "Opțiuni Unealta NCC" +msgstr "Opțiuni Unealta QRCode" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 -#, fuzzy -#| msgid "Conversion" +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 msgid "Version" -msgstr "Conversii" +msgstr "Versiune" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 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/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 -#, fuzzy -#| msgid "Corrections" +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 msgid "Error correction" -msgstr "Corecţii" +msgstr "Corectarea erorii" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -12098,376 +11959,361 @@ msgid "" "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/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 -#, fuzzy -#| msgid "Font Size" +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 msgid "Box Size" -msgstr "Dim. Font" +msgstr "Dim. Element" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 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/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 -#, fuzzy -#| msgid "Border" +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 msgid "Border Size" -msgstr "Bordură" +msgstr "Dim Bordură" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 -#, fuzzy -#| msgid "Tool Data" +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" -msgstr "Date unealtă" +msgstr "Date QRCode" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "" +msgstr "Date QRCode. Text alfanumeric care va fi codat în codul QRC." -#: flatcamGUI/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." -msgstr "" +msgstr "Adăugați aici textul care va fi inclus în codul QR ..." -#: flatcamGUI/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" -msgstr "" +msgstr "Polaritate" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 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/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Negativ" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Pozitiv" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: 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/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 -#, fuzzy -#| msgid "Round" +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 msgid "Rounded" -msgstr "Rotund" +msgstr "Rotunjit" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 -#, fuzzy -#| msgid "Film Color" +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 msgid "Fill Color" -msgstr "Film Color" +msgstr "Culoare Continut" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." -msgstr "" +msgstr "Setați culoarea QRCode de umplere (culoarea elementelor)." -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 -#, fuzzy -#| msgid "Font Color" +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 msgid "Back Color" -msgstr "Culoare FOnt" +msgstr "Culoare de fundal" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." -msgstr "" +msgstr "Setați culoarea de fundal QRCode." -#: flatcamGUI/PreferencesUI.py:6043 -#, fuzzy -#| msgid "Film Tool Options" +#: flatcamGUI/PreferencesUI.py:6061 msgid "Copper Thieving Tool Options" -msgstr "Opțiuni Unealta Film" +msgstr "Opțiunile Uneltei Copper Thieving" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 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/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." -msgstr "" +msgstr "Numărul de pași (linii) utilizate pentru interpolarea cercurilor." -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 -#, fuzzy -#| msgid "Tolerance" msgid "Clearance" -msgstr "Toleranta" +msgstr "Degajare" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 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/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "Selecţie zonă" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "Obiect Ref" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "Referinţă:" -#: flatcamGUI/PreferencesUI.py:6108 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." +#: flatcamGUI/PreferencesUI.py:6126 msgid "" "- 'Itself' - the copper Thieving extent is based on the object that is " "copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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” - suprafața de curățare a cuprului\n" -"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 care va fi pictată.\n" -"Menținerea unei taste de modificare apăsată (CTRL sau SHIFT) va permite " -"adăugarea mai multor zone.\n" -"- „Obiect de referință” - va face o curățare fără cupru în zona\n" -"specificată de un alt obiect." +"- „Î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/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "Patrulater" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" -msgstr "" +msgstr "Minimal" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Tip container:" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- '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/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" -msgstr "" +msgstr "Grilă de puncte" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 -#, fuzzy -#| msgid "Square" +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 msgid "Squares Grid" -msgstr "Patrat" +msgstr "Grilă de pătrate" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 -#, fuzzy -#| msgid "Linear" +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 msgid "Lines Grid" -msgstr "Liniar" +msgstr "Grilă de linii" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 -#, fuzzy -#| msgid "Film Type:" +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 msgid "Fill Type:" -msgstr "Tip film:" +msgstr "Tip de umplere:" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 -#, fuzzy -#| msgid "Slot Parameters" +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 msgid "Dots Grid Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametri grilă puncte" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 -#, fuzzy -#| msgid "Tool diameter in file units." +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 msgid "Dot diameter in Dots Grid." -msgstr "Dimaetrul uneltei in unitătile fisierului." +msgstr "Diametrul punctului în Grila de Puncte." -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 -#, fuzzy -#| msgid "Spacing cols" msgid "Spacing" -msgstr "Sep. coloane" +msgstr "Spaţiere" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." -msgstr "" +msgstr "Distanța dintre fiecare două puncte din Grila de Puncte." -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 -#, fuzzy -#| msgid "Slot Parameters" +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 msgid "Squares Grid Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametri grilă de patrate" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." -msgstr "" +msgstr "Dimensiunea pătratului în grila de pătrate" -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." -msgstr "" +msgstr "Distanța dintre fiecare două pătrate din Grila Pătrate." -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 -#, fuzzy -#| msgid "Slot Parameters" +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 msgid "Lines Grid Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametri grilă de linii" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." -msgstr "" +msgstr "Mărimea grosimii liniei în Grila de linii." -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." -msgstr "" +msgstr "Distanța dintre fiecare două linii în Grial de linii." -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 -#, fuzzy -#| msgid "Slot Parameters" +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametri pentru Robber Bar" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 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/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 -#, fuzzy -#| msgid "Bounding box margin." +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 msgid "Bounding box margin for robber bar." -msgstr "Marginea pentru forma înconjurătoare." +msgstr "" +"Marginea pentru forma înconjurătoare\n" +"a Robber Bar." -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" -msgstr "" +msgstr "Grosime" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." -msgstr "" +msgstr "Grosimea Robber Bar." -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" -msgstr "" +msgstr "Masca de placare cu model" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." -msgstr "" +msgstr "Generați o mască pentru placarea cu model." -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." msgstr "" -#: flatcamGUI/PreferencesUI.py:6298 +#: flatcamGUI/PreferencesUI.py:6316 #, fuzzy #| msgid "Film Tool Options" msgid "Fiducials Tool Options" msgstr "Opțiuni Unealta Film" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 #, fuzzy #| msgid "Diameter for the new tool." msgid "Parameters used for this tool." msgstr "Diametrul pt noua unealtă." -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 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 "" -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 #, fuzzy #| msgid "Manual Geo" msgid "Manual" msgstr "Geo manual" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 flatcamTools/ToolFiducials.py:191 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" " - 'Manual' - manual placement of fiducials." msgstr "" -#: flatcamGUI/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 flatcamTools/ToolFiducials.py:205 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -12475,21 +12321,21 @@ msgid "" "- 'None' - there is no second fiducial. The order is: bottom-left, top-right." msgstr "" -#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 #, fuzzy #| msgid "Film Type" msgid "Fiducial Type" msgstr "Tip film" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -12497,23 +12343,23 @@ msgid "" "- 'Chess' - chess pattern fiducial." msgstr "" -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "" -#: flatcamGUI/PreferencesUI.py:6414 +#: flatcamGUI/PreferencesUI.py:6432 #, fuzzy #| msgid "Calculators Tool Options" msgid "Calibration Tool Options" msgstr "Opțiuni Unealta Calculatoare" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 #, fuzzy #| msgid "Source" msgid "Source Type" msgstr "Sursă" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -12521,13 +12367,13 @@ msgid "" "- Free -> click freely on canvas to acquire the calibration points" msgstr "" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 #, fuzzy #| msgid "FreeForm" msgid "Free" msgstr "Formă liberă" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 #, fuzzy #| msgid "" #| "The height (Z) for travel between pads\n" @@ -12537,61 +12383,93 @@ msgstr "" "Înălţimea (Z) când se face deplasare între pad-uri.\n" "(fără dispensare de pastă de fludor)." -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 #, fuzzy #| msgid "Gerber Specification" msgid "Verification Z" msgstr "Specificatii Gerber" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "" -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." msgstr "" -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "" -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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 "" + +#: flatcamGUI/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +#, fuzzy +#| msgid "Second object point" +msgid "Second point" +msgstr "Al doilea punct" + +#: flatcamGUI/PreferencesUI.py:6532 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 "" + +#: flatcamGUI/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +#, fuzzy +#| msgid "Top Left" +msgid "Top-Left" +msgstr "Stânga sus" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +#, fuzzy +#| msgid "Bottom Right" +msgid "Bottom-Right" +msgstr "Dreapta-jos" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "Asocieri fisiere Excellon" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "Restabilire" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "Restabiliți lista de extensii la starea implicită." -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "Sterge tot" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "Ștergeți toate extensiile din listă." -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "Lista de extensii" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -12599,43 +12477,43 @@ msgstr "" "Listă de extensii fisiere care să fie\n" "associate cu FlatCAM." -#: flatcamGUI/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "Extensie fișier" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 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/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "Adaugă Extensie" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "Adăugați o extensie de fișier la listă" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "Ștergeți Extensia" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "Ștergeți o extensie de fișier din listă" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "Aplicați Asociere" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12647,32 +12525,32 @@ msgstr "" "Vor fi active după următorul login.\n" "Functionează numai pt Windows." -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "Asocierile de fisiere G-Code" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "Asocierile de fisiere Gerber" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "Cuvinte cheie pt autocomplete" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 msgid "Restore the autocompleter keywords list to the default state." msgstr "" "Restaurați lista cuvinte cheie pentru autocompletere la starea implicită." -#: flatcamGUI/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "Ștergeți din listă toate cuvintele cheie pentru autocompletare." -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "Lista de cuvinte cheie" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -12684,23 +12562,23 @@ msgstr "" "Autocompleterul este instalat\n" "în Editorul de coduri și pentru Shell Tcl." -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 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/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "Adăugați cuvant cheie" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "Adăugați un cuvânt cheie la listă" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "Ștergeți cuvântul cheie" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "Ștergeți un cuvânt cheie din listă" @@ -12729,16 +12607,15 @@ msgstr "" "Userul trebuie să editeze obictul Excellon rezultat si sa ajusteze " "diametrele a.i sa reflecte diametrele reale." -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" -"{e_code} Eroare de analiza Excellon.\n" -"Analizarea a esuat. Linia {l_nr}: {line}\n" +"Eroare de analiza Excellon.\n" +"Analizarea a esuat. Linia" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12756,11 +12633,14 @@ msgstr "Fontul nu este acceptat, incearcă altul." msgid "Gerber processing. Parsing" msgstr "Prelucrare Gerber. Analizare" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "linii" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "Coordonatele lipsesc, linia este ignorată" @@ -12776,7 +12656,7 @@ msgstr "" "Regiunea Gerber nu are suficiente puncte. Fişierul va fi procesat dar sunt " "erori de parsare. Numărul liniei" -#: flatcamParsers/ParseGerber.py:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "Prelucrare Gerber. Se combină poligoanele" @@ -12816,6 +12696,30 @@ msgstr "Deformarea Gerber efectuată." msgid "Gerber Rotate done." msgstr "Rotatia Gerber efectuată." +#: flatcamParsers/ParseHPGL2.py:176 +#, fuzzy +#| msgid "Gerber processing. Parsing" +msgid "HPGL2 processing. Parsing" +msgstr "Prelucrare Gerber. Analizare" + +#: flatcamParsers/ParseHPGL2.py:408 +#, fuzzy +#| msgid "Plot Line" +msgid "HPGL2 Line" +msgstr "Culoare contur" + +#: flatcamParsers/ParseHPGL2.py:408 +#, fuzzy +#| msgid "Gerber Line Content" +msgid "HPGL2 Line Content" +msgstr "Continut linie Gerber" + +#: flatcamParsers/ParseHPGL2.py:409 +#, fuzzy +#| msgid "Gerber Parser ERROR" +msgid "HPGL2 Parser ERROR" +msgstr "Eroare in parserul Gerber" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Calculatoare" @@ -12907,122 +12811,124 @@ msgstr "" msgid "Calc. Tool" msgstr "Unealta Calc" -#: flatcamTools/ToolCalibration.py:36 +#: flatcamTools/ToolCalibration.py:67 #, fuzzy -#| msgid "Calculators Tool" -msgid "Calibration Tool" -msgstr "Unealta Calculatoare" +#| msgid "Slot Parameters" +msgid "GCode Parameters" +msgstr "Parametrii pt slot" -#: flatcamTools/ToolCalibration.py:66 +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "" + +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" "Pick four points by clicking inside the drill holes.\n" "Those four points should be in the four\n" "(as much as possible) corners of the Excellon object." msgstr "" -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 #: flatcamTools/ToolPanelize.py:66 flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "Tip Obiect" -#: flatcamTools/ToolCalibration.py:101 -#, fuzzy -#| msgid "No object selected." +#: flatcamTools/ToolCalibration.py:211 msgid "Source object selection" -msgstr "Nici-un obiect nu este selectat." +msgstr "Selectarea obiectului sursă" -#: flatcamTools/ToolCalibration.py:103 +#: flatcamTools/ToolCalibration.py:213 #, fuzzy #| msgid "The FlatCAM object to be used as non copper clearing reference." msgid "FlatCAM Object to be used as a source for reference points." msgstr "" "Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." -#: flatcamTools/ToolCalibration.py:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." msgstr "" -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "Tintă" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 #, fuzzy #| msgid "Bottom Left" msgid "Bot Left X" msgstr "Stânga jos" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 #, fuzzy #| msgid "Bottom Left" msgid "Bot Left Y" msgstr "Stânga jos" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 #, fuzzy #| msgid "Origin set" msgid "Origin" msgstr "Originea a fost setată" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 #, fuzzy #| msgid "Bottom Right" msgid "Bot Right X" msgstr "Dreapta-jos" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 #, fuzzy #| msgid "Bottom Right" msgid "Bot Right Y" msgstr "Dreapta-jos" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 #, fuzzy #| msgid "Top Left" msgid "Top Left X" msgstr "Stânga sus" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 #, fuzzy #| msgid "Top Left" msgid "Top Left Y" msgstr "Stânga sus" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 #, fuzzy #| msgid "Top right" msgid "Top Right X" msgstr "Dreapta-sus" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 #, fuzzy #| msgid "Top right" msgid "Top Right Y" msgstr "Dreapta-sus" -#: flatcamTools/ToolCalibration.py:258 +#: flatcamTools/ToolCalibration.py:370 #, fuzzy #| msgid "Ref. Point" msgid "Get Points" msgstr "Pt. Ref" -#: flatcamTools/ToolCalibration.py:260 +#: flatcamTools/ToolCalibration.py:372 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" @@ -13030,160 +12936,157 @@ msgid "" "the object." msgstr "" -#: flatcamTools/ToolCalibration.py:281 +#: flatcamTools/ToolCalibration.py:393 #, fuzzy #| msgid "Generate GCode" msgid "STEP 2: Verification GCode" msgstr "Genereaa GCode" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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 "" -#: flatcamTools/ToolCalibration.py:288 -#, fuzzy -#| msgid "Slot Parameters" -msgid "GCode Parameters" -msgstr "Parametrii pt slot" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "" - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Genereaa GCode" -#: flatcamTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:432 #, fuzzy #| msgid "Film Adjustments" msgid "STEP 3: Adjustments" msgstr "Reglarea filmelor" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 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 "" -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 #, fuzzy #| msgid "Calculators" msgid "Calculate Factors" msgstr "Calculatoare" -#: flatcamTools/ToolCalibration.py:400 +#: flatcamTools/ToolCalibration.py:463 #, fuzzy #| msgid "Generate GCode" msgid "STEP 4: Adjusted GCode" msgstr "Genereaa GCode" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." msgstr "" -#: flatcamTools/ToolCalibration.py:407 +#: flatcamTools/ToolCalibration.py:470 #, fuzzy #| msgid "Scale Factor:" msgid "Scale Factor X:" msgstr "Factor scalare:" -#: flatcamTools/ToolCalibration.py:419 +#: flatcamTools/ToolCalibration.py:482 #, fuzzy #| msgid "Scale Factor:" msgid "Scale Factor Y:" msgstr "Factor scalare:" -#: flatcamTools/ToolCalibration.py:431 -#, fuzzy -#| msgid "Ap. Scale Factor:" +#: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" -msgstr "Factor scalare ap.:" +msgstr "Aplicați factorii de scalare" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:443 +#: flatcamTools/ToolCalibration.py:506 #, fuzzy #| msgid "Angle X:" msgid "Skew Angle X:" msgstr "Unghi X:" -#: flatcamTools/ToolCalibration.py:456 +#: flatcamTools/ToolCalibration.py:519 #, fuzzy #| msgid "Angle Y:" msgid "Skew Angle Y:" msgstr "Unghi Y:" -#: flatcamTools/ToolCalibration.py:469 -#, fuzzy -#| msgid "Ap. Scale Factor:" +#: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" -msgstr "Factor scalare ap.:" +msgstr "Aplicați factorii de deformare" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 #, fuzzy #| msgid "Generate GCode" msgid "Generate Adjusted GCode" msgstr "Genereaa GCode" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +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 "" + +#: flatcamTools/ToolCalibration.py:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "" -#: flatcamTools/ToolCalibration.py:563 +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." msgstr "" -#: flatcamTools/ToolCalibration.py:572 +#: flatcamTools/ToolCalibration.py:641 #, fuzzy #| msgid "Edit Object\tE" msgid "Adjusted object type" msgstr "Editare Obiect\tE" -#: flatcamTools/ToolCalibration.py:574 +#: flatcamTools/ToolCalibration.py:643 #, fuzzy #| msgid "Geometry Obj to be mirrored." msgid "Type of the FlatCAM Object to be adjusted." msgstr "Obiectul Geometrie care va fi oglindit." -#: flatcamTools/ToolCalibration.py:585 +#: flatcamTools/ToolCalibration.py:654 #, fuzzy #| msgid "Edit Object\tE" msgid "Adjusted object selection" msgstr "Editare Obiect\tE" -#: flatcamTools/ToolCalibration.py:587 +#: flatcamTools/ToolCalibration.py:656 #, fuzzy #| msgid "Excellon Object to be mirrored." msgid "The FlatCAM Object to be adjusted." msgstr "Obiectul Excellon care va fi oglindit." -#: flatcamTools/ToolCalibration.py:594 -#, fuzzy -#| msgid "Creating Excellon." +#: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" -msgstr "In curs de creere Excellon." +msgstr "Calibreaza" -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." msgstr "" -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 @@ -13195,7 +13098,7 @@ msgstr "" msgid "Reset Tool" msgstr "Unalta Verif. Reguli" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 @@ -13211,59 +13114,59 @@ msgstr "" "Selectează unelte.\n" "Modifica parametri." -#: flatcamTools/ToolCalibration.py:688 -#, fuzzy -#| msgid "Creating Excellon." -msgid "Calibrate Tool" -msgstr "In curs de creere Excellon." - -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "" -#: flatcamTools/ToolCalibration.py:747 +#: flatcamTools/ToolCalibration.py:824 #, fuzzy #| msgid "There is no Excellon object loaded ..." msgid "There is no source FlatCAM object selected..." msgstr "Nici-un obiect tip Excellon nu este incărcat ..." -#: flatcamTools/ToolCalibration.py:768 +#: flatcamTools/ToolCalibration.py:845 #, fuzzy #| msgid "Click inside the desired polygon." msgid "Get First calibration point. Bottom Left..." msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." -#: flatcamTools/ToolCalibration.py:820 +#: flatcamTools/ToolCalibration.py:906 +#, fuzzy +#| msgid "Copy cancelled. No shape selected." +msgid "Cancelled by user request." +msgstr "Copiere anulată. Nici-o forma geometrică nu este selectată." + +#: flatcamTools/ToolCalibration.py:912 msgid "Get Second calibration point. Bottom Right..." msgstr "" -#: flatcamTools/ToolCalibration.py:824 +#: flatcamTools/ToolCalibration.py:916 #, fuzzy #| msgid "Click inside the desired polygon." msgid "Get Third calibration point. Top Left..." msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." -#: flatcamTools/ToolCalibration.py:828 +#: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." msgstr "" -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "" -#: flatcamTools/ToolCalibration.py:857 -msgid "Verification GCode for FlatCAM Calibrate Tool" +#: flatcamTools/ToolCalibration.py:955 +msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." msgstr "" -#: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 #, fuzzy #| msgid "There is no Box object loaded ..." msgid "There is no FlatCAM object selected..." @@ -13360,20 +13263,6 @@ 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:175 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" - -#: flatcamTools/ToolCopperThieving.py:197 -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 "" - #: flatcamTools/ToolCopperThieving.py:326 #, fuzzy #| msgid "Non-Copper Clearing" @@ -13480,10 +13369,8 @@ msgstr "Nu este nici-un obiect Gerber incărcat ..." #: flatcamTools/ToolCopperThieving.py:675 #: flatcamTools/ToolCopperThieving.py:1267 -#, fuzzy -#| msgid "geometry" msgid "Append geometry" -msgstr "geometria" +msgstr "Adăugați geometria" #: flatcamTools/ToolCopperThieving.py:719 #: flatcamTools/ToolCopperThieving.py:1300 @@ -13495,16 +13382,14 @@ msgstr "Salvează codul sursa Document ca fişier" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 -#, fuzzy -#| msgid "Drill Tool dia" msgid "Copper Thieving Tool done." -msgstr "Dia. Burghiu Găurire" +msgstr "Unealta Copper Thieving efectuata." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 -#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1155 -#: flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1156 +#: flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 #: flatcamTools/ToolSub.py:492 flatcamTools/ToolSub.py:507 @@ -13514,7 +13399,7 @@ msgid "Could not retrieve object" msgstr "Nu s-a putut incărca obiectul" #: flatcamTools/ToolCopperThieving.py:764 -#: flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "Faceți clic pe punctul de pornire al zonei." @@ -13525,7 +13410,7 @@ msgid "Click the end point of the filling area." msgstr "Faceți clic pe punctul final al zonei de pictat." #: flatcamTools/ToolCopperThieving.py:821 -#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 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 " @@ -13567,12 +13452,12 @@ msgid "Geometry not supported for bounding box" msgstr "Geometria nu este acceptată pentru decupaj" #: flatcamTools/ToolCopperThieving.py:1061 -#: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "Nici-un obiect disponibil." #: flatcamTools/ToolCopperThieving.py:1098 -#: flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "Tipul de obiect de referintă nu este acceptat." @@ -13600,10 +13485,8 @@ msgid "Generating Pattern Plating Mask done." msgstr "" #: flatcamTools/ToolCopperThieving.py:1543 -#, fuzzy -#| msgid "Drill Tool dia" msgid "Copper Thieving Tool exit." -msgstr "Dia. Burghiu Găurire" +msgstr "Unealta Copper Thieving terminata." #: flatcamTools/ToolCutOut.py:42 msgid "Cutout PCB" @@ -13623,16 +13506,12 @@ msgstr "" "numit >Obiect<." #: flatcamTools/ToolCutOut.py:91 flatcamTools/ToolCutOut.py:92 -#, fuzzy -#| msgid "Object to be painted." msgid "Object to be cutout" -msgstr "Obiect care trebuie pictat." +msgstr "Obiect care trebuie decupat" #: flatcamTools/ToolCutOut.py:214 -#, fuzzy -#| msgid "Convex Sh." msgid "Convex Shape" -msgstr "Formă Conv." +msgstr "Forma convexă" #: flatcamTools/ToolCutOut.py:228 msgid "A. Automatic Bridge Gaps" @@ -13800,8 +13679,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "Operatia de decupaj cu formă liberă s-a terminat." -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "Obiectul nu a fost gasit" @@ -13858,10 +13737,8 @@ msgid "2-Sided PCB" msgstr "2-fețe PCB" #: flatcamTools/ToolDblSided.py:58 -#, fuzzy -#| msgid "Geometry Obj to be mirrored." msgid "Gerber to be mirrored" -msgstr "Obiectul Geometrie care va fi oglindit." +msgstr "Gerber pentru oglindit" #: flatcamTools/ToolDblSided.py:60 flatcamTools/ToolDblSided.py:88 #: flatcamTools/ToolDblSided.py:118 @@ -13886,10 +13763,6 @@ msgstr "Obiectul Excellon care va fi oglindit." msgid "Geometry Obj to be mirrored." msgstr "Obiectul Geometrie care va fi oglindit." -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "Axa de ref.:" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "Referință Punct/Container" @@ -14126,10 +13999,21 @@ msgstr "Masoara: Click pe punctul de Start ..." msgid "MEASURING: Click on the Destination point ..." msgstr "Masoara: Click pe punctul Destinaţie..." -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "Masoara: Rrezultat D(x) = {d_x} | D(y) = {d_y} | Distanta = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +#, fuzzy +#| msgid "Geo Result" +msgid "Result" +msgstr "Rezultat Geo" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +#, fuzzy +#| msgid "Distance Tool" +msgid "Distance" +msgstr "Unealta Distanță" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -14188,11 +14072,11 @@ 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:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "Obiectele se intersectează sau ating la" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "A sărit la jumătatea punctului dintre cele două obiecte selectate" @@ -14288,10 +14172,8 @@ msgid "Done. All fiducials have been added." msgstr "" #: flatcamTools/ToolFiducials.py:872 -#, fuzzy -#| msgid "Drill Tool dia" msgid "Fiducials Tool exit." -msgstr "Dia. Burghiu Găurire" +msgstr "Unealta Fiducials terminate." #: flatcamTools/ToolFilm.py:42 msgid "Film PCB" @@ -14444,30 +14326,36 @@ msgstr "" "Nici-un obiect FlatCAM nu este selectat. Încarcă un obiect container și " "încearcă din nou." -#: flatcamTools/ToolFilm.py:680 +#: flatcamTools/ToolFilm.py:673 +#, fuzzy +#| msgid "No object selected." +msgid "No FlatCAM object selected." +msgstr "Nici-un obiect nu este selectat." + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Se generează Film-ul ..." -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 #, fuzzy #| msgid "Export SVG positive" msgid "Export positive film" msgstr "Exporta SVG pozitiv" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 #, fuzzy #| msgid "Export SVG positive cancelled." msgid "Export positive film cancelled." msgstr "Exportul unui fişier SVG pozitiv este anulat." -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 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:784 +#: flatcamTools/ToolFilm.py:794 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14475,7 +14363,7 @@ 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:796 +#: 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." @@ -14483,7 +14371,7 @@ 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:814 +#: flatcamTools/ToolFilm.py:824 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14491,30 +14379,30 @@ 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:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 #, fuzzy #| msgid "Export SVG negative" msgid "Export negative film" msgstr "Exporta SVG negativ" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 #, fuzzy #| msgid "Export SVG negative cancelled." msgid "Export negative film cancelled." msgstr "Exportul unui fişier SVG negativ este anulat." -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "Nu exista container. Se foloseşte in schimb" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 #, fuzzy #| msgid "DXF file exported to" msgid "Film file exported to" msgstr "Fişierul DXF exportat in" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "Filmul se generează ... Aşteaptă." @@ -14837,116 +14725,116 @@ msgstr "" msgid "Generate Geometry" msgstr "Genereza Geometrie" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "O Noua Unealtă" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 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/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "" "Adăugarea unei unelte noi este anulată. Unealta există deja in Tabela de " "Unelte." -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "O noua unealtă a fost adăugată in Tabela de Unelte." -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "O unealtă din Tabela de Unelte a fost editata." -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" "Editare eșuată. Noua valoare pt diametrul uneltei este deja in Tabela de " "Unelte." -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "Ștergere eșuată. Selectează o unealtă pt ștergere." -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "Au fost șterse unelte din Tabela de Unelte." -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 msgid "Wrong Tool Dia value format entered, use a number." msgstr "Diametrul uneltei este in format gresit, foloseşte un număr Real." -#: flatcamTools/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "Nu sunt unelte selectate in Tabela de Unelte." -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "Faceți clic pe punctul final al zonei de pictat." -#: flatcamTools/ToolNonCopperClear.py:1413 -#: flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 +#: flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "Curățare Non-Cupru ..." -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "Unealta NCC a pornit. Se citesc parametrii." -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Unealta NCC. Se pregătesc poligoanele non-cupru." -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 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/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "Unealta NCC. Calculează aria 'goală'." -#: flatcamTools/ToolNonCopperClear.py:1629 -#: flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 -#: flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 -#: flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 +#: flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 +#: flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 +#: flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "Buferarea terminată" -#: flatcamTools/ToolNonCopperClear.py:1747 -#: flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 +#: flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "Obiectul selectat nu este potrivit pentru curățarea cuprului." -#: flatcamTools/ToolNonCopperClear.py:1752 -#: flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 +#: flatcamTools/ToolNonCopperClear.py:2109 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/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Unealta NCC. S-a terminat calculul suprafetei 'goale'." -#: flatcamTools/ToolNonCopperClear.py:1772 -#: flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 +#: flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "Unealta NCC cu diametrul uneltei = " -#: flatcamTools/ToolNonCopperClear.py:1775 -#: flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 +#: flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "a inceput." -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14958,25 +14846,25 @@ msgstr "" "pictată.\n" "Schimbați parametrii Paint și încercați din nou." -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "Unealta NCC curătare toate efectuată." -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 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/ToolNonCopperClear.py:1943 -#: flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 +#: flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "unelte" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "Unealta NCC curătare cu prelucrare tip 'rest' efectuată." -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -14984,7 +14872,7 @@ msgstr "" "Unealta NCC curătare toate cu prelucrare tip 'rest' efectuată dar izolatia " "este intreruptă pentru" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -15291,30 +15179,30 @@ msgstr "" "- „Obiect de referință” - va face o curățare fără cupru în zona specificată " "de un alt obiect." -#: flatcamTools/ToolPaint.py:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "Unealta Paint. Se citesc parametrii." -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "Nu s-a putut incărca obiectul: %s" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "Nu se poate face 'pictare' pe geometrii MultiGeo" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 #, fuzzy #| msgid "Click on target point." msgid "Click on a polygon to paint it." msgstr "Click pe punctul tinta." -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Faceți clic pe punctul de pornire al zonei de pictat." -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15323,7 +15211,7 @@ msgstr "" "Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " "dreapta pentru a termina." -#: flatcamTools/ToolPaint.py:1138 +#: flatcamTools/ToolPaint.py:1140 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15332,39 +15220,39 @@ msgstr "" "Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " "dreapta pentru a termina." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "Unealta Paint." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "Taskul de pictare normal a unui polygon a inceput." -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "Crează o geometrie de tipul Bufer..." -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "Nu s-a gasit nici-un poligon." -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "Se 'pictează' un poligon..." -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "Geometria nu a fost posibil să fie 'pictată' complet" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -15372,9 +15260,9 @@ 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:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15386,36 +15274,36 @@ msgstr "" "geometrice.\n" "Schimbă parametrii de 'pictare' și încearcă din nou." -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "Pictarea unui polygon efectuată." -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "Paint pt poligon a inceput ..." -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "Se 'pictează' poligoane..." -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "Unealta Paint. Taskul de pictare a tuturor poligoanelor a inceput." -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "Pictand cu o unealtă cu diametrul = " -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "a inceput" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" @@ -15423,35 +15311,35 @@ msgstr "" "Nu s-a efectuat op. 'Paint' pt toate poligoanele. Incearcă o combinaţie " "diferită de parametri. Sau încearcă o alta metoda de 'pictat'" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "Pictarea Tuturor poligoanelor efectuată." -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "" "Taskul de pictare prin prelucrare 'rest' a tuturor poligoanelor a inceput." -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "'Paint' pentru toate poligoanele cu strategia Rest a fost efectuată." -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "Taskul de pictare normal a unei arii a inceput." -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "Paint pt o zona efectuata." -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "" "Taskul de pictare a unei arii cu strategia de masinare 'rest' a inceput." -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "" "Unealta Paint. Taskul de pictare a unei arii cu strategia de masinare 'rest' " @@ -15846,22 +15734,16 @@ msgid "Drills number" msgstr "Număr de worker's" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 -#, fuzzy -#| msgid "tool number" msgid "Slots number" -msgstr "numărul uneltei" +msgstr "Numărul de sloturi" #: flatcamTools/ToolProperties.py:404 -#, fuzzy -#| msgid "tool number" msgid "Drills total number:" -msgstr "numărul uneltei" +msgstr "Număr total de gauri:" #: flatcamTools/ToolProperties.py:405 -#, fuzzy -#| msgid "tool number" msgid "Slots total number:" -msgstr "numărul uneltei" +msgstr "Număr total de sloturi:" #: flatcamTools/ToolProperties.py:411 flatcamTools/ToolProperties.py:426 #: flatcamTools/ToolProperties.py:429 flatcamTools/ToolProperties.py:432 @@ -15894,10 +15776,8 @@ msgid "Data" msgstr "Date unealtă" #: flatcamTools/ToolProperties.py:468 -#, fuzzy -#| msgid "depth where to cut" msgid "Depth of Cut" -msgstr "adâncimea de tăiere" +msgstr "Adâncimea de Tăiere" #: flatcamTools/ToolProperties.py:480 #, fuzzy @@ -15906,10 +15786,8 @@ msgid "Clearance Height" msgstr "Toleranta" #: flatcamTools/ToolProperties.py:492 -#, fuzzy -#| msgid "Feedrate:" msgid "Feedrate" -msgstr "Feedrate:" +msgstr "Feedrate" #: flatcamTools/ToolProperties.py:512 msgid "Routing time" @@ -16005,10 +15883,8 @@ msgstr "Generează un obiect CNCJob." #: flatcamTools/ToolQRCode.py:413 flatcamTools/ToolQRCode.py:748 #: flatcamTools/ToolQRCode.py:797 -#, fuzzy -#| msgid "Cancelled. There is no Tool/Drill selected" msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Anulat. Nu este selectată nici-o unealtă sau op. de găurire" +msgstr "Anulat. Nu există date QRCode în caseta de text." #: flatcamTools/ToolQRCode.py:432 #, fuzzy @@ -16033,10 +15909,8 @@ msgid "Export PNG" msgstr "Exporta SVG" #: flatcamTools/ToolQRCode.py:789 -#, fuzzy -#| msgid "Export PNG cancelled." msgid " Export PNG cancelled." -msgstr "Exportul imagine PNG este anulat." +msgstr " Exportul PNG a fost anulat." #: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" @@ -16521,43 +16395,43 @@ msgstr "" msgid "Generating Solder Paste dispensing geometry..." msgstr "Se generează Geometria de dispensare a pastei de fludor ..." -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "Nu există obiect Geometrie disponibil." -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 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:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "ToolSolderPaste CNCjob a fost creat" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 #, fuzzy #| msgid "Code Editor" msgid "SP GCode Editor" msgstr "Editor Cod" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 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:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "Nu există cod GCode in acest obiect" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "Exporta GCode ..." -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "Fişierul GCode pt dispensare pastă de fludor este salvat in" @@ -16649,10 +16523,8 @@ msgid "No Target object loaded." msgstr "Nu este incărcat un obiect Tintă." #: flatcamTools/ToolSub.py:281 -#, fuzzy -#| msgid "Adding geometry for aperture" msgid "Loading geometry from Gerber objects." -msgstr "Se adaugă geometria pentru apertura" +msgstr "Se Încarcă geometria din obiectele Gerber." #: flatcamTools/ToolSub.py:293 flatcamTools/ToolSub.py:498 msgid "No Subtractor object loaded." @@ -16870,16 +16742,16 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds executata." -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "Asteptăm -box ." -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "Nu s-a putut incărca obiectul" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." @@ -16888,11 +16760,11 @@ msgstr "" "nici unul nu a fost setat la 1.\n" "Curatarea de cupru a eșuat." -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "Asteptam -x si -y ." -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." @@ -16923,6 +16795,130 @@ msgstr "" "Nici-un nume de Geometrie in argumente. Furnizați un nume și încercați din " "nou." +#~ 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 convexă a carenei." + +#~ 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." + +#~ msgid "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. I.e.: M2 (End of program)" +#~ msgstr "" +#~ "Introduceți aici toate comenzile Codului G pe care doriți să le adăugați " +#~ "la fișierul generat. I.e .: M2 (sfârșitul programului)" + +#, fuzzy +#~| 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." +#~ msgid "" +#~ "Type here any G-Code commands you would like to be executed when " +#~ "Toolchange event is encountered. This will constitute a Custom Toolchange " +#~ "GCode, or a Toolchange Macro. 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\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." + +#, fuzzy, python-format +#~| msgid "" +#~| "How much (fraction) of the tool width to overlap each tool pass.\n" +#~| "Example:\n" +#~| "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~| "\n" +#~| "Adjust the value starting with lower values\n" +#~| "and increasing it if areas that should be painted are still \n" +#~| "not painted.\n" +#~| "Lower values = faster processing, faster execution on PCB.\n" +#~| "Higher values = slow processing and slow execution on CNC\n" +#~| "due of too many paths." +#~ msgid "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." +#~ msgstr "" +#~ "Cat de mult (fracţie) din diametrul uneltei să se suprapună la fiecare " +#~ "trecere a uneltei.\n" +#~ "Exemplu:\n" +#~ "O valoare aici de 0.25 inseamna 25%% din diametrul uneltei de mai sus.\n" +#~ "\n" +#~ "Ajustează valoarea incepand de la valori mici și pe urma creste daca " +#~ "ariile care ar trebui\n" +#~ " >pictate< inca nu sunt procesate.\n" +#~ "Valori scazute = procesare rapida,execuţie rapida a PCB-ului.\n" +#~ "Valori mari= procesare lenta cat și o execuţie la fel de lenta a PCB-" +#~ "ului,\n" +#~ "datorita numărului mai mare de treceri-tăiere." + +#, fuzzy +#~| msgid "Creating Excellon." +#~ msgid "Calibrate Tool" +#~ msgstr "In curs de creere Excellon." + +#, python-brace-format +#~ msgid "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" +#~ msgstr "" +#~ "[selected]{kind} creat/selectat: {name}" + +#, python-brace-format +#~ msgid "[selected]{name} selected" +#~ msgstr "[selected]{name} selectat" + +#, python-brace-format +#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#~ msgstr "Masoara: Rrezultat D(x) = {d_x} | D(y) = {d_y} | Distanta = {d_z}" + +#, python-brace-format +#~ msgid "{l_save}/Project_{date}" +#~ msgstr "{l_save}/Proiect_{date}" + +#, python-brace-format +#~| msgid "{l_save}/Project_{date}" +#~ msgid "{l_save}/{obj_name}_{date}" +#~ msgstr "{l_save}/{obj_name}_{date}" + +#~ msgid "Paint Area" +#~ msgstr "Unealta Paint" + +#~ msgid "Axis Ref:" +#~ msgstr "Axa de ref.:" + #~ msgid "" #~ "#\n" #~ "# CREATE A NEW FLATCAM TCL SCRIPT\n" From 1517686ced167cf89462fe6d5dbd517560b832bc Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 14 Dec 2019 00:04:52 +0200 Subject: [PATCH 33/36] - more strings updated; finished the Romanian translation update --- README.md | 1 + flatcamGUI/PreferencesUI.py | 6 +- flatcamParsers/ParseHPGL2.py | 2 +- flatcamTools/ToolCalibration.py | 8 +- flatcamTools/ToolCopperThieving.py | 2 +- flatcamTools/ToolFiducials.py | 2 +- locale/ro/LC_MESSAGES/strings.mo | Bin 335812 -> 358898 bytes locale/ro/LC_MESSAGES/strings.po | 739 +++++++++++------------------ 8 files changed, 297 insertions(+), 463 deletions(-) diff --git a/README.md b/README.md index 5b0fbb2a..8d2be9d8 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing. - HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. - removed the .plt extension from Gcode extensions - some strings updated; update on the Romanian translate +- more strings updated; finished the Romanian translation update 12.12.2019 diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index 532884f0..77dd2479 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -6123,7 +6123,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): ], orientation='vertical', stretch=False) self.reference_label = QtWidgets.QLabel(_("Reference:")) self.reference_label.setToolTip( - _("- 'Itself' - the copper Thieving extent is based on the object that is copper cleared.\n" + _("- '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.") ) @@ -6364,7 +6364,7 @@ class Tools2FiducialsPrefGroupUI(OptionsGroupUI): ], stretch=False) self.mode_label = QtWidgets.QLabel(_("Mode:")) self.mode_label.setToolTip( - _("- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n " + _("- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n" "- 'Manual' - manual placement of fiducials.") ) grid_lay.addWidget(self.mode_label, 3, 0) @@ -6379,7 +6379,7 @@ class Tools2FiducialsPrefGroupUI(OptionsGroupUI): self.pos_label = QtWidgets.QLabel('%s:' % _("Second fiducial")) self.pos_label.setToolTip( _("The position for the second fiducial.\n" - "- 'Up' - the order is: bottom-left, top-left, top-right.\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.") ) diff --git a/flatcamParsers/ParseHPGL2.py b/flatcamParsers/ParseHPGL2.py index 05326893..36d786e5 100644 --- a/flatcamParsers/ParseHPGL2.py +++ b/flatcamParsers/ParseHPGL2.py @@ -401,7 +401,7 @@ class HPGL2: except Exception as err: ex_type, ex, tb = sys.exc_info() traceback.print_tb(tb) - # print traceback.format_exc() + print(traceback.format_exc()) log.error("HPGL2 PARSING FAILED. Line %d: %s" % (line_num, gline)) diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index 29718279..ab8576ff 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -172,9 +172,9 @@ class ToolCalibration(FlatCAMTool): step_1 = QtWidgets.QLabel('%s' % _("STEP 1: Acquire Calibration Points")) step_1.setToolTip( - _("Pick four points by clicking inside the drill holes.\n" + _("Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" - "(as much as possible) corners of the Excellon object.") + "(as much as possible) corners of the object.") ) grid_lay.addWidget(step_1, 10, 0, 1, 3) @@ -909,11 +909,11 @@ class ToolCalibration(FlatCAMTool): if len(self.click_points) == 1: self.bottom_left_coordx_tgt.set_value(self.click_points[0][0]) self.bottom_left_coordy_tgt.set_value(self.click_points[0][1]) - self.app.inform.emit(_("Get Second calibration point. Bottom Right...")) + self.app.inform.emit(_("Get Second calibration point. Bottom Right (Top Left)...")) elif len(self.click_points) == 2: self.bottom_right_coordx_tgt.set_value(self.click_points[1][0]) self.bottom_right_coordy_tgt.set_value(self.click_points[1][1]) - self.app.inform.emit(_("Get Third calibration point. Top Left...")) + self.app.inform.emit(_("Get Third calibration point. Top Left (Bottom Right)...")) elif len(self.click_points) == 3: self.top_left_coordx_tgt.set_value(self.click_points[2][0]) self.top_left_coordy_tgt.set_value(self.click_points[2][1]) diff --git a/flatcamTools/ToolCopperThieving.py b/flatcamTools/ToolCopperThieving.py index 275931eb..ba6ce770 100644 --- a/flatcamTools/ToolCopperThieving.py +++ b/flatcamTools/ToolCopperThieving.py @@ -128,7 +128,7 @@ class ToolCopperThieving(FlatCAMTool): ], orientation='vertical', stretch=False) self.reference_label = QtWidgets.QLabel(_("Reference:")) self.reference_label.setToolTip( - _("- 'Itself' - the copper thieving extent is based on the object that is copper cleared.\n" + _("- '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.") ) diff --git a/flatcamTools/ToolFiducials.py b/flatcamTools/ToolFiducials.py index 4eaeb329..6b4d1d85 100644 --- a/flatcamTools/ToolFiducials.py +++ b/flatcamTools/ToolFiducials.py @@ -203,7 +203,7 @@ class ToolFiducials(FlatCAMTool): self.pos_label = QtWidgets.QLabel('%s:' % _("Second fiducial")) self.pos_label.setToolTip( _("The position for the second fiducial.\n" - "- 'Up' - the order is: bottom-left, top-left, top-right.\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.") ) diff --git a/locale/ro/LC_MESSAGES/strings.mo b/locale/ro/LC_MESSAGES/strings.mo index 1db845291450cc8f27d6525b67a65cd81e11cf20..f63531ca1088356815312c420e81b2b3fdb81ec6 100644 GIT binary patch delta 80285 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 diff --git a/locale/ro/LC_MESSAGES/strings.po b/locale/ro/LC_MESSAGES/strings.po index 045b6052..04fe866f 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: 2019-12-13 17:59+0200\n" -"PO-Revision-Date: 2019-12-13 18:04+0200\n" +"POT-Creation-Date: 2019-12-13 21:18+0200\n" +"PO-Revision-Date: 2019-12-14 00:03+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: ro\n" @@ -12114,8 +12114,7 @@ msgstr "Referinţă:" #: flatcamGUI/PreferencesUI.py:6126 msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is " -"copper cleared.\n" +"- '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 " @@ -12259,19 +12258,17 @@ 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/PreferencesUI.py:6316 -#, fuzzy -#| msgid "Film Tool Options" msgid "Fiducials Tool Options" -msgstr "Opțiuni Unealta Film" +msgstr "Opțiuni Unealta Fiducials" #: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 -#, fuzzy -#| msgid "Diameter for the new tool." msgid "Parameters used for this tool." -msgstr "Diametrul pt noua unealtă." +msgstr "Parametrii folosiți pentru aceasta unealta." #: flatcamGUI/PreferencesUI.py:6334 flatcamTools/ToolFiducials.py:158 msgid "" @@ -12279,61 +12276,67 @@ msgid "" "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/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" -msgstr "" +msgstr "Auto" #: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 -#, fuzzy -#| msgid "Manual Geo" msgid "Manual" -msgstr "Geo manual" +msgstr "Manual" #: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" -msgstr "" +msgstr "Mod:" -#: flatcamGUI/PreferencesUI.py:6367 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." msgstr "" +"- „Auto” - plasarea automată a fiducial în colțurile casetei de delimitare.\n" +"- „Manual” - plasarea manuală a fiducial." #: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" -msgstr "" +msgstr "Sus" #: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" -msgstr "" +msgstr "Jos" #: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" -msgstr "" +msgstr "Al 2-lea Fiducial" #: flatcamGUI/PreferencesUI.py:6381 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" +"- '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/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" -msgstr "" +msgstr "Cruce" #: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" -msgstr "" +msgstr "Şah" #: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 -#, fuzzy -#| msgid "Film Type" msgid "Fiducial Type" -msgstr "Tip film" +msgstr "Tip Fiducial" #: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" @@ -12342,22 +12345,22 @@ msgid "" "- '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/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" -msgstr "" +msgstr "Grosimea liniei" #: flatcamGUI/PreferencesUI.py:6432 -#, fuzzy -#| msgid "Calculators Tool Options" msgid "Calibration Tool Options" -msgstr "Opțiuni Unealta Calculatoare" +msgstr "Opțiuni Unealta Calibrare" #: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 -#, fuzzy -#| msgid "Source" msgid "Source Type" -msgstr "Sursă" +msgstr "Tipul sursei" #: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" @@ -12366,46 +12369,43 @@ msgid "" "- 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/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 -#, fuzzy -#| msgid "FreeForm" msgid "Free" -msgstr "Formă liberă" +msgstr "Liber" #: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 -#, fuzzy -#| msgid "" -#| "The height (Z) for travel between pads\n" -#| "(without dispensing solder paste)." msgid "Height (Z) for travelling between the points." -msgstr "" -"Înălţimea (Z) când se face deplasare între pad-uri.\n" -"(fără dispensare de pastă de fludor)." +msgstr "Înălțime (Z) pentru deplasarea între puncte." #: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 -#, fuzzy -#| msgid "Gerber Specification" msgid "Verification Z" -msgstr "Specificatii Gerber" +msgstr "Z Verificare" #: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." -msgstr "" +msgstr "Înălțimea (Z) pentru verificarea punctului." #: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" -msgstr "" +msgstr "Realizare Zero Z" #: flatcamGUI/PreferencesUI.py:6496 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/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." -msgstr "" +msgstr "Înălțime (Z) pentru montarea sondei de verificare." #: flatcamGUI/PreferencesUI.py:6519 flatcamTools/ToolCalibration.py:127 msgid "" @@ -12413,10 +12413,11 @@ msgid "" "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/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 -#, fuzzy -#| msgid "Second object point" msgid "Second point" msgstr "Al doilea punct" @@ -12426,16 +12427,15 @@ msgid "" "- 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/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 -#, fuzzy -#| msgid "Top Left" msgid "Top-Left" -msgstr "Stânga sus" +msgstr "Stânga-sus" #: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 -#, fuzzy -#| msgid "Bottom Right" msgid "Bottom-Right" msgstr "Dreapta-jos" @@ -12697,28 +12697,20 @@ msgid "Gerber Rotate done." msgstr "Rotatia Gerber efectuată." #: flatcamParsers/ParseHPGL2.py:176 -#, fuzzy -#| msgid "Gerber processing. Parsing" msgid "HPGL2 processing. Parsing" -msgstr "Prelucrare Gerber. Analizare" +msgstr "Prelucrare HPGL2. Analizare" #: flatcamParsers/ParseHPGL2.py:408 -#, fuzzy -#| msgid "Plot Line" msgid "HPGL2 Line" -msgstr "Culoare contur" +msgstr "Linie HPGL2" #: flatcamParsers/ParseHPGL2.py:408 -#, fuzzy -#| msgid "Gerber Line Content" msgid "HPGL2 Line Content" -msgstr "Continut linie Gerber" +msgstr "Continut linie HPGL2" #: flatcamParsers/ParseHPGL2.py:409 -#, fuzzy -#| msgid "Gerber Parser ERROR" msgid "HPGL2 Parser ERROR" -msgstr "Eroare in parserul Gerber" +msgstr "Eroare in parserul HPGL2" #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" @@ -12812,25 +12804,26 @@ msgid "Calc. Tool" msgstr "Unealta Calc" #: flatcamTools/ToolCalibration.py:67 -#, fuzzy -#| msgid "Slot Parameters" msgid "GCode Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametrii GCode" #: flatcamTools/ToolCalibration.py:69 msgid "Parameters used when creating the GCode in this tool." -msgstr "" +msgstr "Parametrii folosiți la crearea codului GC pentru aceasta unealta." #: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" -msgstr "" +msgstr "PASUL 1: Obțineți punctele de calibrare" #: flatcamTools/ToolCalibration.py:175 msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(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/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 @@ -12843,21 +12836,21 @@ msgid "Source object selection" msgstr "Selectarea obiectului sursă" #: flatcamTools/ToolCalibration.py:213 -#, fuzzy -#| msgid "The FlatCAM object to be used as non copper clearing reference." msgid "FlatCAM Object to be used as a source for reference points." msgstr "" -"Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." +"Obiect FlatCAM care trebuie utilizat ca sursă pentru punctele de referință." #: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" -msgstr "" +msgstr "Puncte de calibrare" #: flatcamTools/ToolCalibration.py:221 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:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 @@ -12866,67 +12859,47 @@ msgstr "Tintă" #: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" -msgstr "" +msgstr "Delta găsit" #: flatcamTools/ToolCalibration.py:249 -#, fuzzy -#| msgid "Bottom Left" msgid "Bot Left X" -msgstr "Stânga jos" +msgstr "Stânga jos X" #: flatcamTools/ToolCalibration.py:258 -#, fuzzy -#| msgid "Bottom Left" msgid "Bot Left Y" -msgstr "Stânga jos" +msgstr "Stânga jos Y" #: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 -#, fuzzy -#| msgid "Origin set" msgid "Origin" -msgstr "Originea a fost setată" +msgstr "Originea" #: flatcamTools/ToolCalibration.py:278 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right X" -msgstr "Dreapta-jos" +msgstr "Dreapta-jos X" #: flatcamTools/ToolCalibration.py:288 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right Y" -msgstr "Dreapta-jos" +msgstr "Dreapta-jos Y" #: flatcamTools/ToolCalibration.py:303 -#, fuzzy -#| msgid "Top Left" msgid "Top Left X" -msgstr "Stânga sus" +msgstr "Stânga sus X" #: flatcamTools/ToolCalibration.py:312 -#, fuzzy -#| msgid "Top Left" msgid "Top Left Y" -msgstr "Stânga sus" +msgstr "Stânga sus Y" #: flatcamTools/ToolCalibration.py:327 -#, fuzzy -#| msgid "Top right" msgid "Top Right X" -msgstr "Dreapta-sus" +msgstr "Dreapta-sus X" #: flatcamTools/ToolCalibration.py:337 -#, fuzzy -#| msgid "Top right" msgid "Top Right Y" -msgstr "Dreapta-sus" +msgstr "Dreapta-sus Y" #: flatcamTools/ToolCalibration.py:370 -#, fuzzy -#| msgid "Ref. Point" msgid "Get Points" -msgstr "Pt. Ref" +msgstr "Obține puncte" #: flatcamTools/ToolCalibration.py:372 msgid "" @@ -12935,12 +12908,14 @@ msgid "" "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:393 -#, fuzzy -#| msgid "Generate GCode" msgid "STEP 2: Verification GCode" -msgstr "Genereaa GCode" +msgstr "PASUL 2: GCode de verificare" #: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" @@ -12952,16 +12927,23 @@ msgid "" "- 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:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" -msgstr "Genereaa GCode" +msgstr "Generează GCode" #: flatcamTools/ToolCalibration.py:432 -#, fuzzy -#| msgid "Film Adjustments" msgid "STEP 3: Adjustments" -msgstr "Reglarea filmelor" +msgstr "PASUL 3: Reglaje" #: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 msgid "" @@ -12969,36 +12951,33 @@ msgid "" "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:441 -#, fuzzy -#| msgid "Calculators" msgid "Calculate Factors" -msgstr "Calculatoare" +msgstr "Calculați factorii" #: flatcamTools/ToolCalibration.py:463 -#, fuzzy -#| msgid "Generate GCode" msgid "STEP 4: Adjusted GCode" -msgstr "Genereaa GCode" +msgstr "PASUL 4: GCode ajustat" #: flatcamTools/ToolCalibration.py:465 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:470 -#, fuzzy -#| msgid "Scale Factor:" msgid "Scale Factor X:" -msgstr "Factor scalare:" +msgstr "Factor scalare X:" #: flatcamTools/ToolCalibration.py:482 -#, fuzzy -#| msgid "Scale Factor:" msgid "Scale Factor Y:" -msgstr "Factor scalare:" +msgstr "Factor scalare Y:" #: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" @@ -13006,19 +12985,15 @@ msgstr "Aplicați factorii de scalare" #: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." -msgstr "" +msgstr "Aplicați factorii de Scalare asupra punctelor de calibrare." #: flatcamTools/ToolCalibration.py:506 -#, fuzzy -#| msgid "Angle X:" msgid "Skew Angle X:" -msgstr "Unghi X:" +msgstr "Unghi X Deformare:" #: flatcamTools/ToolCalibration.py:519 -#, fuzzy -#| msgid "Angle Y:" msgid "Skew Angle Y:" -msgstr "Unghi Y:" +msgstr "Unghi Y Deformare:" #: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" @@ -13026,13 +13001,11 @@ msgstr "Aplicați factorii de deformare" #: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." -msgstr "" +msgstr "Aplicați factorii de Deformare asupra punctelor de calibrare." #: flatcamTools/ToolCalibration.py:603 -#, fuzzy -#| msgid "Generate GCode" msgid "Generate Adjusted GCode" -msgstr "Genereaa GCode" +msgstr "Generați GCode ajustat" #: flatcamTools/ToolCalibration.py:605 msgid "" @@ -13041,40 +13014,38 @@ msgid "" "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:626 msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "" +msgstr "PASUL 5: Calibrați obiectele FlatCAM" #: flatcamTools/ToolCalibration.py:628 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:641 -#, fuzzy -#| msgid "Edit Object\tE" msgid "Adjusted object type" -msgstr "Editare Obiect\tE" +msgstr "Tipul obiectului ajustat" #: flatcamTools/ToolCalibration.py:643 -#, fuzzy -#| msgid "Geometry Obj to be mirrored." msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Obiectul Geometrie care va fi oglindit." +msgstr "Tipul obiectului FlatCAM care trebuie ajustat." #: flatcamTools/ToolCalibration.py:654 -#, fuzzy -#| msgid "Edit Object\tE" msgid "Adjusted object selection" -msgstr "Editare Obiect\tE" +msgstr "Selectarea obiectului ajustat" #: flatcamTools/ToolCalibration.py:656 -#, fuzzy -#| msgid "Excellon Object to be mirrored." msgid "The FlatCAM Object to be adjusted." -msgstr "Obiectul Excellon care va fi oglindit." +msgstr "Obiectul FlatCAM care trebuie ajustat." #: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" @@ -13085,6 +13056,8 @@ 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:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 @@ -13093,10 +13066,8 @@ msgstr "" #: flatcamTools/ToolPaint.py:378 flatcamTools/ToolPanelize.py:266 #: flatcamTools/ToolQRCode.py:314 flatcamTools/ToolRulesCheck.py:507 #: flatcamTools/ToolSolderPaste.py:470 flatcamTools/ToolSub.py:170 -#, fuzzy -#| msgid "Rules Tool" msgid "Reset Tool" -msgstr "Unalta Verif. Reguli" +msgstr "Resetați Unealta" #: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 @@ -13105,78 +13076,62 @@ msgstr "Unalta Verif. Reguli" #: flatcamTools/ToolPaint.py:380 flatcamTools/ToolPanelize.py:268 #: flatcamTools/ToolQRCode.py:316 flatcamTools/ToolRulesCheck.py:509 #: flatcamTools/ToolSolderPaste.py:472 flatcamTools/ToolSub.py:172 -#, fuzzy -#| msgid "" -#| "Select tools.\n" -#| "Modify parameters." msgid "Will reset the tool parameters." -msgstr "" -"Selectează unelte.\n" -"Modifica parametri." +msgstr "Va reseta parametrii uneltei." #: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" -msgstr "" +msgstr "Unealtă initializată" #: flatcamTools/ToolCalibration.py:824 -#, fuzzy -#| msgid "There is no Excellon object loaded ..." msgid "There is no source FlatCAM object selected..." -msgstr "Nici-un obiect tip Excellon nu este incărcat ..." +msgstr "Nu a fost selectat niciun obiect FlatCAM sursă ..." #: flatcamTools/ToolCalibration.py:845 -#, fuzzy -#| msgid "Click inside the desired polygon." msgid "Get First calibration point. Bottom Left..." -msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." +msgstr "Obțineți primul punct de calibrare. Stânga jos..." #: flatcamTools/ToolCalibration.py:906 -#, fuzzy -#| msgid "Copy cancelled. No shape selected." msgid "Cancelled by user request." -msgstr "Copiere anulată. Nici-o forma geometrică nu este selectată." +msgstr "Anulat prin solicitarea utilizatorului." #: flatcamTools/ToolCalibration.py:912 -msgid "Get Second calibration point. Bottom Right..." +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:916 -#, fuzzy -#| msgid "Click inside the desired polygon." -msgid "Get Third calibration point. Top Left..." -msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." +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:920 msgid "Get Forth calibration point. Top Right..." -msgstr "" +msgstr "Obțineți punctul de calibrare Forth. Sus în dreapta..." #: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." -msgstr "" +msgstr "Terminat. Toate cele patru puncte au fost obținute." #: flatcamTools/ToolCalibration.py:955 msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "" +msgstr "GCode de verificare pentru Unealta FlatCAM de Calibrare" #: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" -msgstr "" +msgstr "Gcode Viewer" #: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." -msgstr "" +msgstr "Anulat. Patru puncte sunt necesare pentru generarea GCode." #: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 -#, fuzzy -#| msgid "There is no Box object loaded ..." msgid "There is no FlatCAM object selected..." -msgstr "Nu este incărcat nici-un obiect container ..." +msgstr "Nu a fost selectat niciun obiect FlatCAM ..." #: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:260 -#, fuzzy -#| msgid "Gerber objects for which to check rules." msgid "Gerber Object to which will be added a copper thieving." -msgstr "Obiecte Gerber pentru care trebuie verificate regulile." +msgstr "Obiect Gerber căruia i se va adăuga Copper Thieving." #: flatcamTools/ToolCopperThieving.py:98 msgid "" @@ -13184,34 +13139,23 @@ msgid "" "(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 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is " -"copper cleared.\n" +"- '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” - suprafața de curățare a cuprului\n" -"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 care va fi pictată.\n" -"Menținerea unei taste de modificare apăsată (CTRL sau SHIFT) va permite " -"adăugarea mai multor zone.\n" -"- „Obiect de referință” - va face o curățare fără cupru în zona\n" -"specificată de un alt obiect." +"- „Î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/ToolNonCopperClear.py:451 flatcamTools/ToolPaint.py:332 @@ -13219,38 +13163,28 @@ msgid "Ref. Type" msgstr "Tip Ref" #: flatcamTools/ToolCopperThieving.py:140 -#, fuzzy -#| msgid "" -#| "The type of FlatCAM object to be used as non copper clearing reference.\n" -#| "It can be Gerber, Excellon or Geometry." msgid "" "The type of FlatCAM object to be used as copper thieving 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." +"Tipul obiectului FlatCAM care va fi utilizat ca referință la Copper " +"Thieving.\n" +"Poate fi Gerber, Excellon sau Geometrie." #: flatcamTools/ToolCopperThieving.py:144 flatcamTools/ToolDblSided.py:213 #: flatcamTools/ToolNonCopperClear.py:457 flatcamTools/ToolPaint.py:338 -#, fuzzy -#| msgid "Reference Object" msgid "Reference Gerber" -msgstr "Obiect Ref" +msgstr "Referință Gerber" #: flatcamTools/ToolCopperThieving.py:145 flatcamTools/ToolDblSided.py:214 #: flatcamTools/ToolNonCopperClear.py:458 flatcamTools/ToolPaint.py:339 -#, fuzzy -#| msgid "Open Excellon" msgid "Reference Excellon" -msgstr "Încarcă Excellon" +msgstr "Referință Excellon" #: flatcamTools/ToolCopperThieving.py:146 flatcamTools/ToolDblSided.py:215 #: flatcamTools/ToolNonCopperClear.py:459 flatcamTools/ToolPaint.py:340 -#, fuzzy -#| msgid "Generate Geometry" msgid "Reference Geometry" -msgstr "Genereza Geometrie" +msgstr "Referință Geometrie" #: flatcamTools/ToolCopperThieving.py:151 #: flatcamTools/ToolNonCopperClear.py:462 flatcamTools/ToolPaint.py:343 @@ -13264,22 +13198,20 @@ msgstr "" "Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." #: flatcamTools/ToolCopperThieving.py:326 -#, fuzzy -#| msgid "Non-Copper Clearing" msgid "Insert Copper thieving" -msgstr "Curățăre Non-Cu" +msgstr "Inserați Copper Thieving" #: flatcamTools/ToolCopperThieving.py:328 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:387 -#, fuzzy -#| msgid "Generate GCode" msgid "Insert Robber Bar" -msgstr "Genereaa GCode" +msgstr "Inserați Rober Bar" #: flatcamTools/ToolCopperThieving.py:389 msgid "" @@ -13288,12 +13220,14 @@ msgid "" "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:413 -#, fuzzy -#| msgid "Delete objects" msgid "Select Soldermask object" -msgstr "Șterge obiectele" +msgstr "Selectați obiectul Soldermask" #: flatcamTools/ToolCopperThieving.py:415 msgid "" @@ -13301,10 +13235,13 @@ msgid "" "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:443 msgid "Plated area" -msgstr "" +msgstr "Zona placată" #: flatcamTools/ToolCopperThieving.py:445 msgid "" @@ -13316,20 +13253,26 @@ msgid "" "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:456 msgid "mm" -msgstr "" +msgstr "mm" #: flatcamTools/ToolCopperThieving.py:458 -#, fuzzy #| msgid "info" msgid "in" -msgstr "informaţie" +msgstr "in" #: flatcamTools/ToolCopperThieving.py:465 msgid "Generate pattern plating mask" -msgstr "" +msgstr "Generați mască de placare cu model" #: flatcamTools/ToolCopperThieving.py:467 msgid "" @@ -13337,27 +13280,26 @@ msgid "" "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:620 #: flatcamTools/ToolCopperThieving.py:645 msgid "Lines Grid works only for 'itself' reference ..." -msgstr "" +msgstr "Gridul de Linii funcționează numai pentru referința „în sine” ..." #: flatcamTools/ToolCopperThieving.py:631 -#, fuzzy -#| msgid "Failed. Nothing selected." msgid "Solid fill selected." -msgstr "Eșuat. Nu este nimic selectat." +msgstr "Umplere solidă selectată." #: flatcamTools/ToolCopperThieving.py:636 -#, fuzzy -#| msgid "Done. Drill(s) deleted." msgid "Dots grid fill selected." -msgstr "Executat. Operatiile de găurire șterse." +msgstr "Umplere Grila de Puncte selectată." #: flatcamTools/ToolCopperThieving.py:641 msgid "Squares grid fill selected." -msgstr "" +msgstr "Umplere Grila de Pătrate selectată." #: flatcamTools/ToolCopperThieving.py:662 #: flatcamTools/ToolCopperThieving.py:744 @@ -13375,10 +13317,8 @@ msgstr "Adăugați geometria" #: flatcamTools/ToolCopperThieving.py:719 #: flatcamTools/ToolCopperThieving.py:1300 #: flatcamTools/ToolCopperThieving.py:1453 -#, fuzzy -#| msgid "Save Document source file" msgid "Append source file" -msgstr "Salvează codul sursa Document ca fişier" +msgstr "Adăugați fișierul sursă" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 @@ -13404,10 +13344,8 @@ msgid "Click the start point of the area." msgstr "Faceți clic pe punctul de pornire al zonei." #: flatcamTools/ToolCopperThieving.py:815 -#, fuzzy -#| msgid "Click the end point of the paint area." msgid "Click the end point of the filling area." -msgstr "Faceți clic pe punctul final al zonei de pictat." +msgstr "Faceți clic pe punctul final al zonei de umplere." #: flatcamTools/ToolCopperThieving.py:821 #: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 @@ -13420,25 +13358,19 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:940 #: flatcamTools/ToolCopperThieving.py:1001 msgid "Thieving" -msgstr "" +msgstr "Thieving" #: flatcamTools/ToolCopperThieving.py:947 -#, fuzzy -#| msgid "NCC Tool started. Reading parameters." msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Unealta NCC a pornit. Se citesc parametrii." +msgstr "Unealta Thieving Tool a pornit. Se citesc parametrii." #: flatcamTools/ToolCopperThieving.py:972 -#, fuzzy -#| msgid "NCC Tool. Preparing non-copper polygons." msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Unealta NCC. Se pregătesc poligoanele non-cupru." +msgstr "Unealta Thieving Tool. Se pregătesc poligoanele de isolare." #: flatcamTools/ToolCopperThieving.py:1017 -#, fuzzy -#| msgid "NCC Tool. Preparing non-copper polygons." msgid "Copper Thieving Tool. Preparing areas to fill with copper." -msgstr "Unealta NCC. Se pregătesc poligoanele non-cupru." +msgstr "Unealta Thieving Tool. Se pregătesc zonele de umplut cu cupru." #: flatcamTools/ToolCopperThieving.py:1028 flatcamTools/ToolOptimal.py:349 #: flatcamTools/ToolPanelize.py:798 flatcamTools/ToolRulesCheck.py:1118 @@ -13446,10 +13378,8 @@ msgid "Working..." msgstr "Se lucrează..." #: flatcamTools/ToolCopperThieving.py:1055 -#, fuzzy -#| msgid "Geometry not supported for cutout" msgid "Geometry not supported for bounding box" -msgstr "Geometria nu este acceptată pentru decupaj" +msgstr "Geometria nu este acceptată pentru caseta de delimitare" #: flatcamTools/ToolCopperThieving.py:1061 #: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 @@ -13464,25 +13394,24 @@ msgstr "Tipul de obiect de referintă nu este acceptat." #: flatcamTools/ToolCopperThieving.py:1103 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:1119 -#, fuzzy -#| msgid "Create Paint Geometry" msgid "Create geometry" -msgstr "Crează un obiect Geometrie tip 'Paint'" +msgstr "Creați geometrie" #: flatcamTools/ToolCopperThieving.py:1319 #: flatcamTools/ToolCopperThieving.py:1323 msgid "P-Plating Mask" -msgstr "" +msgstr "Mască M-Placare" #: flatcamTools/ToolCopperThieving.py:1345 msgid "Append PP-M geometry" -msgstr "" +msgstr "Adaugă geometrie mască PM" #: flatcamTools/ToolCopperThieving.py:1471 msgid "Generating Pattern Plating Mask done." -msgstr "" +msgstr "Generarea măștii de placare cu model efectuată." #: flatcamTools/ToolCopperThieving.py:1543 msgid "Copper Thieving Tool exit." @@ -13548,10 +13477,8 @@ msgstr "" "- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" #: flatcamTools/ToolCutOut.py:262 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Freeform Geometry" -msgstr "Genereza Geometrie" +msgstr "Generați geometrie cu formă liberă" #: flatcamTools/ToolCutOut.py:264 msgid "" @@ -13564,10 +13491,8 @@ msgstr "" "Folositor când PCB-ul are o forma neregulata." #: flatcamTools/ToolCutOut.py:276 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Rectangular Geometry" -msgstr "Genereza Geometrie" +msgstr "Generați geometrie dreptunghiulară" #: flatcamTools/ToolCutOut.py:278 msgid "" @@ -13600,10 +13525,8 @@ msgid "Geometry object used to create the manual cutout." msgstr "Obiect tip Geometrie folosit pentru crearea decupajului manual." #: flatcamTools/ToolCutOut.py:326 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Manual Geometry" -msgstr "Genereza Geometrie" +msgstr "Generați geometrie manuală" #: flatcamTools/ToolCutOut.py:328 msgid "" @@ -14001,19 +13924,15 @@ msgstr "Masoara: Click pe punctul Destinaţie..." #: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 msgid "MEASURING" -msgstr "" +msgstr "MĂSURARE" #: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 -#, fuzzy -#| msgid "Geo Result" msgid "Result" -msgstr "Rezultat Geo" +msgstr "Rezultat" #: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 -#, fuzzy -#| msgid "Distance Tool" msgid "Distance" -msgstr "Unealta Distanță" +msgstr "Distanță" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -14081,69 +14000,63 @@ 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/ToolFiducials.py:56 -#, fuzzy -#| msgid "Points coordinates" msgid "Fiducials Coordinates" -msgstr "Coordonatele punctelor" +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:74 -#, fuzzy -#| msgid "Coordinates type" msgid "Coordinates" -msgstr "Tip coordinate" +msgstr "Coordinate" #: flatcamTools/ToolFiducials.py:99 -#, fuzzy -#| msgid "Top right" msgid "Top Right" msgstr "Dreapta-sus" #: flatcamTools/ToolFiducials.py:111 -#, fuzzy -#| msgid "Second object point" msgid "Second Point" msgstr "Al doilea punct" +#: 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:258 -#, fuzzy -#| msgid "Open Gerber" msgid "Copper Gerber" -msgstr "Încarcă Gerber" +msgstr "Gerber Cupru" #: flatcamTools/ToolFiducials.py:267 -#, fuzzy -#| msgid "Add Circle" msgid "Add Fiducial" -msgstr "Adaugă Cerc" +msgstr "Adaugă Fiducial" #: flatcamTools/ToolFiducials.py:269 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:285 -#, fuzzy -#| msgid "New Blank Gerber" msgid "Soldermask Gerber" -msgstr "Gerber Nou (gol)" +msgstr "Gerber Soldermask" #: flatcamTools/ToolFiducials.py:287 -#, fuzzy -#| msgid "No SolderPaste mask Gerber object loaded." msgid "The Soldermask Gerber object." -msgstr "" -"Nu este incărcat ni-un obiect Gerber cu informatia măstii pt pasta de fludor." +msgstr "Obiectul Soldermask Gerber." #: flatcamTools/ToolFiducials.py:298 -#, fuzzy -#| msgid "Solder Paste Dispensing Tool" msgid "Add Soldermask Opening" -msgstr "Unealta DispensorPF" +msgstr "Adăugați deschidere Soldermask." #: flatcamTools/ToolFiducials.py:300 msgid "" @@ -14152,24 +14065,28 @@ msgid "" "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:514 -#, fuzzy -#| msgid "Click inside the desired polygon." msgid "Click to add first Fiducial. Bottom Left..." -msgstr "Click in interiorul poligonului care se dorește să fie 'pictat'." +msgstr "Faceți clic pentru a adăuga primul Fiducial. Stânga jos..." #: flatcamTools/ToolFiducials.py:778 msgid "Click to add the last fiducial. Top Right..." -msgstr "" +msgstr "Faceți clic pentru a adăuga ultimul Fiducial. Dreapta Sus..." #: flatcamTools/ToolFiducials.py:783 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:786 flatcamTools/ToolFiducials.py:795 msgid "Done. All fiducials have been added." -msgstr "" +msgstr "Terminat. Au fost adăugate toate Fiducials." #: flatcamTools/ToolFiducials.py:872 msgid "Fiducials Tool exit." @@ -14227,10 +14144,8 @@ msgstr "" "se crează filmul." #: flatcamTools/ToolFilm.py:273 -#, fuzzy -#| msgid "Slot Parameters" msgid "Film Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametrii filmului" #: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" @@ -14289,12 +14204,6 @@ msgid "Save Film" msgstr "Salveaa filmul" #: flatcamTools/ToolFilm.py:502 -#, fuzzy -#| 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 SVG format\n" -#| "which can be opened with Inkscape." msgid "" "Create a Film for the selected object, within\n" "the specified box. Does not create a new \n" @@ -14303,8 +14212,7 @@ msgid "" 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 format SVG care poate fi \n" -"deschis și prelucrat mai departe cu Inkscape." +"salvează pe HDD un fişier in formatul selectat." #: flatcamTools/ToolFilm.py:652 msgid "" @@ -14327,8 +14235,6 @@ msgstr "" "încearcă din nou." #: flatcamTools/ToolFilm.py:673 -#, fuzzy -#| msgid "No object selected." msgid "No FlatCAM object selected." msgstr "Nici-un obiect nu este selectat." @@ -14337,16 +14243,12 @@ msgid "Generating Film ..." msgstr "Se generează Film-ul ..." #: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 -#, fuzzy -#| msgid "Export SVG positive" msgid "Export positive film" -msgstr "Exporta SVG pozitiv" +msgstr "Export film pozitiv" #: flatcamTools/ToolFilm.py:742 -#, fuzzy -#| msgid "Export SVG positive cancelled." msgid "Export positive film cancelled." -msgstr "Exportul unui fişier SVG pozitiv este anulat." +msgstr "Exportul filmului pozitiv a fost anulat." #: flatcamTools/ToolFilm.py:770 msgid "" @@ -14380,16 +14282,12 @@ msgstr "" "nou creat este aceeași cu cea din geometria obiectului sursă ..." #: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 -#, fuzzy -#| msgid "Export SVG negative" msgid "Export negative film" -msgstr "Exporta SVG negativ" +msgstr "Export film negativ" #: flatcamTools/ToolFilm.py:888 -#, fuzzy -#| msgid "Export SVG negative cancelled." msgid "Export negative film cancelled." -msgstr "Exportul unui fişier SVG negativ este anulat." +msgstr "Exportul filmului negativ a fost anulat." #: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 @@ -14397,10 +14295,8 @@ msgid "No object Box. Using instead" msgstr "Nu exista container. Se foloseşte in schimb" #: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 -#, fuzzy -#| msgid "DXF file exported to" msgid "Film file exported to" -msgstr "Fişierul DXF exportat in" +msgstr "Fișierul Film exportat în" #: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." @@ -14666,6 +14562,9 @@ msgid "" "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." #: flatcamTools/ToolNonCopperClear.py:288 flatcamTools/ToolPaint.py:190 msgid "" @@ -14685,16 +14584,6 @@ msgstr "" "efectuata prin selectia liniilot din Tabela de Unelte." #: flatcamTools/ToolNonCopperClear.py:441 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "- 'Itself' - the non copper clearing extent is based on the object that is " "copper cleared.\n" @@ -14703,14 +14592,12 @@ msgid "" "- 'Reference Object' - will do non copper clearing within the area specified " "by another object." msgstr "" -"- „Însuși” - suprafața de curățare a cuprului\n" -"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 care va fi pictată.\n" -"Menținerea unei taste de modificare apăsată (CTRL sau SHIFT) va permite " -"adăugarea mai multor zone.\n" -"- „Obiect de referință” - va face o curățare fără cupru în zona\n" -"specificată de un alt obiect." +"- „Însuși” - suprafața de curățare a cuprului 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 care va fi pictată.\n" +"- „Obiect de referință” - va face o curățare fără cupru în zona specificată " +"de un alt obiect." #: flatcamTools/ToolNonCopperClear.py:453 msgid "" @@ -15140,10 +15027,8 @@ msgstr "" "Daca nu este bifat, foloseşte algoritmul standard." #: flatcamTools/ToolPaint.py:313 -#, fuzzy -#| msgid "Polygon Intersection" msgid "Polygon Selection" -msgstr "Intersecţie Poligoane" +msgstr "Selecție Poligon" #: flatcamTools/ToolPaint.py:315 msgid "All Polygons" @@ -15193,32 +15078,24 @@ msgid "Can't do Paint on MultiGeo geometries" msgstr "Nu se poate face 'pictare' pe geometrii MultiGeo" #: flatcamTools/ToolPaint.py:1040 -#, fuzzy -#| msgid "Click on target point." msgid "Click on a polygon to paint it." -msgstr "Click pe punctul tinta." +msgstr "Faceți clic pe un poligon pentru a-l picta." #: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Faceți clic pe punctul de pornire al zonei de pictat." #: flatcamTools/ToolPaint.py:1127 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add next polygon or right click to start painting." msgstr "" -"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " -"dreapta pentru a termina." +"Faceți clic pentru a adăuga următorul poligon sau faceți clic dreapta pentru " +"a începe Paint." #: flatcamTools/ToolPaint.py:1140 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add/remove next polygon or right click to start painting." msgstr "" -"Zona adăugată. Faceți clic stanga pt a continua adăugarea de zone sau click " -"dreapta pentru a termina." +"Faceți clic pentru a adăuga / elimina următorul poligon sau faceți clic " +"dreapta pentru a începe Paint." #: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 #: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 @@ -15699,7 +15576,7 @@ msgstr "Dimensiuni" #: flatcamTools/ToolProperties.py:165 msgid "Others" -msgstr "" +msgstr "Alții" #: flatcamTools/ToolProperties.py:172 msgid "Geo Type" @@ -15728,10 +15605,8 @@ msgid "Metric" msgstr "Metric" #: flatcamTools/ToolProperties.py:401 flatcamTools/ToolProperties.py:459 -#, fuzzy -#| msgid "Workers number" msgid "Drills number" -msgstr "Număr de worker's" +msgstr "Numărul de găuri" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 msgid "Slots number" @@ -15752,38 +15627,28 @@ msgid "Present" msgstr "Prezent" #: flatcamTools/ToolProperties.py:427 flatcamTools/ToolProperties.py:457 -#, fuzzy -#| msgid "Buffer Solid Geometry" msgid "Solid Geometry" -msgstr "Creează Bufer Geometrie Solidă" +msgstr "Geometrie Solidă" #: flatcamTools/ToolProperties.py:430 -#, fuzzy -#| msgid "Add Text" msgid "GCode Text" -msgstr "Adaugă Text" +msgstr "Text GCode" #: flatcamTools/ToolProperties.py:433 -#, fuzzy -#| msgid "New Geometry" msgid "GCode Geometry" -msgstr "Geometrie Noua" +msgstr "Geometrie GCode" #: flatcamTools/ToolProperties.py:435 -#, fuzzy -#| msgid "Tool Data" msgid "Data" -msgstr "Date unealtă" +msgstr "Date" #: flatcamTools/ToolProperties.py:468 msgid "Depth of Cut" msgstr "Adâncimea de Tăiere" #: flatcamTools/ToolProperties.py:480 -#, fuzzy -#| msgid "Tolerance" msgid "Clearance Height" -msgstr "Toleranta" +msgstr "Înălțime Sigură" #: flatcamTools/ToolProperties.py:492 msgid "Feedrate" @@ -15791,11 +15656,9 @@ msgstr "Feedrate" #: flatcamTools/ToolProperties.py:512 msgid "Routing time" -msgstr "" +msgstr "Timpul de rutare" #: flatcamTools/ToolProperties.py:519 -#, fuzzy -#| msgid "Travelled dist." msgid "Travelled distance" msgstr "Distanța parcursă" @@ -15812,74 +15675,60 @@ msgid "Convex_Hull Area" msgstr "Arie convexă" #: flatcamTools/ToolProperties.py:583 flatcamTools/ToolProperties.py:585 -#, fuzzy -#| msgid "Copper Growth" msgid "Copper Area" -msgstr "Grosime Cu" +msgstr "Aria de Cupru" #: flatcamTools/ToolQRCode.py:79 -#, fuzzy -#| msgid "Gerber objects for which to check rules." msgid "Gerber Object to which the QRCode will be added." -msgstr "Obiecte Gerber pentru care trebuie verificate regulile." +msgstr "Obiect Gerber la care se va adăuga codul QR." #: flatcamTools/ToolQRCode.py:92 -#, fuzzy -#| msgid "Slot Parameters" msgid "QRCode Parameters" -msgstr "Parametrii pt slot" +msgstr "Parametrii QRCode" #: flatcamTools/ToolQRCode.py:94 msgid "The parameters used to shape the QRCode." -msgstr "" +msgstr "Parametrii utilizați pentru modelarea codului QR." #: flatcamTools/ToolQRCode.py:207 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode" -msgstr "Exportă G-Code" +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 "" +msgstr "Culoare de fundal transparentă" #: flatcamTools/ToolQRCode.py:273 -#, fuzzy -#| msgid "Export SVG" msgid "Export QRCode SVG" -msgstr "Exporta SVG" +msgstr "Exporta QRCode SVG" #: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." -msgstr "" +msgstr "Exportați un fișier SVG cu conținutul QRCode." #: flatcamTools/ToolQRCode.py:286 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode PNG" -msgstr "Exportă G-Code" +msgstr "Exportă QRCode PNG" #: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." -msgstr "" +msgstr "Exportați un fișier imagine PNG cu conținutul QRCode." #: flatcamTools/ToolQRCode.py:299 -#, fuzzy -#| msgid "Generate GCode" msgid "Insert QRCode" -msgstr "Genereaa GCode" +msgstr "Inserați codul QR" #: flatcamTools/ToolQRCode.py:301 -#, fuzzy -#| msgid "Generate the CNC Job object." msgid "Create the QRCode object." -msgstr "Generează un obiect CNCJob." +msgstr "Creați obiectul QRCode." #: flatcamTools/ToolQRCode.py:413 flatcamTools/ToolQRCode.py:748 #: flatcamTools/ToolQRCode.py:797 @@ -15887,26 +15736,20 @@ msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Anulat. Nu există date QRCode în caseta de text." #: flatcamTools/ToolQRCode.py:432 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generating QRCode geometry" -msgstr "Genereza Geometrie" +msgstr "Generarea geometriei QRCode" #: flatcamTools/ToolQRCode.py:472 -#, fuzzy -#| msgid "Click on the Destination point..." msgid "Click on the Destination point ..." msgstr "Click pe punctul de Destinaţie ..." #: flatcamTools/ToolQRCode.py:587 msgid "QRCode Tool done." -msgstr "" +msgstr "Unealta QRCode efectuata." #: flatcamTools/ToolQRCode.py:780 flatcamTools/ToolQRCode.py:784 -#, fuzzy -#| msgid "Export SVG" msgid "Export PNG" -msgstr "Exporta SVG" +msgstr "Exporta PNG" #: flatcamTools/ToolQRCode.py:789 msgid " Export PNG cancelled." @@ -16410,10 +16253,8 @@ msgid "ToolSolderPaste CNCjob created" msgstr "ToolSolderPaste CNCjob a fost creat" #: flatcamTools/ToolSolderPaste.py:1419 -#, fuzzy -#| msgid "Code Editor" msgid "SP GCode Editor" -msgstr "Editor Cod" +msgstr "Editor GCode SP" #: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 #: flatcamTools/ToolSolderPaste.py:1491 @@ -16531,24 +16372,16 @@ msgid "No Subtractor object loaded." msgstr "Nu este incărcat obiect Substractor (scăzător)." #: flatcamTools/ToolSub.py:325 -#, fuzzy -#| msgid "" -#| "Gerber object from which to subtract\n" -#| "the subtractor Gerber object." msgid "Processing geometry from Subtractor Gerber object." -msgstr "" -"Obiectul Gerber din care se scade \n" -"obiectul Gerber substractor." +msgstr "Procesarea geometriei din obiectul Gerber Scăzător." #: flatcamTools/ToolSub.py:346 msgid "Parsing geometry for aperture" msgstr "Se analizează Geometria pt apertura" #: flatcamTools/ToolSub.py:407 -#, fuzzy -#| msgid "Parsing geometry for aperture" msgid "Finished parsing geometry for aperture" -msgstr "Se analizează Geometria pt apertura" +msgstr "S-a terminat analiza geometriei pt apertura" #: flatcamTools/ToolSub.py:452 flatcamTools/ToolSub.py:655 msgid "Generating new object ..." From 6da661eea9b05cee2a88376a5f30aca84a7ea1f5 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 14 Dec 2019 00:19:14 +0200 Subject: [PATCH 34/36] - some work in updating the Spanish Google-translation --- README.md | 1 + locale/en/LC_MESSAGES/strings.mo | Bin 333886 -> 331418 bytes locale/en/LC_MESSAGES/strings.po | 1449 ++++---- locale/es/LC_MESSAGES/strings.mo | Bin 301145 -> 309764 bytes locale/es/LC_MESSAGES/strings.po | 5318 +++++++++++++++--------------- 5 files changed, 3463 insertions(+), 3305 deletions(-) diff --git a/README.md b/README.md index 8d2be9d8..f65921ad 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ CAD program, and create G-Code for Isolation routing. - removed the .plt extension from Gcode extensions - some strings updated; update on the Romanian translate - more strings updated; finished the Romanian translation update +- some work in updating the Spanish Google-translation 12.12.2019 diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo index a7622332fce133ccf3eabd55aef35dc5a6d8bc16..f49c96182fd522903b51d4f5d5e90a7785361867 100644 GIT binary patch delta 63564 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 delta 64484 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%0D3jcv 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 Ghelp< to get started\n" "\n" -#: FlatCAMApp.py:2643 FlatCAMApp.py:9108 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "New Project - Not saved" -#: FlatCAMApp.py:2718 FlatCAMApp.py:9176 FlatCAMApp.py:9213 FlatCAMApp.py:9254 -#: FlatCAMApp.py:9325 FlatCAMApp.py:10079 FlatCAMApp.py:11090 -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 +#: FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -131,22 +131,22 @@ msgstr "Do you want to save the edited object?" msgid "Close Editor" msgstr "Close Editor" -#: FlatCAMApp.py:3298 FlatCAMApp.py:4983 FlatCAMApp.py:7843 FlatCAMApp.py:7869 -#: FlatCAMApp.py:9015 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Yes" -#: FlatCAMApp.py:3299 FlatCAMApp.py:4984 FlatCAMApp.py:7844 FlatCAMApp.py:7870 -#: FlatCAMApp.py:9016 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 #: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 #: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "No" -#: FlatCAMApp.py:3300 FlatCAMApp.py:4985 FlatCAMApp.py:5821 FlatCAMApp.py:7139 -#: FlatCAMApp.py:9017 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Cancel" @@ -162,11 +162,11 @@ msgstr "Select a Gerber, Geometry or Excellon Object to update." msgid "is updated, returning to App..." msgstr "is updated, returning to App..." -#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4845 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "Could not load defaults file." -#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4854 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "Failed to parse defaults file." @@ -190,8 +190,8 @@ msgstr "Export FlatCAM Preferences" msgid "FlatCAM preferences export cancelled." msgstr "FlatCAM preferences export cancelled." -#: FlatCAMApp.py:3906 FlatCAMApp.py:10305 FlatCAMApp.py:10353 -#: FlatCAMApp.py:10476 FlatCAMApp.py:10615 FlatCAMCommon.py:378 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 +#: FlatCAMApp.py:10509 FlatCAMApp.py:10648 FlatCAMCommon.py:378 #: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 #: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 #: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 @@ -206,7 +206,7 @@ msgstr "" msgid "Could not load preferences file." msgstr "Could not load preferences file." -#: FlatCAMApp.py:3939 FlatCAMApp.py:4901 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "Failed to write defaults to file." @@ -256,52 +256,47 @@ msgstr "TCL Tutorial is here" msgid "FlatCAM commands list" msgstr "FlatCAM commands list" -#: FlatCAMApp.py:4317 FlatCAMApp.py:4320 FlatCAMApp.py:4323 FlatCAMApp.py:4326 -#: FlatCAMApp.py:4329 FlatCAMApp.py:4332 -#, python-brace-format -msgid "" -"[selected] {kind} created/selected: {name}" -msgstr "" -"[selected] {kind} created/selected: {name}" +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" +msgstr "created/selected" -#: FlatCAMApp.py:4347 FlatCAMApp.py:7219 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 #: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Plotting" -#: FlatCAMApp.py:4408 flatcamGUI/FlatCAMGUI.py:467 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "About FlatCAM" -#: FlatCAMApp.py:4434 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" -#: FlatCAMApp.py:4435 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "Development" -#: FlatCAMApp.py:4436 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: FlatCAMApp.py:4437 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "Issue tracker" -#: FlatCAMApp.py:4441 FlatCAMApp.py:4776 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "Close" -#: FlatCAMApp.py:4456 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" msgstr "Licensed under the MIT license" -#: FlatCAMApp.py:4465 +#: FlatCAMApp.py:4483 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -349,13 +344,7 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: FlatCAMApp.py:4487 -#| msgid "" -#| "Some of the icons used are from the following sources:
Icons made " -#| "by Freepik from www.flaticon.com
Icons by Icons8" +#: FlatCAMApp.py:4505 msgid "" "Some of the icons used are from the following sources:
Icons by FreepikIcons8
Icons by oNline Web Fonts" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "Splash" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "Programmers" -#: FlatCAMApp.py:4531 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "Translators" -#: FlatCAMApp.py:4537 +#: FlatCAMApp.py:4555 msgid "License" msgstr "License" -#: FlatCAMApp.py:4543 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "Attributions" -#: FlatCAMApp.py:4566 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "Programmer" -#: FlatCAMApp.py:4567 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "Status" -#: FlatCAMApp.py:4568 FlatCAMApp.py:4639 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "E-mail" -#: FlatCAMApp.py:4576 +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" msgstr "BETA Maintainer >= 2019" -#: FlatCAMApp.py:4636 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "Language" -#: FlatCAMApp.py:4637 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "Translator" -#: FlatCAMApp.py:4638 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "Corrections" -#: FlatCAMApp.py:4747 FlatCAMApp.py:4755 FlatCAMApp.py:7888 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 #: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Bookmarks Manager" -#: FlatCAMApp.py:4767 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -444,35 +433,35 @@ msgstr "" "If you can't get any informations about FlatCAM beta\n" "use the YouTube channel link from the Help menu." -#: FlatCAMApp.py:4774 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "Alternative website" -#: FlatCAMApp.py:4905 FlatCAMApp.py:7852 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "Preferences saved." -#: FlatCAMApp.py:4933 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "Could not load factory defaults file." -#: FlatCAMApp.py:4943 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "Failed to parse factory defaults file." -#: FlatCAMApp.py:4959 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "Failed to write factory defaults to file." -#: FlatCAMApp.py:4963 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "Factory defaults saved." -#: FlatCAMApp.py:4973 flatcamGUI/FlatCAMGUI.py:3691 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "Application is saving the project. Please wait ..." -#: FlatCAMApp.py:4978 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -480,27 +469,27 @@ msgstr "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" -#: FlatCAMApp.py:4981 FlatCAMApp.py:9013 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Save changes" -#: FlatCAMApp.py:5222 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Selected Excellon file extensions registered with FlatCAM." -#: FlatCAMApp.py:5244 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Selected GCode file extensions registered with FlatCAM." -#: FlatCAMApp.py:5266 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Selected Gerber file extensions registered with FlatCAM." -#: FlatCAMApp.py:5454 FlatCAMApp.py:5511 FlatCAMApp.py:5539 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 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:5463 +#: FlatCAMApp.py:5481 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 " @@ -516,51 +505,51 @@ msgstr "" "be lost and the result may not be what was expected. \n" "Check the generated GCODE." -#: FlatCAMApp.py:5475 +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" msgstr "Multigeo. Geometry merging finished" -#: FlatCAMApp.py:5484 +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" msgstr "Geometry merging finished" -#: FlatCAMApp.py:5506 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Failed. Excellon joining works only on Excellon objects." -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" msgstr "Excellon merging finished" -#: FlatCAMApp.py:5534 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Failed. Gerber joining works only on Gerber objects." -#: FlatCAMApp.py:5544 +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" msgstr "Gerber merging finished" -#: FlatCAMApp.py:5564 FlatCAMApp.py:5599 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "Failed. Select a Geometry Object and try again." -#: FlatCAMApp.py:5568 FlatCAMApp.py:5604 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "Expected a FlatCAMGeometry, got" -#: FlatCAMApp.py:5581 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "A Geometry object was converted to MultiGeo type." -#: FlatCAMApp.py:5619 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "A Geometry object was converted to SingleGeo type." -#: FlatCAMApp.py:5815 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "Toggle Units" -#: FlatCAMApp.py:5817 +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -572,48 +561,48 @@ msgstr "" "\n" "Do you want to continue?" -#: FlatCAMApp.py:5820 FlatCAMApp.py:7062 FlatCAMApp.py:7138 FlatCAMApp.py:9378 -#: FlatCAMApp.py:9392 FlatCAMApp.py:9746 FlatCAMApp.py:9757 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "Ok" -#: FlatCAMApp.py:5869 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "Converted units to" -#: FlatCAMApp.py:5883 +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." msgstr "Units conversion cancelled." -#: FlatCAMApp.py:6756 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "Detachable Tabs" -#: FlatCAMApp.py:6975 FlatCAMApp.py:7022 FlatCAMApp.py:7678 FlatCAMApp.py:7741 -#: FlatCAMApp.py:7807 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "Preferences" -#: FlatCAMApp.py:6978 +#: FlatCAMApp.py:6996 msgid "Preferences applied." msgstr "Preferences applied." -#: FlatCAMApp.py:7027 +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." msgstr "Preferences closed without saving." -#: FlatCAMApp.py:7050 flatcamTools/ToolNonCopperClear.py:596 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 #: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 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:7055 flatcamTools/ToolNonCopperClear.py:600 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 #: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Adding Tool cancelled" -#: FlatCAMApp.py:7058 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -621,11 +610,11 @@ msgstr "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." -#: FlatCAMApp.py:7133 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "Delete objects" -#: FlatCAMApp.py:7136 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -633,54 +622,54 @@ msgstr "" "Are you sure you want to permanently delete\n" "the selected objects?" -#: FlatCAMApp.py:7167 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "Object(s) deleted" -#: FlatCAMApp.py:7171 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "Failed. No object(s) selected..." -#: FlatCAMApp.py:7173 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "Save the work in Editor and try again ..." -#: FlatCAMApp.py:7203 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "Object deleted" -#: FlatCAMApp.py:7230 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "Click to set the origin ..." -#: FlatCAMApp.py:7252 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "Setting Origin..." -#: FlatCAMApp.py:7264 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "Origin set" -#: FlatCAMApp.py:7271 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: FlatCAMApp.py:7329 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "Jump to ..." -#: FlatCAMApp.py:7330 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "Enter the coordinates in format X,Y:" -#: FlatCAMApp.py:7338 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Wrong coordinates. Enter coordinates in format: X,Y" -#: FlatCAMApp.py:7406 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 -#: flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 +#: flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 #: flatcamEditors/FlatCAMGrbEditor.py:1446 @@ -691,43 +680,43 @@ msgstr "Wrong coordinates. Enter coordinates in format: X,Y" msgid "Done." msgstr "Done." -#: FlatCAMApp.py:7558 FlatCAMApp.py:7629 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 msgid "No object is selected. Select an object and try again." msgstr "No object is selected. Select an object and try again." -#: FlatCAMApp.py:7649 +#: FlatCAMApp.py:7667 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:7655 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "The current task was gracefully closed on user request..." -#: FlatCAMApp.py:7738 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "Preferences edited but not saved." -#: FlatCAMApp.py:7752 FlatCAMApp.py:7764 FlatCAMApp.py:7781 FlatCAMApp.py:7798 -#: FlatCAMApp.py:7858 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 #: FlatCAMObj.py:4213 msgid "Tools Database" msgstr "Tools Database" -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." msgstr "Tools in Tools Database edited but not saved." -#: FlatCAMApp.py:7802 +#: FlatCAMApp.py:7820 msgid "Tool from DB added in Tool Table." msgstr "Tool from DB added in Tool Table." -#: FlatCAMApp.py:7804 +#: FlatCAMApp.py:7822 msgid "Adding tool from DB is not allowed for this object." msgstr "Adding tool from DB is not allowed for this object." -#: FlatCAMApp.py:7838 +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -735,11 +724,11 @@ msgstr "" "One or more values are changed.\n" "Do you want to save the Preferences?" -#: FlatCAMApp.py:7840 flatcamGUI/FlatCAMGUI.py:220 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Save Preferences" -#: FlatCAMApp.py:7864 +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -747,93 +736,93 @@ msgstr "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" -#: FlatCAMApp.py:7866 +#: FlatCAMApp.py:7884 msgid "Save Tools Database" msgstr "Save Tools Database" -#: FlatCAMApp.py:7885 FlatCAMApp.py:9985 FlatCAMObj.py:6456 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Code Editor" -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "No object selected to Flip on Y axis." -#: FlatCAMApp.py:7929 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "Flip on Y axis done." -#: FlatCAMApp.py:7931 FlatCAMApp.py:7973 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "Flip action was not executed." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "No object selected to Flip on X axis." -#: FlatCAMApp.py:7971 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "Flip on X axis done." -#: FlatCAMApp.py:7987 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "No object selected to Rotate." -#: FlatCAMApp.py:7990 FlatCAMApp.py:8037 FlatCAMApp.py:8070 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "Transform" -#: FlatCAMApp.py:7990 FlatCAMApp.py:8037 FlatCAMApp.py:8070 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "Enter the Angle value:" -#: FlatCAMApp.py:8021 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "Rotation done." -#: FlatCAMApp.py:8023 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "Rotation movement was not executed." -#: FlatCAMApp.py:8035 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "No object selected to Skew/Shear on X axis." -#: FlatCAMApp.py:8057 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "Skew on X axis done." -#: FlatCAMApp.py:8068 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "No object selected to Skew/Shear on Y axis." -#: FlatCAMApp.py:8090 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "Skew on Y axis done." -#: FlatCAMApp.py:8238 FlatCAMApp.py:8285 flatcamGUI/FlatCAMGUI.py:429 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 #: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Select All" -#: FlatCAMApp.py:8242 FlatCAMApp.py:8289 flatcamGUI/FlatCAMGUI.py:432 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Deselect All" -#: FlatCAMApp.py:8305 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "All objects are selected." -#: FlatCAMApp.py:8315 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "Objects selection is cleared." -#: FlatCAMApp.py:8331 flatcamGUI/FlatCAMGUI.py:1458 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Grid On/Off" -#: FlatCAMApp.py:8344 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 #: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 @@ -843,7 +832,7 @@ msgstr "Grid On/Off" msgid "Add" msgstr "Add" -#: FlatCAMApp.py:8345 FlatCAMObj.py:3900 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 #: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 #: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 @@ -854,66 +843,66 @@ msgstr "Add" msgid "Delete" msgstr "Delete" -#: FlatCAMApp.py:8358 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "New Grid ..." -#: FlatCAMApp.py:8359 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "Enter a Grid Value:" -#: FlatCAMApp.py:8367 FlatCAMApp.py:8394 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 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:8373 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "New Grid added" -#: FlatCAMApp.py:8376 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "Grid already exists" -#: FlatCAMApp.py:8379 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "Adding New Grid cancelled" -#: FlatCAMApp.py:8401 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" msgstr " Grid Value does not exist" -#: FlatCAMApp.py:8404 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "Grid Value deleted" -#: FlatCAMApp.py:8407 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "Delete Grid value cancelled" -#: FlatCAMApp.py:8413 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "Key Shortcut List" -#: FlatCAMApp.py:8447 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" msgstr " No object selected to copy it's name" -#: FlatCAMApp.py:8451 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "Name copied on clipboard ..." -#: FlatCAMApp.py:8648 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Coordinates copied to clipboard." -#: FlatCAMApp.py:8859 FlatCAMApp.py:8862 FlatCAMApp.py:8865 FlatCAMApp.py:8868 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" -msgstr "[selected]{name} selected" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +#| msgid "Selected" +msgid "selected" +msgstr "selected" -#: FlatCAMApp.py:9010 +#: FlatCAMApp.py:9040 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -923,364 +912,353 @@ msgstr "" "Creating a New project will delete them.\n" "Do you want to Save the project?" -#: FlatCAMApp.py:9032 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "New Project created" -#: FlatCAMApp.py:9167 FlatCAMApp.py:9171 flatcamGUI/FlatCAMGUI.py:696 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 #: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Open Gerber" -#: FlatCAMApp.py:9178 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "Opening Gerber file." -#: FlatCAMApp.py:9184 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "Open Gerber cancelled." -#: FlatCAMApp.py:9205 FlatCAMApp.py:9209 flatcamGUI/FlatCAMGUI.py:697 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 #: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Open Excellon" -#: FlatCAMApp.py:9215 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "Opening Excellon file." -#: FlatCAMApp.py:9221 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." msgstr " Open Excellon cancelled." -#: FlatCAMApp.py:9245 FlatCAMApp.py:9249 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "Open G-Code" -#: FlatCAMApp.py:9256 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "Opening G-Code file." -#: FlatCAMApp.py:9262 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "Open G-Code cancelled." -#: FlatCAMApp.py:9280 FlatCAMApp.py:9283 flatcamGUI/FlatCAMGUI.py:1467 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Open Project" -#: FlatCAMApp.py:9292 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "Open Project cancelled." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9320 -#| msgid "Open PDF" +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 msgid "Open HPGL2" msgstr "Open HPGL2" -#: FlatCAMApp.py:9327 -#| msgid "Opening Gerber file." +#: FlatCAMApp.py:9357 msgid "Opening HPGL2 file." msgstr "Opening HPGL2 file." -#: FlatCAMApp.py:9332 -#| msgid "Open SVG cancelled." +#: FlatCAMApp.py:9362 msgid "Open HPGL2 file cancelled." msgstr "Open HPGL2 file cancelled." -#: FlatCAMApp.py:9350 FlatCAMApp.py:9353 +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "Open Configuration File" -#: FlatCAMApp.py:9358 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "Open Config cancelled." -#: FlatCAMApp.py:9374 FlatCAMApp.py:9742 FlatCAMApp.py:10214 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "No object selected." -#: FlatCAMApp.py:9375 FlatCAMApp.py:9743 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "Please Select a Geometry object to export" -#: FlatCAMApp.py:9389 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Only Geometry, Gerber and CNCJob objects can be used." -#: FlatCAMApp.py:9402 FlatCAMApp.py:9406 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Export SVG" -#: FlatCAMApp.py:9412 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr " Export SVG cancelled." -#: FlatCAMApp.py:9433 +#: FlatCAMApp.py:9463 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:9439 FlatCAMApp.py:9443 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "Export PNG Image" -#: FlatCAMApp.py:9448 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "Export PNG cancelled." -#: FlatCAMApp.py:9472 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "No object selected. Please select an Gerber object to export." -#: FlatCAMApp.py:9478 FlatCAMApp.py:9701 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "Failed. Only Gerber objects can be saved as Gerber files..." -#: FlatCAMApp.py:9490 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "Save Gerber source file" -#: FlatCAMApp.py:9496 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "Save Gerber source file cancelled." -#: FlatCAMApp.py:9516 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "No object selected. Please select an Script object to export." -#: FlatCAMApp.py:9522 +#: FlatCAMApp.py:9552 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:9534 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "Save Script source file" -#: FlatCAMApp.py:9540 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "Save Script source file cancelled." -#: FlatCAMApp.py:9560 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "No object selected. Please select an Document object to export." -#: FlatCAMApp.py:9566 +#: FlatCAMApp.py:9596 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "Failed. Only Document objects can be saved as Document files..." -#: FlatCAMApp.py:9578 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "Save Document source file" -#: FlatCAMApp.py:9584 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "Save Document source file cancelled." -#: FlatCAMApp.py:9604 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "No object selected. Please select an Excellon object to export." -#: FlatCAMApp.py:9610 FlatCAMApp.py:9654 FlatCAMApp.py:10389 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "Failed. Only Excellon objects can be saved as Excellon files..." -#: FlatCAMApp.py:9618 FlatCAMApp.py:9622 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "Save Excellon source file" -#: FlatCAMApp.py:9628 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "Saving Excellon source file cancelled." -#: FlatCAMApp.py:9648 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "No object selected. Please Select an Excellon object to export." -#: FlatCAMApp.py:9662 FlatCAMApp.py:9666 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "Export Excellon" -#: FlatCAMApp.py:9672 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "Export Excellon cancelled." -#: FlatCAMApp.py:9695 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "No object selected. Please Select an Gerber object to export." -#: FlatCAMApp.py:9709 FlatCAMApp.py:9713 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "Export Gerber" -#: FlatCAMApp.py:9719 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "Export Gerber cancelled." -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "Only Geometry objects can be used." -#: FlatCAMApp.py:9768 FlatCAMApp.py:9772 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "Export DXF" -#: FlatCAMApp.py:9779 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "Export DXF cancelled." -#: FlatCAMApp.py:9799 FlatCAMApp.py:9802 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "Import SVG" -#: FlatCAMApp.py:9812 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "Open SVG cancelled." -#: FlatCAMApp.py:9831 FlatCAMApp.py:9835 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "Import DXF" -#: FlatCAMApp.py:9845 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "Open DXF cancelled." -#: FlatCAMApp.py:9887 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "Viewing the source code of the selected object." -#: FlatCAMApp.py:9888 FlatCAMObj.py:6442 FlatCAMObj.py:7043 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Loading..." -#: FlatCAMApp.py:9894 FlatCAMApp.py:9898 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 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:9912 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "Source Editor" -#: FlatCAMApp.py:9952 FlatCAMApp.py:9959 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 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:9971 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "Failed to load the source code for the selected object" -#: FlatCAMApp.py:10013 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "New TCL script file created in Code Editor." -#: FlatCAMApp.py:10051 FlatCAMApp.py:10053 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "Open TCL script" -#: FlatCAMApp.py:10057 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "Open TCL script cancelled." -#: FlatCAMApp.py:10081 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "Executing FlatCAMScript file." -#: FlatCAMApp.py:10088 FlatCAMApp.py:10091 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "Run TCL script" -#: FlatCAMApp.py:10101 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "Run TCL script cancelled." -#: FlatCAMApp.py:10117 +#: FlatCAMApp.py:10147 msgid "TCL script file opened in Code Editor and executed." msgstr "TCL script file opened in Code Editor and executed." -#: FlatCAMApp.py:10168 FlatCAMApp.py:10172 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "Save Project As ..." -#: FlatCAMApp.py:10169 -#, python-brace-format -msgid "{l_save}/Project_{date}" -msgstr "{l_save}/Project_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" +msgstr "Project" -#: FlatCAMApp.py:10177 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "Save Project cancelled." -#: FlatCAMApp.py:10184 +#: FlatCAMApp.py:10216 msgid "The object is used by another application." msgstr "The object is used by another application." -#: FlatCAMApp.py:10220 FlatCAMApp.py:10226 flatcamGUI/FlatCAMGUI.py:261 -#| msgid "Save Project As ..." +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 msgid "Save Object as PDF ..." msgstr "Save Object as PDF ..." -#: FlatCAMApp.py:10221 -#, python-brace-format -#| msgid "{l_save}/Project_{date}" -msgid "{l_save}/{obj_name}_{date}" -msgstr "{l_save}/{obj_name}_{date}" - -#: FlatCAMApp.py:10231 -#| msgid "Save Project cancelled." +#: FlatCAMApp.py:10264 msgid "Save Object PDF cancelled." msgstr "Save Object PDF cancelled." -#: FlatCAMApp.py:10269 +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "Exporting SVG" -#: FlatCAMApp.py:10313 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "SVG file exported to" -#: FlatCAMApp.py:10338 +#: FlatCAMApp.py:10371 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:10484 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "Excellon file exported to" -#: FlatCAMApp.py:10493 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "Exporting Excellon" -#: FlatCAMApp.py:10499 FlatCAMApp.py:10507 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "Could not export Excellon file." -#: FlatCAMApp.py:10623 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "Gerber file exported to" -#: FlatCAMApp.py:10631 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "Exporting Gerber" -#: FlatCAMApp.py:10637 FlatCAMApp.py:10645 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "Could not export Gerber file." -#: FlatCAMApp.py:10679 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "DXF file exported to" -#: FlatCAMApp.py:10685 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "Exporting DXF" -#: FlatCAMApp.py:10690 FlatCAMApp.py:10697 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "Could not export DXF file." -#: FlatCAMApp.py:10720 FlatCAMApp.py:10763 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1288,85 +1266,85 @@ msgstr "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" -#: FlatCAMApp.py:10730 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "Importing SVG" -#: FlatCAMApp.py:10741 FlatCAMApp.py:10783 FlatCAMApp.py:10842 -#: FlatCAMApp.py:10909 FlatCAMApp.py:10972 FlatCAMApp.py:11039 -#: FlatCAMApp.py:11077 flatcamTools/ToolImage.py:298 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 +#: FlatCAMApp.py:10942 FlatCAMApp.py:11005 FlatCAMApp.py:11072 +#: FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 #: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Opened" -#: FlatCAMApp.py:10772 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "Importing DXF" -#: FlatCAMApp.py:10808 FlatCAMApp.py:10998 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "Failed to open file" -#: FlatCAMApp.py:10811 FlatCAMApp.py:11001 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "Failed to parse file" -#: FlatCAMApp.py:10816 FlatCAMApp.py:10877 FlatCAMApp.py:11006 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 #: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 #: flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "An internal error has occurred. See shell.\n" -#: FlatCAMApp.py:10823 +#: FlatCAMApp.py:10856 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "Object is not Gerber file or empty. Aborting object creation." -#: FlatCAMApp.py:10828 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "Opening Gerber" -#: FlatCAMApp.py:10835 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." msgstr " Open Gerber failed. Probable not a Gerber file." -#: FlatCAMApp.py:10867 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "This is not Excellon file." -#: FlatCAMApp.py:10871 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "Cannot open file" -#: FlatCAMApp.py:10891 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "No geometry found in file" -#: FlatCAMApp.py:10894 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "Opening Excellon." -#: FlatCAMApp.py:10901 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Open Excellon file failed. Probable not an Excellon file." -#: FlatCAMApp.py:10932 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "Reading GCode file" -#: FlatCAMApp.py:10939 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "Failed to open" -#: FlatCAMApp.py:10947 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "This is not GCODE" -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "Opening G-Code." -#: FlatCAMApp.py:10961 +#: FlatCAMApp.py:10994 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1378,70 +1356,67 @@ msgstr "" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" -#: FlatCAMApp.py:11020 -#| msgid "Object is not Gerber file or empty. Aborting object creation." +#: FlatCAMApp.py:11053 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "Object is not HPGL2 file or empty. Aborting object creation." -#: FlatCAMApp.py:11025 -#| msgid "Opening Gerber" +#: FlatCAMApp.py:11058 msgid "Opening HPGL2" msgstr "Opening HPGL2" -#: FlatCAMApp.py:11032 -#| msgid " Open Gerber failed. Probable not a Gerber file." +#: FlatCAMApp.py:11065 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " Open HPGL2 failed. Probable not a HPGL2 file." -#: FlatCAMApp.py:11053 +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "Opening TCL Script..." -#: FlatCAMApp.py:11061 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "TCL script file opened in Code Editor." -#: FlatCAMApp.py:11064 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "Failed to open TCL Script." -#: FlatCAMApp.py:11092 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "Opening FlatCAM Config file." -#: FlatCAMApp.py:11120 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "Failed to open config file" -#: FlatCAMApp.py:11146 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "Loading Project ... Please Wait ..." -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "Opening FlatCAM Project file." -#: FlatCAMApp.py:11161 FlatCAMApp.py:11179 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "Failed to open project file" -#: FlatCAMApp.py:11213 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "Loading Project ... restoring" -#: FlatCAMApp.py:11222 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "Project loaded from" -#: FlatCAMApp.py:11285 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "Redrawing all objects" -#: FlatCAMApp.py:11317 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "Available commands:\n" -#: FlatCAMApp.py:11319 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1453,51 +1428,51 @@ msgstr "" "Type help for usage.\n" " Example: help open_gerber" -#: FlatCAMApp.py:11469 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "Shows list of commands." -#: FlatCAMApp.py:11531 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "Failed to load recent item list." -#: FlatCAMApp.py:11539 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "Failed to parse recent item list." -#: FlatCAMApp.py:11550 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "Failed to load recent projects item list." -#: FlatCAMApp.py:11558 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "Failed to parse recent project item list." -#: FlatCAMApp.py:11617 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "Clear Recent projects" -#: FlatCAMApp.py:11640 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "Clear Recent files" -#: FlatCAMApp.py:11657 flatcamGUI/FlatCAMGUI.py:1133 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "Shortcut Key List" -#: FlatCAMApp.py:11731 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Selected Tab - Choose an Item from Project Tab" -#: FlatCAMApp.py:11732 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "Details" -#: FlatCAMApp.py:11734 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "The normal flow when working in FlatCAM is the following:" -#: FlatCAMApp.py:11735 +#: FlatCAMApp.py:11768 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 " @@ -1507,7 +1482,7 @@ msgstr "" "FlatCAM using either the toolbars, key shortcuts or even dragging and " "dropping the files on the GUI." -#: FlatCAMApp.py:11738 +#: FlatCAMApp.py:11771 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 " @@ -1517,7 +1492,7 @@ msgstr "" "drag and drop of the file into the FLATCAM GUI or through the menu (or " "toolbar) actions offered within the app." -#: FlatCAMApp.py:11741 +#: FlatCAMApp.py:11774 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 " @@ -1529,7 +1504,7 @@ msgstr "" "the Project Tab, SELECTED TAB will be updated with the object properties " "according to its kind: Gerber, Excellon, Geometry or CNCJob object." -#: FlatCAMApp.py:11745 +#: FlatCAMApp.py:11778 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 " @@ -1543,7 +1518,7 @@ msgstr "" "object on the canvas will bring the SELECTED TAB and populate it even if it " "was out of focus." -#: FlatCAMApp.py:11749 +#: FlatCAMApp.py:11782 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" @@ -1551,7 +1526,7 @@ msgstr "" "You can change the parameters in this screen and the flow direction is like " "this:" -#: FlatCAMApp.py:11750 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1563,7 +1538,7 @@ msgstr "" "CNCJob --> CNCJob Object --> Verify GCode (through Edit CNC Code) and/or " "append/prepend to GCode (again, done in SELECTED TAB) --> Save GCode." -#: FlatCAMApp.py:11754 +#: FlatCAMApp.py:11787 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1571,23 +1546,23 @@ 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:11815 +#: FlatCAMApp.py:11848 msgid "Failed checking for latest version. Could not connect." msgstr "Failed checking for latest version. Could not connect." -#: FlatCAMApp.py:11823 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "Could not parse information about latest version." -#: FlatCAMApp.py:11834 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "FlatCAM is up to date!" -#: FlatCAMApp.py:11839 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "Newer Version Available" -#: FlatCAMApp.py:11840 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1595,63 +1570,63 @@ msgstr "" "There is a newer version of FlatCAM available for download:\n" "\n" -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:11875 msgid "info" msgstr "info" -#: FlatCAMApp.py:11921 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "All plots disabled." -#: FlatCAMApp.py:11928 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "All non selected plots disabled." -#: FlatCAMApp.py:11935 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "All plots enabled." -#: FlatCAMApp.py:11942 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "Selected plots enabled..." -#: FlatCAMApp.py:11951 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "Selected plots disabled..." -#: FlatCAMApp.py:11970 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "Enabling plots ..." -#: FlatCAMApp.py:12010 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "Disabling plots ..." -#: FlatCAMApp.py:12032 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "Working ..." -#: FlatCAMApp.py:12071 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "Saving FlatCAM Project" -#: FlatCAMApp.py:12091 FlatCAMApp.py:12129 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "Project saved to" -#: FlatCAMApp.py:12111 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "Failed to verify project file" -#: FlatCAMApp.py:12111 FlatCAMApp.py:12120 FlatCAMApp.py:12132 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "Retry to save it." -#: FlatCAMApp.py:12120 FlatCAMApp.py:12132 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "Failed to parse saved project file" -#: FlatCAMApp.py:12248 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "The user requested a graceful exit of the current task." @@ -1874,7 +1849,6 @@ msgid "ExtraCut" msgstr "ExtraCut" #: FlatCAMCommon.py:533 -#| msgid "Length" msgid "E-Cut Length" msgstr "E-Cut Length" @@ -2103,12 +2077,6 @@ msgstr "" "ensure a complete isolation." #: FlatCAMCommon.py:624 -#| 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." msgid "" "Extra Cut length.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2313,12 +2281,10 @@ msgid "Offsetting..." msgstr "Offsetting..." #: FlatCAMObj.py:274 FlatCAMObj.py:279 -#| msgid "Scale action was not executed." msgid "Scaling could not be executed." msgstr "Scaling could not be executed." #: FlatCAMObj.py:283 FlatCAMObj.py:291 -#| msgid "Scale on the" msgid "Scale done." msgstr "Scale done." @@ -2394,7 +2360,6 @@ msgid "List of single polygons is empty. Aborting." msgstr "List of single polygons is empty. Aborting." #: FlatCAMObj.py:1227 -#| msgid "Polygon Selection" msgid "No polygon in selection." msgstr "No polygon in selection." @@ -2499,13 +2464,13 @@ msgstr "Copy" #: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 -#: flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 -#: flatcamEditors/FlatCAMGeoEditor.py:1242 +#: flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 +#: flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 +#: flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 +#: flatcamEditors/FlatCAMGeoEditor.py:1240 #: flatcamTools/ToolNonCopperClear.py:1057 #: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 #: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 @@ -2724,7 +2689,7 @@ msgstr "Apply Language ..." msgid "Object renamed from {old} to {new}" msgstr "Object renamed from {old} to {new}" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "Cause of error" @@ -3499,7 +3464,7 @@ msgid "Full Buffer" msgstr "Full Buffer" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1658 +#: flatcamEditors/FlatCAMGeoEditor.py:2758 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Buffer Tool" @@ -3507,9 +3472,9 @@ msgstr "Buffer Tool" #: flatcamEditors/FlatCAMGeoEditor.py:145 #: flatcamEditors/FlatCAMGeoEditor.py:162 #: flatcamEditors/FlatCAMGeoEditor.py:179 -#: flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 -#: flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 +#: flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 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." @@ -3546,13 +3511,10 @@ msgstr "" msgid "Overlap Rate" msgstr "Overlap Rate" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, python-format +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3561,9 +3523,6 @@ msgid "" "due of too many paths." msgstr "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3571,7 +3530,7 @@ msgstr "" "Higher values = slow processing and slow execution on CNC\n" "due of too many paths." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4126 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 #: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 #: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 #: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 @@ -3581,7 +3540,7 @@ msgstr "" msgid "Margin" msgstr "Margin" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4554 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3592,13 +3551,13 @@ msgstr "" "the edges of the polygon to\n" "be painted." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4139 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 #: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Method" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -3606,29 +3565,29 @@ msgstr "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4148 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 #: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Standard" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4149 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 #: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "Seed-based" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4150 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 #: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Straight lines" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "Connect:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4159 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 #: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" @@ -3638,11 +3597,11 @@ msgstr "" "Draw lines between resulting\n" "segments to minimize tool lifts." -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "Contour:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4170 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 #: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" @@ -3652,50 +3611,50 @@ msgstr "" "Cut around the perimeter of the polygon\n" "to trim rough edges." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1921 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Paint" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 #: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 #: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Paint Tool" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "Paint cancelled. No shape selected." -#: flatcamEditors/FlatCAMGeoEditor.py:599 -#: flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3140 +#: flatcamEditors/FlatCAMGeoEditor.py:597 +#: flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 +#: flatcamEditors/FlatCAMGeoEditor.py:2844 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Tools" -#: flatcamEditors/FlatCAMGeoEditor.py:610 -#: flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 #: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 #: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Transform Tool" -#: flatcamEditors/FlatCAMGeoEditor.py:611 -#: flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 #: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Rotate" -#: flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGrbEditor.py:5013 flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "Skew/Shear" -#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGrbEditor.py:2600 #: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 #: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 @@ -3705,12 +3664,12 @@ msgstr "Skew/Shear" msgid "Scale" msgstr "Scale" -#: flatcamEditors/FlatCAMGeoEditor.py:614 +#: flatcamEditors/FlatCAMGeoEditor.py:612 #: flatcamEditors/FlatCAMGrbEditor.py:5015 flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "Mirror (Flip)" -#: flatcamEditors/FlatCAMGeoEditor.py:615 +#: flatcamEditors/FlatCAMGeoEditor.py:613 #: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 #: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 #: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 @@ -3719,18 +3678,18 @@ msgstr "Mirror (Flip)" msgid "Offset" msgstr "Offset" -#: flatcamEditors/FlatCAMGeoEditor.py:628 +#: flatcamEditors/FlatCAMGeoEditor.py:626 #: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 #: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Editor" -#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGeoEditor.py:658 #: flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "Angle:" -#: flatcamEditors/FlatCAMGeoEditor.py:662 +#: flatcamEditors/FlatCAMGeoEditor.py:660 #: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" @@ -3744,7 +3703,7 @@ msgstr "" "Positive numbers for CW motion.\n" "Negative numbers for CCW motion." -#: flatcamEditors/FlatCAMGeoEditor.py:678 +#: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" @@ -3755,13 +3714,13 @@ msgstr "" "The point of reference is the middle of\n" "the bounding box for all selected shapes." -#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:699 #: flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "Angle X:" -#: flatcamEditors/FlatCAMGeoEditor.py:703 -#: flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 #: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 #: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 @@ -3773,13 +3732,13 @@ msgstr "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." -#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:712 #: flatcamEditors/FlatCAMGrbEditor.py:5115 flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "Skew X" -#: flatcamEditors/FlatCAMGeoEditor.py:716 -#: flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 #: flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" @@ -3791,33 +3750,33 @@ msgstr "" "The point of reference is the middle of\n" "the bounding box for all selected shapes." -#: flatcamEditors/FlatCAMGeoEditor.py:721 +#: flatcamEditors/FlatCAMGeoEditor.py:719 #: flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "Angle Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:734 +#: flatcamEditors/FlatCAMGeoEditor.py:732 #: flatcamEditors/FlatCAMGrbEditor.py:5135 flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "Skew Y" -#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGeoEditor.py:760 #: flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "Factor X:" -#: flatcamEditors/FlatCAMGeoEditor.py:764 +#: flatcamEditors/FlatCAMGeoEditor.py:762 #: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Factor for Scale action over X axis." -#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:772 #: flatcamEditors/FlatCAMGrbEditor.py:5175 flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "Scale X" -#: flatcamEditors/FlatCAMGeoEditor.py:776 -#: flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 #: flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" @@ -3829,28 +3788,28 @@ msgstr "" "The point of reference depends on \n" "the Scale reference checkbox state." -#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGeoEditor.py:779 #: flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "Factor Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:783 +#: flatcamEditors/FlatCAMGeoEditor.py:781 #: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Factor for Scale action over Y axis." -#: flatcamEditors/FlatCAMGeoEditor.py:793 +#: flatcamEditors/FlatCAMGeoEditor.py:791 #: flatcamEditors/FlatCAMGrbEditor.py:5194 flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "Scale Y" -#: flatcamEditors/FlatCAMGeoEditor.py:802 +#: flatcamEditors/FlatCAMGeoEditor.py:800 #: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Link" -#: flatcamEditors/FlatCAMGeoEditor.py:804 +#: flatcamEditors/FlatCAMGeoEditor.py:802 #: flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" @@ -3859,13 +3818,13 @@ msgstr "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." -#: flatcamEditors/FlatCAMGeoEditor.py:810 +#: flatcamEditors/FlatCAMGeoEditor.py:808 #: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Scale Reference" -#: flatcamEditors/FlatCAMGeoEditor.py:812 +#: flatcamEditors/FlatCAMGeoEditor.py:810 #: flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" @@ -3878,23 +3837,23 @@ msgstr "" "and the center of the biggest bounding box\n" "of the selected shapes when unchecked." -#: flatcamEditors/FlatCAMGeoEditor.py:840 +#: flatcamEditors/FlatCAMGeoEditor.py:838 #: flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "Value X:" -#: flatcamEditors/FlatCAMGeoEditor.py:842 +#: flatcamEditors/FlatCAMGeoEditor.py:840 #: flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "Value for Offset action on X axis." -#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:850 #: flatcamEditors/FlatCAMGrbEditor.py:5254 flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "Offset X" -#: flatcamEditors/FlatCAMGeoEditor.py:854 -#: flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 #: flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" @@ -3906,28 +3865,28 @@ msgstr "" "The point of reference is the middle of\n" "the bounding box for all selected shapes.\n" -#: flatcamEditors/FlatCAMGeoEditor.py:860 +#: flatcamEditors/FlatCAMGeoEditor.py:858 #: flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "Value Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:862 +#: flatcamEditors/FlatCAMGeoEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "Value for Offset action on Y axis." -#: flatcamEditors/FlatCAMGeoEditor.py:872 +#: flatcamEditors/FlatCAMGeoEditor.py:870 #: flatcamEditors/FlatCAMGrbEditor.py:5274 flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "Offset Y" -#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:901 #: flatcamEditors/FlatCAMGrbEditor.py:5305 flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "Flip on X" -#: flatcamEditors/FlatCAMGeoEditor.py:905 -#: flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 #: flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" @@ -3937,17 +3896,17 @@ msgstr "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." -#: flatcamEditors/FlatCAMGeoEditor.py:910 +#: flatcamEditors/FlatCAMGeoEditor.py:908 #: flatcamEditors/FlatCAMGrbEditor.py:5312 flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "Flip on Y" -#: flatcamEditors/FlatCAMGeoEditor.py:918 +#: flatcamEditors/FlatCAMGeoEditor.py:916 #: flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "Ref Pt" -#: flatcamEditors/FlatCAMGeoEditor.py:920 +#: flatcamEditors/FlatCAMGeoEditor.py:918 #: flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" @@ -3970,12 +3929,12 @@ msgstr "" "Or enter the coords in format (x, y) in the\n" "Point Entry field and click Flip on X(Y)" -#: flatcamEditors/FlatCAMGeoEditor.py:932 +#: flatcamEditors/FlatCAMGeoEditor.py:930 #: flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "Point:" -#: flatcamEditors/FlatCAMGeoEditor.py:934 +#: flatcamEditors/FlatCAMGeoEditor.py:932 #: flatcamEditors/FlatCAMGrbEditor.py:5336 flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -3986,7 +3945,7 @@ msgstr "" "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:944 +#: flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:5348 flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -3997,347 +3956,347 @@ msgstr "" "left click on canvas together with pressing\n" "SHIFT key. Then click Add button to insert." -#: flatcamEditors/FlatCAMGeoEditor.py:1059 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 #: flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "Transformation cancelled. No shape selected." -#: flatcamEditors/FlatCAMGeoEditor.py:1260 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 #: flatcamEditors/FlatCAMGrbEditor.py:5657 msgid "No shape selected. Please Select a shape to rotate!" msgstr "No shape selected. Please Select a shape to rotate!" -#: flatcamEditors/FlatCAMGeoEditor.py:1263 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 #: flatcamEditors/FlatCAMGrbEditor.py:5660 flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "Appying Rotate" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 #: flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "Done. Rotate completed." -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "Rotation action was not executed" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 #: flatcamEditors/FlatCAMGrbEditor.py:5715 msgid "No shape selected. Please Select a shape to flip!" msgstr "No shape selected. Please Select a shape to flip!" -#: flatcamEditors/FlatCAMGeoEditor.py:1312 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 #: flatcamEditors/FlatCAMGrbEditor.py:5718 flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "Applying Flip" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 #: flatcamEditors/FlatCAMGrbEditor.py:5758 flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "Flip on the Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 #: flatcamEditors/FlatCAMGrbEditor.py:5767 flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "Flip on the X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "Flip action was not executed" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 #: flatcamEditors/FlatCAMGrbEditor.py:5789 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:1370 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 #: flatcamEditors/FlatCAMGrbEditor.py:5792 flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "Applying Skew" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 #: flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "Skew on the X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "Skew on the Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "Skew action was not executed" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 #: flatcamEditors/FlatCAMGrbEditor.py:5854 msgid "No shape selected. Please Select a shape to scale!" msgstr "No shape selected. Please Select a shape to scale!" -#: flatcamEditors/FlatCAMGeoEditor.py:1418 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 #: flatcamEditors/FlatCAMGrbEditor.py:5857 flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "Applying Scale" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 #: flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "Scale on the X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 #: flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "Scale on the Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "Scale action was not executed" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 #: flatcamEditors/FlatCAMGrbEditor.py:5915 msgid "No shape selected. Please Select a shape to offset!" msgstr "No shape selected. Please Select a shape to offset!" -#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 #: flatcamEditors/FlatCAMGrbEditor.py:5918 flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "Applying Offset" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 #: flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "Offset on the X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 #: flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "Offset on the Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "Offset action was not executed" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 #: flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "Rotate ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1497 -#: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 +#: flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 #: flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 #: flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "Enter an Angle Value (degrees)" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 #: flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "Geometry shape rotate done" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "Geometry shape rotate cancelled" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 #: flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "Offset on X axis ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1516 -#: flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 +#: flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 #: flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "Enter a distance Value" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 #: flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "Geometry shape offset on X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "Geometry shape offset X cancelled" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 #: flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "Offset on Y axis ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1544 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 #: flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "Geometry shape offset on Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "Geometry shape offset on Y axis canceled" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 #: flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "Skew on X axis ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1561 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 #: flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "Geometry shape skew on X axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "Geometry shape skew on X axis canceled" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 #: flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "Skew on Y axis ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 #: flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "Geometry shape skew on Y axis done" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "Geometry shape skew on Y axis canceled" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 -#: flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 +#: flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "Click on Center point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1953 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 #: flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "Click on Perimeter point to complete ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "Done. Adding Circle completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2018 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 #: flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "Click on Start point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2020 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 #: flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "Click on Point3 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2022 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 #: flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "Click on Stop point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2027 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 #: flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "Click on Stop point to complete ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2029 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 #: flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "Click on Point2 to complete ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2031 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 #: flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "Click on Center point to complete ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "Direction: %s" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 #: flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Mode: Start -> Stop -> Center. Click on Start point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2056 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 #: flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2059 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 #: flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Mode: Center -> Start -> Stop. Click on Center point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "Done. Arc completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2217 -#: flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 +#: flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "Click on 1st corner ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "Click on opposite corner to complete ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "Done. Rectangle completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 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:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "Done. Polygon completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2317 -#: flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 +#: flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 #: flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "Backtracked one point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "Done. Path completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "No shape selected. Select a shape to explode" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "Done. Polygons exploded into lines." -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 msgid "MOVE: No shape selected. Select a shape to move" msgstr "MOVE: No shape selected. Select a shape to move" -#: flatcamEditors/FlatCAMGeoEditor.py:2520 -#: flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." msgstr " MOVE: Click on reference point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr " Click on destination point ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "Done. Geometry(s) Move completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "Done. Geometry(s) Copy completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -4345,94 +4304,94 @@ msgstr "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "No text to add." -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr " Done. Adding Text completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "Create buffer geometry ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2768 -#: flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 +#: flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "Buffer cancelled. No shape selected." -#: flatcamEditors/FlatCAMGeoEditor.py:2793 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 #: flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "Done. Buffer Tool completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "Done. Buffer Int Tool completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "Done. Buffer Ext Tool completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 #: flatcamEditors/FlatCAMGrbEditor.py:2087 msgid "Select a shape to act as deletion area ..." msgstr "Select a shape to act as deletion area ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2890 -#: flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 #: flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "Click to pick-up the erase shape..." -#: flatcamEditors/FlatCAMGeoEditor.py:2919 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 #: flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "Click to erase ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2949 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 #: flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "Done. Eraser tool action completed." -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "Create Paint geometry ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3006 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 #: flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "Shape transformations ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "Editing MultiGeo Geometry, tool" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "with diameter" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "Copy cancelled. No shape selected." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 #: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 #: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 #: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Click on target point." -#: flatcamEditors/FlatCAMGeoEditor.py:4330 -#: flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 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:4451 -#: flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 +#: flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -4440,57 +4399,57 @@ msgstr "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 -#: flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 +#: flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "Nothing selected for buffering." -#: flatcamEditors/FlatCAMGeoEditor.py:4466 -#: flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 +#: flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "Invalid distance for buffering." -#: flatcamEditors/FlatCAMGeoEditor.py:4490 -#: flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 +#: flatcamEditors/FlatCAMGeoEditor.py:4587 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:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "Full buffer geometry created." -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "Negative buffer value is not accepted." -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 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:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "Interior buffer geometry created." -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "Exterior buffer geometry created." -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "Nothing selected for painting." -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "Invalid value for" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -4498,7 +4457,7 @@ msgstr "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" -#: flatcamEditors/FlatCAMGeoEditor.py:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "Paint done." @@ -5296,7 +5255,6 @@ msgid "&DXF as Gerber Object ..." msgstr "&DXF as Gerber Object ..." #: flatcamGUI/FlatCAMGUI.py:172 -#| msgid "&SVG as Geometry Object ..." msgid "HPGL2 as Geometry Object ..." msgstr "HPGL2 as Geometry Object ..." @@ -5984,7 +5942,7 @@ msgid "Fiducials Tool" msgstr "Fiducials Tool" #: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 -#: flatcamTools/ToolCalibration.py:37 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 msgid "Calibration Tool" msgstr "Calibration Tool" @@ -6175,10 +6133,6 @@ msgstr "Snap to corner" msgid "Max. magnet distance" msgstr "Max. magnet distance" -#: flatcamGUI/FlatCAMGUI.py:909 flatcamGUI/FlatCAMGUI.py:1899 -msgid "Project" -msgstr "Project" - #: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Selected" @@ -6953,9 +6907,6 @@ msgid "Factor" msgstr "Factor" #: flatcamGUI/ObjectUI.py:102 -#| msgid "" -#| "Factor by which to multiply\n" -#| "geometric features of this object." msgid "" "Factor by which to multiply\n" "geometric features of this object.\n" @@ -6978,9 +6929,6 @@ msgid "Vector" msgstr "Vector" #: flatcamGUI/ObjectUI.py:130 -#| msgid "" -#| "Amount by which to move the object\n" -#| "in the x and y axes in (x, y) format." msgid "" "Amount by which to move the object\n" "in the x and y axes in (x, y) format.\n" @@ -7029,7 +6977,6 @@ msgid "Solid color polygons." msgstr "Solid color polygons." #: flatcamGUI/ObjectUI.py:192 -#| msgid "M-Color" msgid "Multi-Color" msgstr "Multi-Color" @@ -8106,7 +8053,6 @@ msgstr "" "ignore for any other cases." #: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 -#| msgid "Re-cut 1st pt." msgid "Re-cut" msgstr "Re-cut" @@ -8309,7 +8255,8 @@ msgstr "" msgid "Prepend to CNC Code" msgstr "Prepend to CNC Code" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3776 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 +#: flatcamGUI/PreferencesUI.py:3776 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8317,19 +8264,12 @@ msgstr "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3783 -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/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Append to CNC Code" -#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/PreferencesUI.py:3792 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 +#: flatcamGUI/PreferencesUI.py:3792 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8339,14 +8279,6 @@ msgstr "" "like to append to the generated file.\n" "I.e.: M2 (End of program)" -#: flatcamGUI/ObjectUI.py:1929 flatcamGUI/PreferencesUI.py:3800 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file. I.e.: M2 (End of program)" -msgstr "" -"Type here any G-Code commands you would like to append to the generated " -"file. I.e.: M2 (End of program)" - #: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "Toolchange G-Code" @@ -8374,18 +8306,29 @@ msgstr "" "having as template the 'Toolchange Custom' posprocessor file." #: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 +#| msgid "" +#| "Type here any G-Code commands you would like to be executed when " +#| "Toolchange event is encountered. This will constitute a Custom Toolchange " +#| "GCode, or a Toolchange Macro. 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." msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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 like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" @@ -8627,7 +8570,8 @@ msgstr "" msgid "Wk. Orientation" msgstr "Wk. Orientation" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" @@ -10815,24 +10759,6 @@ msgstr "Paint Tool Options" msgid "Parameters:" msgstr "Parameters:" -#: flatcamGUI/PreferencesUI.py:4534 flatcamTools/ToolPaint.py:221 -msgid "" -"How much (fraction) 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 "" -"How much (fraction) 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." - #: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 msgid "" @@ -11088,16 +11014,6 @@ msgstr "" msgid "Page Orientation" msgstr "Page Orientation" -#: flatcamGUI/PreferencesUI.py:4853 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" - #: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" msgstr "Page Size" @@ -11987,17 +11903,22 @@ msgid "Reference:" msgstr "Reference:" #: flatcamGUI/PreferencesUI.py:6126 +#| msgid "" +#| "- 'Itself' - the copper Thieving extent is based on the object that is " +#| "copper cleared.\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." msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is " -"copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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 that is " -"copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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." @@ -12015,13 +11936,13 @@ msgstr "Minimal" msgid "Box Type:" msgstr "Box Type:" -#: flatcamGUI/PreferencesUI.py:6140 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- '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." +"- 'Minimal' - the bounding box will be the convex hull shape." #: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" @@ -12039,15 +11960,15 @@ msgstr "Lines Grid" msgid "Fill Type:" msgstr "Fill Type:" -#: flatcamGUI/PreferencesUI.py:6160 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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" +"- '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." @@ -12165,15 +12086,19 @@ msgstr "Manual" msgid "Mode:" msgstr "Mode:" -#: flatcamGUI/PreferencesUI.py:6367 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 +#| msgid "" +#| "- 'Auto' - automatic placement of fiducials in the corners of the " +#| "bounding box.\n" +#| " - 'Manual' - manual placement of fiducials." msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." msgstr "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." #: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" @@ -12188,15 +12113,21 @@ msgid "Second fiducial" msgstr "Second fiducial" #: flatcamGUI/PreferencesUI.py:6381 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." 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" +"- '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" +"- '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/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 @@ -12290,7 +12221,6 @@ msgstr "" "(x, y) point will be used," #: flatcamGUI/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 -#| msgid "Second Point" msgid "Second point" msgstr "Second point" @@ -12305,12 +12235,10 @@ msgstr "" "- bottom-right -> the user will align the PCB horizontally" #: flatcamGUI/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 -#| msgid "Top Left" msgid "Top-Left" msgstr "Top-Left" #: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 -#| msgid "Bottom Right" msgid "Bottom-Right" msgstr "Bottom-Right" @@ -12482,16 +12410,18 @@ msgstr "" "The user needs to edit the resulting Excellon object and change the " "diameters to reflect the real diameters." -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 +#| msgid "" +#| "{e_code} Excellon Parser error.\n" +#| "Parsing Failed. Line {l_nr}: {line}\n" msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12573,22 +12503,18 @@ msgid "Gerber Rotate done." msgstr "Gerber Rotate done." #: flatcamParsers/ParseHPGL2.py:176 -#| msgid "Gerber processing. Parsing" msgid "HPGL2 processing. Parsing" msgstr "HPGL2 processing. Parsing" #: flatcamParsers/ParseHPGL2.py:408 -#| msgid "Plot Line" msgid "HPGL2 Line" msgstr "HPGL2 Line" #: flatcamParsers/ParseHPGL2.py:408 -#| msgid "Gerber Line Content" msgid "HPGL2 Line Content" msgstr "HPGL2 Line Content" #: flatcamParsers/ParseHPGL2.py:409 -#| msgid "Gerber Parser ERROR" msgid "HPGL2 Parser ERROR" msgstr "HPGL2 Parser ERROR" @@ -12695,14 +12621,18 @@ msgid "STEP 1: Acquire Calibration Points" msgstr "STEP 1: Acquire Calibration Points" #: flatcamTools/ToolCalibration.py:175 +#| msgid "" +#| "Pick four points by clicking inside the drill holes.\n" +#| "Those four points should be in the four\n" +#| "(as much as possible) corners of the Excellon object." msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." msgstr "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." #: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 @@ -12884,9 +12814,6 @@ msgid "Generate Adjusted GCode" msgstr "Generate Adjusted GCode" #: flatcamTools/ToolCalibration.py:605 -#| msgid "" -#| "Generate verification GCode file adjusted with\n" -#| "the factors above." msgid "" "Generate verification GCode file adjusted with\n" "the factors set above.\n" @@ -12958,10 +12885,6 @@ msgstr "Reset Tool" msgid "Will reset the tool parameters." msgstr "Will reset the tool parameters." -#: flatcamTools/ToolCalibration.py:762 -msgid "Calibrate Tool" -msgstr "Calibrate Tool" - #: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "Tool initialized" @@ -12975,17 +12898,18 @@ msgid "Get First calibration point. Bottom Left..." msgstr "Get First calibration point. Bottom Left..." #: flatcamTools/ToolCalibration.py:906 -#| msgid "Copy cancelled. No shape selected." msgid "Cancelled by user request." msgstr "Cancelled by user request." #: flatcamTools/ToolCalibration.py:912 -msgid "Get Second calibration point. Bottom Right..." -msgstr "Get Second calibration point. Bottom Right..." +#| msgid "Get Second calibration point. Bottom Right..." +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "Get Second calibration point. Bottom Right (Top Left)..." #: flatcamTools/ToolCalibration.py:916 -msgid "Get Third calibration point. Top Left..." -msgstr "Get Third calibration point. Top Left..." +#| msgid "Get Third calibration point. Top Left..." +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "Get Third calibration point. Top Left (Bottom Right)..." #: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." @@ -12996,8 +12920,9 @@ msgid "Done. All four points have been acquired." msgstr "Done. All four points have been acquired." #: flatcamTools/ToolCalibration.py:955 -msgid "Verification GCode for FlatCAM Calibrate Tool" -msgstr "Verification GCode for FlatCAM Calibrate Tool" +#| msgid "Verification GCode for FlatCAM Calibrate Tool" +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "Verification GCode for FlatCAM Calibration Tool" #: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" @@ -13026,16 +12951,21 @@ msgstr "" "and the copper traces in the Gerber file." #: flatcamTools/ToolCopperThieving.py:131 +#| msgid "" +#| "- 'Itself' - the copper thieving extent is based on the object that is " +#| "copper cleared.\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." msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is " -"copper cleared.\n" +"- '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 that is " -"copper cleared.\n" +"- '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 " @@ -13079,26 +13009,6 @@ msgstr "Ref. Object" 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:175 -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." - -#: flatcamTools/ToolCopperThieving.py:197 -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." - #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" msgstr "Insert Copper thieving" @@ -13810,10 +13720,19 @@ msgstr "MEASURING: Click on the Start point ..." msgid "MEASURING: Click on the Destination point ..." msgstr "MEASURING: Click on the Destination point ..." -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "MEASURING" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +#| msgid "Geo Result" +msgid "Result" +msgstr "Result" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +#| msgid "Distance Tool" +msgid "Distance" +msgstr "Distance" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -13870,11 +13789,11 @@ msgstr "" 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:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "Objects intersects or touch at" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "Jumped to the half point between the two selected objects" @@ -13902,6 +13821,16 @@ msgstr "Top Right" msgid "Second Point" msgstr "Second Point" +#: 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:258 msgid "Copper Gerber" msgstr "Copper Gerber" @@ -14097,7 +14026,6 @@ 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:673 -#| msgid "No object selected." msgid "No FlatCAM object selected." msgstr "No FlatCAM object selected." @@ -16429,6 +16357,101 @@ 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." +#, python-brace-format +#~ msgid "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" +#~ msgstr "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" + +#, python-brace-format +#~ msgid "[selected]{name} selected" +#~ msgstr "[selected]{name} selected" + +#, python-brace-format +#~ msgid "{l_save}/Project_{date}" +#~ msgstr "{l_save}/Project_{date}" + +#, python-brace-format +#~| msgid "{l_save}/Project_{date}" +#~ msgid "{l_save}/{obj_name}_{date}" +#~ msgstr "{l_save}/{obj_name}_{date}" + +#, python-format +#~ msgid "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." +#~ msgstr "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." + +#~ msgid "" +#~ "Type here any G-Code commands you would like to 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." + +#~ msgid "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. I.e.: M2 (End of program)" +#~ msgstr "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. I.e.: M2 (End of program)" + +#~ msgid "" +#~ "Can be:\n" +#~ "- Portrait\n" +#~ "- Lanscape" +#~ msgstr "" +#~ "Can be:\n" +#~ "- Portrait\n" +#~ "- Lanscape" + +#~ msgid "" +#~ "- 'Rectangular' - the bounding box will be of rectangular shape.\n" +#~ " - 'Minimal' - the bounding box will be the convex hull shape." +#~ msgstr "" +#~ "- 'Rectangular' - the bounding box will be of rectangular shape.\n" +#~ " - 'Minimal' - the bounding box will be the convex hull shape." + +#~ msgid "" +#~ "- 'Solid' - copper thieving will be a solid polygon.\n" +#~ " - 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +#~ "- 'Squares Grid' - the empty area will be filled with a pattern of " +#~ "squares.\n" +#~ "- 'Lines Grid' - the empty area will be filled with a pattern of lines." +#~ msgstr "" +#~ "- 'Solid' - copper thieving will be a solid polygon.\n" +#~ " - 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" +#~ "- 'Squares Grid' - the empty area will be filled with a pattern of " +#~ "squares.\n" +#~ "- 'Lines Grid' - the empty area will be filled with a pattern of lines." + +#~ msgid "Calibrate Tool" +#~ msgstr "Calibrate Tool" + +#, python-brace-format +#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#~ msgstr "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" + #~ msgid "Paint Area" #~ msgstr "Paint Area" diff --git a/locale/es/LC_MESSAGES/strings.mo b/locale/es/LC_MESSAGES/strings.mo index 98b474021477d87a7b99728d9c569303788d17f5..51c80ec8f3d9d7c2e19a7f542bd0ffad066ae8b1 100644 GIT binary patch delta 62921 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

FNh)3G0ZLv_4wb+atjA0nc}q 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

{jD99J-}gDf3YtG8 zz&|ec$SRu51^hk!Fmfv>$b*Vh*4=$U{x!G-G~P?>oW>t=1ZohUMtnCak`tb)-lgYq z6r9_sFP#K%o)VV;l#3zO11UvZq_|#BRf*?7MRrlVnRt@c6{B$xZRACGFS}r(XcCtq zxRcuQimgYz_xLN|71qiS2T5GQMnSv_upfsrKLLNEz}4%po2 zY1UcD)dLgFdNwN3iJVA#YM$si8+}GYEvP(tdo6$Xea(^cGREZ z8rpaPP1oX2A~%Bd-{9B7kqMkncCgM$ZWc8`1gB{30FCn#3!`6C9l|L^^$FN05Sd9L z0e=|NH_+Hq8f>L-Gx>OOM_Grn&WfH#{b|q#jL2@?b!**77VyVCpI8Tw=>)q!8cB34 zEFuf=YlD6O%YAe!z5})#=x^k^GsV}+_L7>OY<~ywj#7+_q-Gj?B6rC7q&wK%>f7a! zMr0nrSqc{4AM#g#%Aw2Azsdgv;Uz76qgJpYPBxK~*h&VfOKpF!jfnk4T`vajOZ*W2 zmtd}vZ;n=EohYwZ_v46ML5~A`jlDtPRqR-Zf^@K2_-Ba6f+zg1G}6@)8i-V(;Wv63n6?FO)|i;v(CXygv3Ix{#p;cvGgUVE$%p zrI}CuA@+;bNX#GZ$#8#A%yH~R2JsyKuSg7LS4{!!#C}2Y1zLr|>gW%|egM3Xbv7k< z!+I?EA~fRP9+;-FLy`O`nzm;B8lCD*nKq}$NhpK7V^M~k?4r0RL}!%zx)wag@5TBX z251B3wCqY7ZBR@OY)L(8-!hO$cW`4AC;qn#KbPDE)}7&8sJOfGj@5rleg=}Ssl`Jg zau4!43?MQV`=b_{z%^t2CGqeS&DyihNNzuNziw!T+I$>=^UC#6j)wF%16-hhJrHg| zFVlQK+J?MHc|CNm873{*&-m}CYt7nDvx3BT$I%Pg9*?kr@_?47pYHv z2=RFDhLTJ@Sj<=8Xd2ztCSO3ZMc2_3Mw2T@gDDU!17A*aLK?=-qI5{{vyjgYZ!WNJ z$@P{XGL0chQg@X2F)(H2l|}_`&T~0}sZ}8`mN1B^}ielXm$t#cXG#CKj6@YjO)U4$^4xJXNFJf49rlbcWMwKh8DL2x5v zkZs`7V-JyA2;W)oJ=oX+YG%s$cY)w?h@EI-lD`7npiLG)^b&$i*e>Kn3RAd+ni5{u z)B$V@Vj?-Q6|o=Sm_mGl4&)|Q4(?nu9>KaVYXj_b&-q8-BTjpgoluc<6u!XjLTl6P z1Ct3a6QOXqDctx$JlkK$RZua>v6jwznJ zjs(WkTP{={vEB>OWs0{Ei(wrIzBh+fBXxFTql zOsqS6g;D-$*)$iv&R~|vD~IzUJl2njJIUsLF!8n3j z0lp;`3CJfwI^apQ5#$HxfTsYBpso=0ogo+bjvVuto^o*!o_56VqEEqW6K;BZ>p^n+ zI|N`0&R>8RDM5A!ivT{Qez3417GguN=^+`(&>{`c3~-DDbD4ZD#d?xlEJyv|JBt>B zuLk}yYJ0-*k39ZQU>cEFB`nA;y8~_m>2(US0ldRH733nnVQ=6MrO{{nK=6&U_9E-_ z(h*E=>i2;cxd&e%{1D<9z%G^hdyzsUBC(YqYDKIQAd!)PzLmp;6*-R`P4OS( zzg5y~#MfzFFrf^P4u2r|D-7~nbCrnyK%bRhK2qP6T+%~8W26eX261N{s4ajrDM-%{ z|B8HbNZymHrMcGl-=GHd>9w{Nd66%$A=rh~Jp(fw|2lOAhz%h2ZEElRk0~oti4+E4 zhGaeZ0|1e)h&7^k9sU`L^E0(Y8(m`f_tfrC{|;D@+r*!Em!8WZn_qA!R3GEJt@B#MHH#FkU^+zT=Nsso9;NE=oLQ;B9GZCMwC{2ui?s0(G#1}SPL zvyKH9L!TUAPNAOt-vaED&5$jjFdu;kCH@s_hTHM~xq%U^MIB7+@A;JFrVBHo&~bpMW1o zez+2}0&ge&C9$LAIw;R>YQn($&7i+{vEJh!4AJjs69u-TxF2AVb;LHZ_J_13hrNY2 zZ0fFgapP#>lLFvG)=<|B9+57}TZF5}AI;AI>%lcmL;o)z3I_O{f|Buhp zZ}EF!58#i|CX%ZRSy{b3$V^38e?l{-7*KE`Wfb?&>w2$$7s0peeugFs(YywJO|&EH zM_7?Un(u+l4f%3%ZPDYB)Pd$P%qVtPA51I*Khqk4e5dO~9jpd6X|y_xDH7>`9gJ-V zk%PuNXz+_3-l`C8!k>tWv;sR{8^@$LB7df6D!6*!>!diEZs`>e&^}?1Gud_JpxM3r zp}A;s(lvL^lH_L!#sCeG=@$`bUKIx5v5cQLdp*dt85~-PLD+Gb}D3BHH7{ z+a1y2_5`~l-Wh8rRx-YjAO~>R955p z9`ikm@y9;%S*x+_pu`uQGM`LkEco6$*PO0g*pN7Th1fXzptwMzcvavRNFng{s#M>)csT$S#C_vRw=2H48F{ob1$?t$;k^^7;~%|U66a(Iv<$Qu6Th@P z&Xm+G)?zVi&Z|vS}$>!Izfg?IDBHR&fALNR$M>_0bLmZKw^N~R!J-6F9SAa9x9_fm; zI|p!+j<-8GC5d=XLzkYFfyU|mmOAO&?@wCNnS%|#Q*FJ4a+h zxRG4Q>NXoAiYjqAm&`K(69($*aQMrZ}=1xrAa5PPGL7A-3V#loUb_Cik-1>-aDW;SD?|Yvh{3cqkbc++27dK z(mF4V(WjHO4|glwtxIwmi{h*YtqmH6Hf_-K_}o^$^V1RT`oEo`5srV)(GKy}wdvi7 z6RZV|YZI*3^Xyq=-H>X}M(cK~aeIsPfz^1t!+OPLY}##2^f#s)wVqCGOh0Q)Z^_iw z8Rm+KbHvyyaFda*`kfnlWk)y?(EZSo8A1JLMr#IX|_!6 zG}CRJ=FhUFGxkllC8sxLF1EF^7{iv?9$JjiD{Vp9{vYQohcn1~CWUdwzy|)~#N`m` zscZk=bJy-YdF}tFv-jV+0)^}RSK)uOb#LEoD{lO@+g8?W6g6z|mZX1AT{%@b5Rp7k zaZ4S}j4}V7&w&9AC4PKmWJD~de_uyrhelp< to get started\n" "\n" @@ -58,12 +58,13 @@ msgstr "" "Escriba >ayuda< para comenzar\n" "\n" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "Proyecto nuevo: no guardado" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 +#: FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -71,135 +72,132 @@ msgstr "" "Se inició la inicialización del lienzo.\n" "La inicialización del lienzo terminó en" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "Ejecutando Tcl Script ..." -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 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." -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "Abierto cancelado." -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "El archivo de configuración abierto falló." -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "Error al abrir el archivo de script." -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "Abrir archivo Excellon falló." -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "Error al abrir el archivo GCode." -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "Error al abrir el archivo Gerber." -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Seleccione un objeto Geometry, Gerber o Excellon para editar." -#: FlatCAMApp.py:3201 -#, fuzzy -#| msgid "" -#| "Simultanoeus editing of tools geometry in a MultiGeo Geometry is not " -#| "possible.\n" -#| "Edit only one geometry at a time." +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" "Edit only one geometry at a time." msgstr "" -"La edición simultánea de la geometría de herramientas en una Geometría Geo " -"múltiple no es posible.\n" -"Editar solo una geometría a la vez." +"La edición simultánea de la geometría de herramientas en una Geometría " +"MultiGeo no es posible.\n" +"Edite solo una geometría a la vez." -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "Editor está activado ..." -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "Quieres guardar el objeto editado?" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "Cerrar Editor" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Sí" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "No" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Cancelar" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "Objeto vacío después de editar." -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Seleccione un objeto Gerber, Geometry o Excellon para actualizar." -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "se actualiza, volviendo a la aplicación ..." -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "No se pudo cargar el archivo predeterminado." -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "Error al analizar el archivo predeterminado." -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "Importar preferencias de FlatCAM" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "Importación de preferencias de FlatCAM cancelada." -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "Valores predeterminados importados de" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "Exportar preferencias de FlatCAM" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "Exportación de preferencias de FlatCAM cancelada." -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 -#: FlatCAMApp.py:10375 FlatCAMApp.py:10514 FlatCAMCommon.py:378 -#: FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 +#: FlatCAMApp.py:10509 FlatCAMApp.py:10648 FlatCAMCommon.py:378 +#: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -208,138 +206,101 @@ msgstr "" "Lo más probable es que otra aplicación mantenga el archivo abierto y no " "accesible." -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "No se pudo cargar el archivo de preferencias." -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "Error al escribir los valores predeterminados en el archivo." -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "Preferencias exportadas a" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "Carpeta de preferencias de FlatCAM abierta." -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "Error al abrir archivos recientes para escritura." -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "Error al abrir el archivo de proyectos recientes para escribir." -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 msgid "An internal error has ocurred. See shell.\n" msgstr "" "Ha ocurrido un error interno. Ver caparazón.\n" "\n" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" "\n" msgstr "El objeto ({kind}) falló porque: {error}\n" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "Convertir unidades a " -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" -msgstr "" +msgstr "CREA UN NUEVO SCRIPT FLATCAM TCL" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" -msgstr "" +msgstr "TCL Tutorial está aquí" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" -msgstr "" +msgstr "Lista de comandos de FlatCAM" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 -#, python-brace-format -msgid "" -"[selected] {kind} created/selected: {name}" -msgstr "" -"[selected] {kind} creado / seleccionado: " -"{name} " +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" +msgstr "creado / seleccionado" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Trazado" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "Sobre FlatCAM" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabricación de placa de circuito impreso asistida por computadora 2D" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "Desarrollo" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "DESCARGAR" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "Rastreador de problemas" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "Cerca" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" -msgstr "" +msgstr "Licenciado bajo la licencia MIT" -#: FlatCAMApp.py:4448 -#, fuzzy -#| msgid "" -#| "\n" -#| "Licensed under the MIT license:\n" -#| "http://www.opensource.org/licenses/mit-license.php\n" -#| "\n" -#| "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:4483 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -364,10 +325,6 @@ msgid "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." msgstr "" -"\n" -"Licenciado bajo la licencia MIT:\n" -"http://www.opensource.org/licenses/mit-license.php\n" -"\n" "Por la presente se otorga permiso, sin cargo, a cualquier persona que " "obtenga una copia\n" "de este software y los archivos de documentación asociados (el \"Software" @@ -393,76 +350,76 @@ msgstr "" "FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRAS OFERTAS EN\n" "EL SOFTWARE." -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4505 msgid "" -"Some of the icons used are from the following sources:
Icons by Icons8" +"Some of the icons used are from the following sources:
Icons by Icons8
Icons by oNline Web Fonts" msgstr "" "Algunos de los iconos utilizados son de las siguientes fuentes:
" -"Iconos creados por Freepikde www.flaticon.com
Iconos de Icons8" +"Iconos de Freepikde www.flaticon.com
Iconos de Icons8
Iconos de oNline Web Fonts" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "Pantalla de bienvenida" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "Programadores" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "Traductores" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4555 msgid "License" msgstr "Licencia" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "Atribuciones" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "Programador" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "Estado" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "Email" -#: FlatCAMApp.py:4558 -#, fuzzy -#| msgid "Maintainer >= 2019" +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" -msgstr "Mantenedor >= 2019" +msgstr "BETA Mantenedor >= 2019" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "Idioma" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "Traductor" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "Correcciones" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 -#: flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 +#: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Administrador de Marcadores" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -482,36 +439,36 @@ msgstr "" "Si no puede obtener información sobre FlatCAM beta\n" "use el enlace del canal de YouTube desde el menú Ayuda." -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "Sitio web alternativo" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "Preferencias guardadas." -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "No se pudo cargar el archivo de valores predeterminados de fábrica." -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "Error al analizar el archivo de valores predeterminados de fábrica." -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "" "Error al escribir los valores predeterminados de fábrica en el archivo." -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "Valores predeterminados de fábrica guardados." -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "La aplicación es guardar el proyecto. Por favor espera ..." -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -519,29 +476,29 @@ msgstr "" "Hay archivos / objetos modificados en FlatCAM.\n" "¿Quieres guardar el proyecto?" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Guardar cambios" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiones de archivo Excellon seleccionadas registradas con FlatCAM." -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensiones de archivo GCode seleccionadas registradas con FlatCAM." -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensiones de archivo Gerber seleccionadas registradas con FlatCAM." -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Se requieren al menos dos objetos para unirse. Objetos actualmente " "seleccionados" -#: FlatCAMApp.py:5445 +#: FlatCAMApp.py:5481 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 " @@ -557,124 +514,106 @@ msgstr "" "pueden perderse y el resultado puede no ser el esperado.\n" "Compruebe el GCODE generado." -#: FlatCAMApp.py:5457 -#, fuzzy -#| msgid "Done. Gerber editing finished." +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" -msgstr "La edición de gerber terminó." +msgstr "Multi Geo. Geometría fusionada terminada" -#: FlatCAMApp.py:5466 -#, fuzzy -#| msgid "G-Code parsing finished..." +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" -msgstr "Análisis de código G terminado ..." +msgstr "Geometría fusionada terminada" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Ha fallado. La unión de Excellon funciona solo en objetos de Excellon." -#: FlatCAMApp.py:5498 -#, fuzzy -#| msgid "Excellon editing finished." +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" -msgstr "Excelente edición terminada." +msgstr "Excellon fusión finalizada" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Ha fallado. La unión de Gerber funciona solo en objetos de Gerber." -#: FlatCAMApp.py:5526 -#, fuzzy -#| msgid "Done. Gerber editing finished." +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" -msgstr "La edición de gerber terminó." +msgstr "Gerber fusión finalizada" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "Ha fallado. Seleccione un objeto de Geometría y vuelva a intentarlo." -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "Se esperaba un FlatCAMGeometry, se obtuvo" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un objeto Geometry fue convertido al tipo MultiGeo." -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un objeto Geometry fue convertido al tipo SingleGeo." -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "(Escriba ayuda para empezar)" -#: FlatCAMApp.py:5799 -#, fuzzy -#| msgid "" -#| "Changing the units of the project causes all geometrical properties of " -#| "all objects to be scaled accordingly.\n" -#| "Continue?" +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" "\n" "Do you want to continue?" msgstr "" -"El cambio de las unidades del proyecto hace que todas las propiedades " -"geométricas de todos los objetos se escalen en consecuencia.\n" -"¿Continuar?" +"Cambiar las unidades del proyecto\n" +"escalará todos los objetos.\n" +"\n" +"¿Quieres continuar?" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "De acuerdo" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "Convertir unidades a" -#: FlatCAMApp.py:5865 -#, fuzzy -#| msgid " Units conversion cancelled." +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." -msgstr " Conversión de unidades cancelada." +msgstr "Conversión de unidades cancelada." -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "Tabulacion desmontables" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "Preferencias" -#: FlatCAMApp.py:6960 -#, fuzzy -#| msgid "Preferences saved." +#: FlatCAMApp.py:6996 msgid "Preferences applied." -msgstr "Preferencias guardadas." +msgstr "Preferencias aplicadas." -#: FlatCAMApp.py:7009 -#, fuzzy -#| msgid "Preferences edited but not saved." +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." -msgstr "Preferencias editadas pero no guardadas." +msgstr "Preferencias cerradas sin guardar." -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 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." -#: FlatCAMApp.py:7037 flatcamTools/ToolNonCopperClear.py:600 -#: flatcamTools/ToolPaint.py:510 flatcamTools/ToolSolderPaste.py:566 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 +#: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Añadiendo herramienta cancelada" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -682,11 +621,11 @@ msgstr "" "Agregar herramienta solo funciona cuando se selecciona Avanzado.\n" "Vaya a Preferencias -> General - Mostrar opciones avanzadas." -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "Eliminar objetos" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -694,107 +633,102 @@ msgstr "" "¿Estás seguro de que deseas eliminarlo permanentemente?\n" "los objetos seleccionados?" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "Objeto (s) eliminado" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "Ha fallado. Ningún objeto (s) seleccionado ..." -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "Guarda el trabajo en el Editor y vuelve a intentarlo ..." -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "Objeto eliminado" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "Haga clic para establecer el origen ..." -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "Establecer Origen ..." -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "Conjunto de origen" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "Salta a ..." -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "Introduzca las coordenadas en formato X, Y:" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erróneas. Introduzca las coordenadas en formato: X, Y" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 -#: flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 +#: flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 #: flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 #: flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "Hecho." -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 msgid "No object is selected. Select an object and try again." msgstr "" "Ningún objeto está seleccionado. Seleccione un objeto y vuelva a intentarlo." -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7667 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 ..." -#: FlatCAMApp.py:7629 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "La tarea actual se cerró correctamente a petición del usuario ..." -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "Preferencias editadas pero no guardadas." -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 -#: FlatCAMObj.py:4107 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMObj.py:4213 msgid "Tools Database" -msgstr "Datos de Herram" +msgstr "Base de Datos de Herramientas" -#: FlatCAMApp.py:7752 -#, fuzzy -#| msgid "Preferences edited but not saved." +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." -msgstr "Preferencias editadas pero no guardadas." - -#: FlatCAMApp.py:7776 -#, fuzzy -#| msgid "Tool added in Tool Table." -msgid "Tool from DB added in Tool Table." -msgstr "Herramienta añadida en la tabla de herramientas." - -#: FlatCAMApp.py:7778 -msgid "Adding tool from DB is not allowed for this object." msgstr "" +"Herramientas en la base de datos de herramientas editadas pero no guardadas." -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7820 +msgid "Tool from DB added in Tool Table." +msgstr "Herramienta de DB agregada en la Tabla de herramientas." + +#: FlatCAMApp.py:7822 +msgid "Adding tool from DB is not allowed for this object." +msgstr "No se permite agregar herramientas desde DB para este objeto." + +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -802,113 +736,107 @@ msgstr "" "Uno o más valores son cambiados.\n" "¿Quieres guardar las preferencias?" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Guardar Preferencias" -#: FlatCAMApp.py:7838 -#, fuzzy -#| msgid "" -#| "One or more values are changed.\n" -#| "Do you want to save the Preferences?" +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" msgstr "" -"Uno o más valores son cambiados.\n" -"¿Quieres guardar las preferencias?" +"Se editan una o más herramientas.\n" +"¿Desea actualizar la base de datos de herramientas?" -#: FlatCAMApp.py:7840 -#, fuzzy -#| msgid "Tool Data" +#: FlatCAMApp.py:7884 msgid "Save Tools Database" -msgstr "Datos de Herram" +msgstr "Guardar base de datos de herramientas" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Editor de código" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "Ningún objeto seleccionado para Voltear en el eje Y." -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "Voltear sobre el eje Y hecho." -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "La acción de voltear no se ejecutó." -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "Ningún objeto seleccionado para Voltear en el eje X." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "Voltear sobre el eje X hecho." -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "Ningún objeto seleccionado para rotar." -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "Transformar" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "Ingrese el valor del ángulo:" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "Rotación hecha." -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "El movimiento de rotación no se ejecutó." -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje X." -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "Sesgar en el eje X hecho." -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje Y." -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "Sesgar en el eje Y hecho." -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Seleccionar todo" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Deseleccionar todo" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "Todos los objetos están seleccionados." -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "La selección de objetos se borra." -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Grid On/Off" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1228 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 #: flatcamTools/ToolNonCopperClear.py:286 flatcamTools/ToolPaint.py:188 #: flatcamTools/ToolSolderPaste.py:121 flatcamTools/ToolSolderPaste.py:591 @@ -916,79 +844,78 @@ msgstr "Grid On/Off" msgid "Add" msgstr "Añadir" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 -#: flatcamGUI/FlatCAMGUI.py:1955 flatcamGUI/FlatCAMGUI.py:2279 -#: flatcamGUI/ObjectUI.py:1254 flatcamTools/ToolNonCopperClear.py:298 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 +#: flatcamGUI/FlatCAMGUI.py:1967 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/ObjectUI.py:1291 flatcamTools/ToolNonCopperClear.py:298 #: flatcamTools/ToolPaint.py:200 flatcamTools/ToolSolderPaste.py:127 #: flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "Borrar" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "Nueva rejilla ..." -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "Introduzca un valor de cuadrícula:" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 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." -#: FlatCAMApp.py:8347 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "Nueva rejilla" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "La rejilla ya existe" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "Agregar nueva cuadrícula cancelado" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" msgstr " El valor de cuadrícula no existe" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "Valor de cuadrícula eliminado" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "Eliminar el valor de cuadrícula cancelado" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "Lista de atajos de teclas" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" msgstr " Ningún objeto seleccionado para copiar su nombre" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "Nombre copiado en el portapapeles ..." -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Coordenadas copiadas al portapapeles." -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" -msgstr "[selected] {name} seleccionado" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +msgid "selected" +msgstr "seleccionado" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9040 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -998,342 +925,368 @@ msgstr "" "Crear un nuevo proyecto los borrará.\n" "¿Quieres guardar el proyecto?" -#: FlatCAMApp.py:9012 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "Nuevo proyecto creado" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Abrir gerber" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "Abriendo el archivo Gerber." -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "Abierto Gerber cancelado." -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Abierto Excellon" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "Abriendo el archivo Excellon." -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." msgstr " Abierto Excellon cancelado." -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "Código G abierto" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "Abriendo el archivo G-code." -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "Abierto G-Code cancelado." -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Proyecto abierto" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "Proyecto abierto cancelado." -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 +msgid "Open HPGL2" +msgstr "Abra HPGL2" + +#: FlatCAMApp.py:9357 +msgid "Opening HPGL2 file." +msgstr "Abrir el archivo HPGL2." + +#: FlatCAMApp.py:9362 +msgid "Open HPGL2 file cancelled." +msgstr "Abrir el archivo HPGL2 cancelado." + +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "Abrir archivo de configuración" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "Configuración abierta cancelada." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "Ningún objeto seleccionado." -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "Seleccione un objeto de geometría para exportar" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Solo se pueden utilizar objetos Geometry, Gerber y CNCJob." -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Exportar SVG" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr " Exportar SVG cancelado." -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9463 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" -#: FlatCAMApp.py:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "Exportar imagen PNG" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "Exportación PNG cancelada." -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "" "Ningún objeto seleccionado. Por favor, seleccione un objeto Gerber para " "exportar." -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "Ha fallado. Solo los objetos Gerber se pueden guardar como archivos " "Gerber ..." -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "Guardar el archivo fuente de Gerber" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "Guardar el archivo fuente de Gerber cancelado." -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "Ningún objeto seleccionado. Seleccione un objeto Script para exportar." -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9552 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 ..." -#: FlatCAMApp.py:9476 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "Guardar archivo fuente de script" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "Guardar archivo fuente de script cancelado." -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "" "Ningún objeto seleccionado. Seleccione un objeto de documento para exportar." -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9596 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 ..." -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "Guardar archivo fuente del Documento" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "Guardar Documento fuente archivo cancelado." -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "" "Ningún objeto seleccionado. Por favor, seleccione un objeto Excellon para " "exportar." -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Ha fallado. Solo los objetos Excellon se pueden guardar como archivos " "Excellon ..." -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "Guardar el archivo fuente de Excellon" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "Guardando el archivo fuente Excellon cancelado." -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "" "Ningún objeto seleccionado. Seleccione un objeto Excellon para exportar." -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "Exportar Excellon" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "Exportación Excellon cancelada." -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "Ningún objeto seleccionado. Seleccione un objeto Gerber para exportar." -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "Gerber Exportación" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "Exportación Gerber cancelada." -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "Solo se pueden utilizar objetos de Geometría." -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "Exportar DXF" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "Exportación DXF cancelada." -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "Importar SVG" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "Abrir SVG cancelado." -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "Importar DXF" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "Abrir DXF cancelado." -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "Ver el código fuente del objeto seleccionado." -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Cargando..." -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 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." -#: FlatCAMApp.py:9854 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "Editor de fuente" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 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." -#: FlatCAMApp.py:9913 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "Error al cargar el código fuente para el objeto seleccionado" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "Nuevo archivo de script TCL creado en Code Editor." -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "Abrir script TCL" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "Abrir el script TCL cancelado." -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "Ejecutando archivo FlatCAMScript." -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "Ejecutar script TCL" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "Ejecutar script TCL cancelado." -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10147 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ó." -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "Guardar proyecto como ..." -#: FlatCAMApp.py:10111 -#, python-brace-format -msgid "{l_save}/Project_{date}" -msgstr "{l_save}/Proyecto_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" +msgstr "Proyecto" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "Guardar Proyecto cancelado." -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10216 +msgid "The object is used by another application." +msgstr "El objeto es utilizado por otra aplicación." + +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 +msgid "Save Object as PDF ..." +msgstr "Guardar objeto como PDF ..." + +#: FlatCAMApp.py:10264 +msgid "Save Object PDF cancelled." +msgstr "Guardar objeto PDF cancelado." + +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "Exportando SVG" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "Archivo SVG exportado a" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10371 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." -#: FlatCAMApp.py:10383 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "Archivo Excellon exportado a" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "Exportando excellon" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "No se pudo exportar el archivo Excellon." -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "Archivo Gerber exportado a" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "Gerber exportador" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "No se pudo exportar el archivo Gerber." -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "Archivo DXF exportado a" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "Exportando DXF" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "No se pudo exportar el archivo DXF." -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1341,87 +1294,89 @@ msgstr "" "El tipo no soportado se elige como parámetro. Solo Geometría y Gerber son " "compatibles" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "Importando SVG" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 -#: FlatCAMApp.py:10808 FlatCAMApp.py:10871 FlatCAMApp.py:10909 -#: flatcamTools/ToolImage.py:298 flatcamTools/ToolPDF.py:225 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 +#: FlatCAMApp.py:10942 FlatCAMApp.py:11005 FlatCAMApp.py:11072 +#: FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 +#: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Abierto" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "Importando DXF" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "Fallo al abrir el archivo" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "Error al analizar el archivo" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 -#: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 +#: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 +#: flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "Ha ocurrido un error interno. Ver concha\n" -#: FlatCAMApp.py:10722 +#: FlatCAMApp.py:10856 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." -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "Apertura de gerber" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." msgstr " Gerber abierto fracasó. Probablemente no sea un archivo de Gerber." -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "Este no es un archivo de Excellon." -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "No se puede abrir el archivo" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "No se encontró geometría en el archivo" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "Apertura Excellon." -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "" "Error al abrir el archivo Excellon. Probablemente no sea un archivo de " "Excellon." -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "Lectura de archivo GCode" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "Falló al abrir" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "Esto no es GCODE" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "Apertura del código G." -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10994 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1433,55 +1388,69 @@ msgstr "" "Intento de crear un objeto FlatCAM CNCJob desde el archivo G-Code falló " "durante el procesamiento" -#: FlatCAMApp.py:10885 +#: FlatCAMApp.py:11053 +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." + +#: FlatCAMApp.py:11058 +msgid "Opening HPGL2" +msgstr "Apertura de HPGL2" + +#: FlatCAMApp.py:11065 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Abrir HPGL2 falló. Probablemente no sea un archivo HPGL2." + +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "Abriendo TCL Script ..." -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "Archivo de script TCL abierto en Code Editor." -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "Error al abrir la secuencia de comandos TCL." -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "Abrir el archivo de configuración de FlatCAM." -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "Error al abrir el archivo de configuración" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "Cargando proyecto ... Espere ..." -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "Apertura del archivo del proyecto FlatCAM." -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "Error al abrir el archivo del proyecto" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "Cargando Proyecto ... restaurando" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "Proyecto cargado desde" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "Redibujando todos los objetos" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "Comandos disponibles:\n" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1493,51 +1462,51 @@ msgstr "" "Escriba help para su uso.\n" "Ejemplo: help open_gerber" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "Muestra la lista de comandos." -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "Error al cargar la lista de elementos recientes." -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "Error al analizar la lista de elementos recientes." -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "Error al cargar la lista de elementos de proyectos recientes." -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "Error al analizar la lista de elementos del proyecto reciente." -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "Borrar proyectos recientes" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "Borrar archivos recientes" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr " Lista de teclas de acceso directo " -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Pestaña Seleccionada: elija un elemento de la pestaña Proyecto" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "Detalles" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "El flujo normal cuando se trabaja en FlatCAM es el siguiente:" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11768 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 " @@ -1547,7 +1516,7 @@ msgstr "" "en FlatCAM usando las barras de herramientas, atajos de teclado o incluso " "arrastrando y soltando los archivos en la GUI." -#: FlatCAMApp.py:11570 +#: FlatCAMApp.py:11771 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 " @@ -1558,7 +1527,7 @@ msgstr "" "mediante las acciones del menú (o barra de herramientas) que se ofrecen " "dentro de la aplicación." -#: FlatCAMApp.py:11573 +#: FlatCAMApp.py:11774 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 " @@ -1571,7 +1540,7 @@ msgstr "" "SELECCIONADA se actualizará con las propiedades del objeto según su tipo: " "Gerber, Objeto Excellon, Geometry o CNCJob." -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11778 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 " @@ -1585,7 +1554,7 @@ msgstr "" "el objeto en el lienzo traerá la PESTAÑA SELECCIONADA y la completará " "incluso si estaba fuera de foco." -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11782 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" @@ -1593,7 +1562,7 @@ msgstr "" "Puede cambiar los parámetros en esta pantalla y la dirección del flujo es " "así:" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1606,7 +1575,7 @@ msgstr "" "(mediante Edit CNC Código) y / o anexar / anteponer a GCode (nuevamente, " "hecho en la PESTAÑA SELECCIONADA) -> Guardar GCode." -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11787 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1615,23 +1584,23 @@ msgstr "" "menú en Ayuda -> Lista de atajos o mediante su propio atajo de teclado: " "F3 ." -#: FlatCAMApp.py:11647 +#: FlatCAMApp.py:11848 msgid "Failed checking for latest version. Could not connect." msgstr "Falló la comprobación de la última versión. No pudo conectar." -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "No se pudo analizar la información sobre la última versión." -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "FlatCAM está al día!" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "Nueva versión disponible" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1639,63 +1608,63 @@ msgstr "" "Hay una versión más nueva de FlatCAM disponible para descargar:\n" "\n" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11875 msgid "info" msgstr "info" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "Todas las parcelas con discapacidad." -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "Todas las parcelas no seleccionadas deshabilitadas." -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "Todas las parcelas habilitadas." -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "Parcelas seleccionadas habilitadas ..." -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "Parcelas seleccionadas deshabilitadas ..." -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "Habilitación de parcelas ..." -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "Inhabilitando parcelas ..." -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "Trabajando ..." -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "Proyecto FlatCAM de ahorro" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "Proyecto guardado en" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "Error al abrir el archivo de proyecto" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "Vuelva a intentar guardarlo." -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "Error al analizar el archivo por defecto" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "El usuario solicitó una salida elegante de la tarea actual." @@ -1751,43 +1720,33 @@ msgstr "Importar la lista" #: FlatCAMCommon.py:260 msgid "Title entry is empty." -msgstr "" +msgstr "La entrada del título está vacía." #: FlatCAMCommon.py:269 msgid "Web link entry is empty." -msgstr "" +msgstr "La entrada del enlace web está vacía." #: FlatCAMCommon.py:277 -#, fuzzy -#| msgid "Edit cancelled. New diameter value is already in the Tool Table." msgid "Either the Title or the Weblink already in the table." -msgstr "" -"Editar cancelado El nuevo valor del diámetro ya está en la Tabla de " -"herramientas." +msgstr "Ya sea el Título o el Enlace web ya en la tabla." #: FlatCAMCommon.py:297 -#, fuzzy -#| msgid "Bookmarks Manager" msgid "Bookmark added." -msgstr "Administrador de Marcadores" +msgstr "Marcador agregado." #: FlatCAMCommon.py:314 msgid "This bookmark can not be removed" msgstr "Este marcador no se puede eliminar" #: FlatCAMCommon.py:345 -#, fuzzy -#| msgid "Bookmarks limit" msgid "Bookmark removed." -msgstr "Límite de Marcadores" +msgstr "Marcador eliminado" #: FlatCAMCommon.py:360 -#, fuzzy -#| msgid "Import FlatCAM Bookmarks" msgid "Export FlatCAM Bookmarks" -msgstr "Importar marcadores de FlatCAM" +msgstr "Exportar marcadores de FlatCAM" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "Marcadores" @@ -1819,100 +1778,89 @@ msgstr "Se canceló la importación de marcadores de FlatCAM." msgid "Imported Bookmarks from" msgstr "Marcadores importados de" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 -#: FlatCAMObj.py:4484 FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 +#: FlatCAMObj.py:4590 FlatCAMObj.py:4599 msgid "Iso" msgstr "Aisl" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 -#: FlatCAMObj.py:3488 FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 +#: FlatCAMObj.py:3588 FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "Áspero" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "Terminar" #: FlatCAMCommon.py:513 -#, fuzzy -#| msgid "Tool Number" msgid "Tool Name" -msgstr "Numero de Herram" +msgstr "Nombre de Herram" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 -#: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 +#: flatcamGUI/ObjectUI.py:1256 flatcamTools/ToolNonCopperClear.py:271 #: flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "Diá. de Herram" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "Offset de Herram" #: FlatCAMCommon.py:516 -#, fuzzy -#| msgid "Tool Offset" msgid "Custom Offset" -msgstr "Offset de Herram" +msgstr "Desplazamiento person." -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 -#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3991 #: flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "Tipo de herram" #: FlatCAMCommon.py:518 -#, fuzzy -#| msgid "Tool change" msgid "Tool Shape" -msgstr "Cambio de herram" +msgstr "Forma de la herram" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 -#: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:1666 flatcamGUI/PreferencesUI.py:2334 +#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4036 +#: flatcamGUI/PreferencesUI.py:4290 flatcamGUI/PreferencesUI.py:5114 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:132 +#: flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "Corte Z" #: FlatCAMCommon.py:520 -#, fuzzy -#| msgid "Multi-Depth" msgid "MultiDepth" msgstr "Profund. Múlti" #: FlatCAMCommon.py:521 msgid "DPP" -msgstr "" +msgstr "PPP" #: FlatCAMCommon.py:522 msgid "V-Dia" -msgstr "" +msgstr "V-Dia" #: FlatCAMCommon.py:523 -#, fuzzy -#| msgid "Angle" msgid "V-Angle" -msgstr "Ángulo" +msgstr "V-Ángulo" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Viaje Z" #: FlatCAMCommon.py:525 msgid "FR" -msgstr "" +msgstr "FR" #: FlatCAMCommon.py:526 msgid "FR Z" -msgstr "" +msgstr "FR Z" #: FlatCAMCommon.py:527 -#, fuzzy -#| msgid "Feed Rate Rapids" msgid "FR Rapids" msgstr "Avance rápido" @@ -1920,76 +1868,69 @@ msgstr "Avance rápido" msgid "Spindle Speed" msgstr "Eje de velocidad" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "Habitar" #: FlatCAMCommon.py:530 -#, fuzzy -#| msgid "Dwell" msgid "Dwelltime" -msgstr "Habitar" +msgstr "Tiempo de perman." -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 -#: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 +#: flatcamGUI/PreferencesUI.py:2461 flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "Postprocesador" #: FlatCAMCommon.py:532 msgid "ExtraCut" -msgstr "" +msgstr "Corte extra" #: FlatCAMCommon.py:533 -#, fuzzy -#| msgid "Tool change" +msgid "E-Cut Length" +msgstr "Longitud de Corte extra" + +#: FlatCAMCommon.py:534 msgid "Toolchange" msgstr "Cambio de herram" -#: FlatCAMCommon.py:534 -#, fuzzy -#| msgid "Toolchange X,Y" +#: FlatCAMCommon.py:535 msgid "Toolchange XY" msgstr "Cambio de herra X, Y" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 -#: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 -#: flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 +#: flatcamGUI/PreferencesUI.py:3264 flatcamGUI/PreferencesUI.py:6503 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Cambio de herramienta Z" -#: FlatCAMCommon.py:536 -#, fuzzy -#| msgid "Start" -msgid "Start Z" -msgstr "Comienzo" - #: FlatCAMCommon.py:537 -#, fuzzy -#| msgid "End move Z" +msgid "Start Z" +msgstr "Comience Z" + +#: FlatCAMCommon.py:538 msgid "End Z" -msgstr "Fin del movi. Z" +msgstr "Fin Z" -#: FlatCAMCommon.py:541 -#, fuzzy -#| msgid "Tool order" +#: FlatCAMCommon.py:542 msgid "Tool Index." -msgstr "Orden de la Herram" +msgstr "Índice de herramientas." -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 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." -#: FlatCAMCommon.py:547 -#, fuzzy -#| msgid "Tool Diameter" +#: FlatCAMCommon.py:548 msgid "Tool Diameter." -msgstr "Diá. de Herram" +msgstr "Diá. de Herram." -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1998,14 +1939,23 @@ msgid "" "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" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 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." -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -2013,8 +1963,13 @@ msgid "" "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" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -2022,60 +1977,77 @@ msgid "" "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" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 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." -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 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." -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 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." -#: FlatCAMCommon.py:581 -#, fuzzy -#| msgid "Diameter of the drill for the alignment holes." +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." -msgstr "Diámetro del taladro para los orificios de alineación." +msgstr "" +"V-Dia.\n" +"Diámetro de la punta para herramientas en forma de V." -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 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." -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 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." -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." msgstr "" -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." msgstr "" -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -2083,14 +2055,14 @@ msgid "" "the G0 g-code command. Mostly 3D printers." msgstr "" -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" "The speed of the spindle in RPM." msgstr "" -#: FlatCAMCommon.py:606 +#: FlatCAMCommon.py:607 #, fuzzy #| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgid "" @@ -2101,7 +2073,7 @@ msgstr "" "dwelltime = tiempo de espera para permitir que el husillo alcance su RPM " "establecido" -#: FlatCAMCommon.py:610 +#: FlatCAMCommon.py:611 #, fuzzy #| msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgid "" @@ -2111,14 +2083,14 @@ msgstr "" "dwelltime = tiempo de espera para permitir que el husillo alcance su RPM " "establecido" -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" "to fit for a number of use cases." msgstr "" -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2127,7 +2099,17 @@ msgid "" "ensure a complete isolation." msgstr "" -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +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 "" + +#: FlatCAMCommon.py:631 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -2135,7 +2117,7 @@ msgid "" "the preprocessor file." msgstr "" -#: FlatCAMCommon.py:628 +#: FlatCAMCommon.py:636 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -2143,32 +2125,32 @@ msgid "" "where the tool change event take place." msgstr "" -#: FlatCAMCommon.py:633 +#: FlatCAMCommon.py:641 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." msgstr "" -#: FlatCAMCommon.py:636 +#: FlatCAMCommon.py:644 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 "" -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." msgstr "" -#: FlatCAMCommon.py:661 +#: FlatCAMCommon.py:669 #, fuzzy #| msgid "Add Text Tool" msgid "Add Tool to Tools DB" msgstr "Herramienta de Texto" -#: FlatCAMCommon.py:663 +#: FlatCAMCommon.py:671 #, fuzzy #| msgid "" #| "Add a new tool to the Tool Table\n" @@ -2180,41 +2162,41 @@ msgstr "" "Agregar una nueva herramienta a la tabla de herramientas\n" "con el diámetro especificado anteriormente." -#: FlatCAMCommon.py:666 +#: FlatCAMCommon.py:674 msgid "Remove Tool from Tools DB" msgstr "" -#: FlatCAMCommon.py:668 +#: FlatCAMCommon.py:676 #, fuzzy #| msgid "No selected tools in Tool Table." msgid "Remove a selection of tools in the Tools Database." msgstr "Seleccione una herramienta en la tabla de herramientas." -#: FlatCAMCommon.py:670 +#: FlatCAMCommon.py:678 #, fuzzy #| msgid "Export DXF" msgid "Export Tool DB" msgstr "Exportar DXF" -#: FlatCAMCommon.py:672 +#: FlatCAMCommon.py:680 msgid "Save the Tools Database to a custom text file." msgstr "" -#: FlatCAMCommon.py:674 +#: FlatCAMCommon.py:682 #, fuzzy #| msgid "PDF Import Tool" msgid "Import Tool DB" msgstr "Herramienta de Importación de PDF" -#: FlatCAMCommon.py:676 +#: FlatCAMCommon.py:684 msgid "Load the Tools Database information's from a custom text file." msgstr "" -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" msgstr "" -#: FlatCAMCommon.py:688 +#: FlatCAMCommon.py:696 #, fuzzy #| msgid "" #| "Copy a selection of tools in the Tool Table\n" @@ -2227,183 +2209,195 @@ msgstr "" "Copie una selección de herramientas en la tabla de herramientas\n" "seleccionando primero una fila en la Tabla de herramientas." -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 #, fuzzy #| msgid "Could not load bookmarks file." msgid "Could not load Tools DB file." msgstr "No se pudo cargar el archivo de marcadores." -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 #, fuzzy #| msgid "Failed to parse defaults file." msgid "Failed to parse Tools DB file." msgstr "Error al analizar el archivo predeterminado." -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" msgstr "" -#: FlatCAMCommon.py:744 +#: FlatCAMCommon.py:752 msgid "Add to DB" msgstr "" -#: FlatCAMCommon.py:746 +#: FlatCAMCommon.py:754 #, fuzzy #| msgid "Copy Geom\tC" msgid "Copy from DB" msgstr "Copia Geo\tC" -#: FlatCAMCommon.py:748 +#: FlatCAMCommon.py:756 #, fuzzy #| msgid "Delete Tool" msgid "Delete from DB" msgstr "Eliminar herramienta" -#: FlatCAMCommon.py:998 +#: FlatCAMCommon.py:1026 #, fuzzy #| msgid "Tool added in Tool Table." msgid "Tool added to DB." msgstr "Herramienta añadida en la tabla de herramientas." -#: FlatCAMCommon.py:1019 +#: FlatCAMCommon.py:1047 #, fuzzy #| msgid "Tool was copied in Tool Table." msgid "Tool copied from Tools DB." msgstr "La herramienta se copió en la tabla de herramientas." -#: FlatCAMCommon.py:1037 +#: FlatCAMCommon.py:1065 #, fuzzy #| msgid "Tool(s) deleted from Tool Table." msgid "Tool removed from Tools DB." msgstr "Herramienta (s) eliminada de la tabla de herramientas." -#: FlatCAMCommon.py:1048 +#: FlatCAMCommon.py:1076 #, fuzzy #| msgid "Tool Data" msgid "Export Tools Database" msgstr "Datos de Herram" -#: FlatCAMCommon.py:1051 +#: FlatCAMCommon.py:1079 #, fuzzy #| msgid "Tool Data" msgid "Tools_Database" msgstr "Datos de Herram" -#: FlatCAMCommon.py:1058 +#: FlatCAMCommon.py:1086 #, fuzzy #| msgid "FlatCAM bookmarks export cancelled." msgid "FlatCAM Tools DB export cancelled." msgstr "Exportación de marcadores de FlatCAM cancelada." -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 #, fuzzy #| msgid "Failed to write bookmarks to file." msgid "Failed to write Tools DB to file." msgstr "Error al escribir marcadores en el archivo." -#: FlatCAMCommon.py:1094 +#: FlatCAMCommon.py:1122 #, fuzzy #| msgid "Exported bookmarks to" msgid "Exported Tools DB to" msgstr "Marcadores exportados a" -#: FlatCAMCommon.py:1101 +#: FlatCAMCommon.py:1129 #, fuzzy #| msgid "Import FlatCAM Bookmarks" msgid "Import FlatCAM Tools DB" msgstr "Importar marcadores de FlatCAM" -#: FlatCAMCommon.py:1104 +#: FlatCAMCommon.py:1132 #, fuzzy #| msgid "FlatCAM bookmarks import cancelled." msgid "FlatCAM Tools DB import cancelled." msgstr "Se canceló la importación de marcadores de FlatCAM." -#: FlatCAMCommon.py:1147 +#: FlatCAMCommon.py:1175 #, fuzzy #| msgid "Scale Tool" msgid "Saved Tools DB." msgstr "Herramienta de escala" -#: FlatCAMCommon.py:1293 +#: FlatCAMCommon.py:1322 #, fuzzy #| msgid "Failed. No tool selected in the tool table ..." msgid "No Tool/row selected in the Tools Database table" msgstr "" "Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..." -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." msgstr "" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "Nombre cambiado de" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "a" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "Compensación ..." -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +#, fuzzy +#| msgid "Scale action was not executed." +msgid "Scaling could not be executed." +msgstr "La acción de Escala no se ejecutó." + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +#, fuzzy +#| msgid "Scale on the" +msgid "Scale done." +msgstr "Escala en el" + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "Escalando..." -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "Sesgar..." -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 #: flatcamGUI/PreferencesUI.py:1123 flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "BASIC" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 #: flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "Avanzado" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "Amortiguación de geometría sólida" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 #: flatcamTools/ToolCopperThieving.py:1199 #: flatcamTools/ToolCopperThieving.py:1211 -#: flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 -#: flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 -#: flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 +#: flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 +#: flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "Tamponamiento" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "Hecho" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "Aislando ..." -#: FlatCAMObj.py:1063 +#: FlatCAMObj.py:1078 #, fuzzy #| msgid "Click on Stop point to complete ..." msgid "Click on a polygon to isolate it." msgstr "Haga clic en el punto de parada para completar ..." -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 #, fuzzy #| msgid "Add Polygon" msgid "Added polygon" msgstr "Añadir Polígono" -#: FlatCAMObj.py:1097 +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -2412,13 +2406,13 @@ msgstr "" "Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " "clic con el botón derecho para finalizar." -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 #, fuzzy #| msgid "Add Polygon" msgid "Removed polygon" msgstr "Añadir Polígono" -#: FlatCAMObj.py:1110 +#: FlatCAMObj.py:1132 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -2427,85 +2421,91 @@ msgstr "" "Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " "clic con el botón derecho para finalizar." -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." msgstr "" -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." msgstr "" -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 -#: flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +#, fuzzy +#| msgid "Polygon Intersection" +msgid "No polygon in selection." +msgstr "Intersección de polígonos" + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 +#: flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "La geometría de aislamiento no se pudo generar." -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "Geometría de aislamiento creada" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "Restando Geo" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "Aperturas de trazado" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "Taladros totales" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "Ranuras totales" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 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." -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 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." -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 -#: flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 +#: flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "Herramienta" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "Herramienta_nu" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 -#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:736 +#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:753 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 #: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:396 #: flatcamTools/ToolProperties.py:449 flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "Diámetro" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "Taladros_nu" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "Ranuras_nu" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 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." -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" @@ -2513,7 +2513,7 @@ msgstr "" "Formato de valor incorrecto para self.defaults [\"z_pdepth\"] o self.options " "[\"z_pdepth\"]" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" @@ -2521,107 +2521,97 @@ msgstr "" "Formato de valor incorrecto para self.defaults [\"feedrate_probe\"] o self." "options [\"feedrate_probe\"]" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "Generando Código CNC" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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. " - -#: FlatCAMObj.py:3794 +#: FlatCAMObj.py:3896 #, fuzzy #| msgid "Add Tool" msgid "Add from Tool DB" msgstr "Añadir herramienta" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 -#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2154 -#: flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 +#: flatcamGUI/FlatCAMGUI.py:1966 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "Dupdo" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 -#: flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 -#: flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 -#: flatcamTools/ToolNonCopperClear.py:1464 flatcamTools/ToolPaint.py:838 -#: flatcamTools/ToolPaint.py:1022 flatcamTools/ToolPaint.py:2094 +#: flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 +#: flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 +#: flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 +#: flatcamEditors/FlatCAMGeoEditor.py:1240 +#: flatcamTools/ToolNonCopperClear.py:1057 +#: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 +#: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 #: flatcamTools/ToolSolderPaste.py:879 flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "Formato de valor incorrecto introducido, use un número." -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "" "Por favor ingrese el diámetro deseado de la herramienta en formato Float." -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "Herramienta añadida en la tabla de herramientas." -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "" "Herramienta predeterminada agregada. Se ha introducido un formato de valor " "incorrecto." -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "Ha fallado. Seleccione una herramienta para copiar." -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "La herramienta se copió en la tabla de herramientas." -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "La herramienta fue editada en la tabla de herramientas." -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "Ha fallado. Seleccione una herramienta para eliminar." -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "La herramienta se eliminó en la tabla de herramientas." -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 #, fuzzy #| msgid "Parameters" msgid "Parameters for" msgstr "Parámetros" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "Esta geometría no se puede procesar porque es" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "geometría" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "" "Ha fallado. Ninguna herramienta seleccionada en la tabla de herramientas ..." -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -2630,44 +2620,44 @@ msgstr "" "pero no se proporciona ningún valor.\n" "Agregue una Herramienta de compensación o cambie el Tipo de compensación." -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "Análisis de código G en progreso ..." -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "Análisis de código G terminado ..." -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "Procesamiento de código G terminado" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "El procesamiento del código G falló con error" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "Cancelado. Archivo vacío, no tiene geometría" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "Procesamiento de código G terminado ..." -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "CNCjob creado" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "El factor de escala debe ser un número: entero o Real." -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "Escala de geometría realizada." -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -2675,11 +2665,11 @@ msgstr "" "Se necesita un par de valores (x, y). Probablemente haya ingresado un solo " "valor en el campo Desplazamiento." -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "Desplazamiento de geometría realizado." -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -2689,80 +2679,80 @@ msgstr "" "formato (x, y)\n" "pero ahora solo hay un valor, no dos." -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "Basic" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "Avanzado" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "Trazando ..." -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "Exportar código de máquina ..." -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "Exportar código de máquina cancelado ..." -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "Archivo de código de máquina guardado en" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "Código de máquina cargado en el editor de código" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "Este objeto CNCJob no se puede procesar porque es un" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "Objeto CNCJob" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "El código G no tiene un código de unidades: G20 o G21" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 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." -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 msgid "Toolchange G-code was replaced by a custom code." msgstr "El código G de Toolchange fue reemplazado por un código personalizado." -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "El fichero o directorio no existe" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "Guardado en" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 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'" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "No hay archivo de postprocesador." -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "Editor de guiones" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "Editor de Documentos" @@ -2787,7 +2777,7 @@ msgstr "Aplicar Idioma ..." msgid "Object renamed from {old} to {new}" msgstr "Objeto renombrado de {old} a {new}" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "Causa del error" @@ -2835,7 +2825,7 @@ msgstr "Error al sesgar. Ningún objeto seleccionado" msgid "There is no such parameter" msgstr "No hay tal parámetro" -#: camlib.py:2366 +#: camlib.py:2368 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -2849,35 +2839,45 @@ msgstr "" "tipográfico, por lo tanto, la aplicación convertirá el valor a negativo. " "Compruebe el código CNC resultante (Gcode, etc.)." -#: camlib.py:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 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:2450 +#: camlib.py:2389 camlib.py:3409 +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. " + +#: camlib.py:2458 msgid "Creating a list of points to drill..." msgstr "Crear una lista de puntos para explorar ..." -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "Iniciando el código G" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "Código G inicial para herramienta con diámetro" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "Coordenadas G91 no implementadas" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "El archivo Excellon cargado no tiene perforaciones" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "Generación de código G finalizada ..." -#: camlib.py:3050 +#: camlib.py:3061 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -2887,7 +2887,7 @@ msgstr "" "formato (x, y)\n" "pero ahora solo hay un valor, no dos." -#: camlib.py:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -2895,7 +2895,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:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -2909,11 +2909,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:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "El parámetro Travel Z des Ninguno o cero." -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -2927,39 +2927,39 @@ 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:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 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:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "Indexación de la geometría antes de generar código G ..." -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "Iniciando el código G ..." -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "Generación de código G terminada" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "caminos trazados" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "Se esperaba una Geometría, se obtuvo" -#: camlib.py:3303 +#: camlib.py:3316 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:3343 +#: camlib.py:3356 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -2968,35 +2968,35 @@ msgstr "" "en current_geometry.\n" "Aumente el valor (en el módulo) e intente nuevamente." -#: camlib.py:3604 +#: camlib.py:3618 msgid " paths traced." msgstr " caminos trazados." -#: camlib.py:3632 +#: camlib.py:3646 msgid "There is no tool data in the SolderPaste geometry." msgstr "No hay datos de herramientas en la geometría SolderPaste." -#: camlib.py:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "Generación de código G de soldadura soldada terminada" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "caminos trazados." -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "Analizando el archivo GCode. Número de líneas" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "Crear geometría a partir del archivo GCode analizado. " -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 no implementadas ..." -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "Geometría unificadora de segmentos de geometría analizados" @@ -3108,8 +3108,8 @@ msgstr "" "cambiar el tamaño." #: flatcamEditors/FlatCAMExcEditor.py:983 -#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2879 -#: flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2892 +#: flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "Cancelado." @@ -3135,7 +3135,7 @@ msgstr "Hecho. Taladro (s) Movimiento completado." msgid "Done. Drill(s) copied." msgstr "Hecho. Taladro (s) copiado." -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "Excellon Editor" @@ -3144,13 +3144,13 @@ msgstr "Excellon Editor" msgid "Name:" msgstr "Nombre:" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "Tabla de herramientas" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -3170,8 +3170,8 @@ msgstr "" "Agregar / Eliminar una herramienta a la lista de herramientas\n" "para este objeto Excellon." -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "Diámetro para la nueva herramienta" @@ -3199,7 +3199,7 @@ msgstr "" "Eliminar una herramienta en la lista de herramientas\n" "seleccionando una fila en la tabla de herramientas." -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "Cambiar el tamaño de taladro (s)" @@ -3223,8 +3223,8 @@ msgstr "Redimensionar" msgid "Resize drill(s)" msgstr "Cambiar el tamaño de taladro" -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "Añadir Drill Array" @@ -3248,17 +3248,17 @@ msgstr "Lineal" #: flatcamEditors/FlatCAMExcEditor.py:1634 #: flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "Nu. de ejercicios" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "Especifique cuántos ejercicios debe estar en la matriz." @@ -3269,14 +3269,14 @@ msgstr "Especifique cuántos ejercicios debe estar en la matriz." #: flatcamEditors/FlatCAMExcEditor.py:1927 #: flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 -#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2970 +#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "Dirección" #: flatcamEditors/FlatCAMExcEditor.py:1663 #: flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -3292,8 +3292,8 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 #: flatcamEditors/FlatCAMGrbEditor.py:2733 flatcamGUI/PreferencesUI.py:1946 -#: flatcamGUI/PreferencesUI.py:2884 flatcamGUI/PreferencesUI.py:2979 -#: flatcamGUI/PreferencesUI.py:3032 flatcamGUI/PreferencesUI.py:4804 +#: flatcamGUI/PreferencesUI.py:2886 flatcamGUI/PreferencesUI.py:2981 +#: flatcamGUI/PreferencesUI.py:3034 flatcamGUI/PreferencesUI.py:4822 #: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" @@ -3302,8 +3302,8 @@ msgstr "X" #: flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 #: flatcamEditors/FlatCAMGrbEditor.py:2734 flatcamGUI/PreferencesUI.py:1947 -#: flatcamGUI/PreferencesUI.py:2885 flatcamGUI/PreferencesUI.py:2980 -#: flatcamGUI/PreferencesUI.py:3033 flatcamGUI/PreferencesUI.py:4805 +#: flatcamGUI/PreferencesUI.py:2887 flatcamGUI/PreferencesUI.py:2982 +#: flatcamGUI/PreferencesUI.py:3035 flatcamGUI/PreferencesUI.py:4823 #: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" @@ -3319,10 +3319,10 @@ msgstr "Y" #: flatcamEditors/FlatCAMGrbEditor.py:2735 #: flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -3331,14 +3331,14 @@ msgstr "Ángulo" #: flatcamEditors/FlatCAMExcEditor.py:1676 #: flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "Paso" #: flatcamEditors/FlatCAMExcEditor.py:1678 #: flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "Paso = Distancia entre elementos de la matriz." @@ -3374,25 +3374,25 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 #: flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "CW" #: flatcamEditors/FlatCAMExcEditor.py:1720 #: flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "CCW" #: flatcamEditors/FlatCAMExcEditor.py:1724 #: flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "Ángulo en el que se coloca cada elemento de la matriz circular." @@ -3408,16 +3408,16 @@ msgstr "" "Parámetros para agregar una ranura (agujero con forma ovalada)\n" "ya sea solo o como parte de una matriz." -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "Longitud" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "Longitud = La longitud de la ranura." -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -3463,11 +3463,11 @@ msgstr "" "Seleccione el tipo de matriz de ranuras para crear.\n" "Puede ser lineal X (Y) o circular" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "Nro. De ranuras" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "Especifique cuántas ranuras debe haber en la matriz." @@ -3479,7 +3479,7 @@ msgstr "" "Herramienta ya en la lista de herramientas original o real.\n" "Guarde y reedite Excellon si necesita agregar esta herramienta. " -#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "Nueva herramienta agregada con dia" @@ -3556,7 +3556,7 @@ msgid "Round" msgstr "Redondo" #: flatcamEditors/FlatCAMGeoEditor.py:96 -#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5971 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5989 #: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Cuadrado" @@ -3579,7 +3579,7 @@ msgid "Full Buffer" msgstr "Buffer lleno" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamEditors/FlatCAMGeoEditor.py:2758 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Herramienta Buffer" @@ -3587,9 +3587,9 @@ msgstr "Herramienta Buffer" #: flatcamEditors/FlatCAMGeoEditor.py:145 #: flatcamEditors/FlatCAMGeoEditor.py:162 #: flatcamEditors/FlatCAMGeoEditor.py:179 -#: flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 -#: flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 +#: flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" @@ -3600,7 +3600,7 @@ msgstr "" msgid "Font" msgstr "Font" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "Texto" @@ -3608,13 +3608,13 @@ msgstr "Texto" msgid "Text Tool" msgstr "Herramienta de texto" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "Diá. de la herramienta" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -3622,14 +3622,15 @@ msgstr "" "Diámetro de la herramienta para\n" "ser utilizado en la operación." -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "Tasa de superpos" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, fuzzy, python-format +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 +#, fuzzy #| msgid "" #| "How much (fraction) of the tool width to overlap each tool pass.\n" #| "Example:\n" @@ -3643,9 +3644,6 @@ msgstr "Tasa de superpos" #| "due of too many paths." msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3666,17 +3664,17 @@ msgstr "" "Valores más altos = procesamiento lento y ejecución lenta en CNC\n" "Debido a demasiados caminos." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "Margen" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3687,13 +3685,13 @@ msgstr "" "los bordes del polígono a\n" "ser pintado." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Método" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -3701,30 +3699,30 @@ msgstr "" "Algoritmo para pintar el polígono:
Estándar : Paso fijo hacia " "adentro.
Basado en semillas : Hacia afuera desde las semillas." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Estándar" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "Semillas" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Lineas rectas" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "Conectar:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" @@ -3733,12 +3731,12 @@ msgstr "" "Dibuja líneas entre el resultado\n" "Segmentos para minimizar elevaciones de herramientas." -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "Contorno:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" "Cut around the perimeter of the polygon\n" @@ -3747,86 +3745,86 @@ msgstr "" "Corta todo el perímetro del polígono.\n" "Para recortar los bordes ásperos." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Pintar" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 -#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 +#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Herramienta de pintura" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "Pintura cancelada. Ninguna forma seleccionada." -#: flatcamEditors/FlatCAMGeoEditor.py:599 -#: flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3138 +#: flatcamEditors/FlatCAMGeoEditor.py:597 +#: flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 +#: flatcamEditors/FlatCAMGeoEditor.py:2844 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Herramientas" -#: flatcamEditors/FlatCAMGeoEditor.py:610 -#: flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:751 -#: flatcamGUI/FlatCAMGUI.py:2195 flatcamTools/ToolTransform.py:371 +#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 +#: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Herramienta de transformación" -#: flatcamEditors/FlatCAMGeoEditor.py:611 -#: flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 -#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5189 +#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Girar" -#: flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGrbEditor.py:5013 flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "Sesgo / cizalla" -#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 -#: flatcamGUI/FlatCAMGUI.py:2271 flatcamGUI/ObjectUI.py:92 -#: flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/ObjectUI.py:92 +#: flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "Escala" -#: flatcamEditors/FlatCAMGeoEditor.py:614 +#: flatcamEditors/FlatCAMGeoEditor.py:612 #: flatcamEditors/FlatCAMGrbEditor.py:5015 flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "Espejo (Flip)" -#: flatcamEditors/FlatCAMGeoEditor.py:615 -#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:124 -#: flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 +#: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "Compensar" -#: flatcamEditors/FlatCAMGeoEditor.py:628 -#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:698 -#: flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGeoEditor.py:626 +#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 +#: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Editor" -#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGeoEditor.py:658 #: flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "Ángulo:" -#: flatcamEditors/FlatCAMGeoEditor.py:662 -#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5199 +#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" @@ -3839,7 +3837,7 @@ msgstr "" "Números positivos para movimiento CW.\n" "Números negativos para movimiento CCW." -#: flatcamEditors/FlatCAMGeoEditor.py:678 +#: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" @@ -3850,17 +3848,17 @@ msgstr "" "El punto de referencia es el centro de\n" "El cuadro delimitador para todas las formas seleccionadas." -#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:699 #: flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "Ángulo X:" -#: flatcamEditors/FlatCAMGeoEditor.py:703 -#: flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 -#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5218 -#: flatcamGUI/PreferencesUI.py:5232 flatcamTools/ToolCalibration.py:445 -#: flatcamTools/ToolCalibration.py:458 +#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 +#: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 +#: flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -3868,13 +3866,13 @@ msgstr "" "Ángulo para sesgo de acción, en grados.\n" "Número de flotación entre -360 y 359." -#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:712 #: flatcamEditors/FlatCAMGrbEditor.py:5115 flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "Sesgo x" -#: flatcamEditors/FlatCAMGeoEditor.py:716 -#: flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 #: flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" @@ -3886,33 +3884,33 @@ msgstr "" "El punto de referencia es el centro de\n" "El cuadro delimitador para todas las formas seleccionadas." -#: flatcamEditors/FlatCAMGeoEditor.py:721 +#: flatcamEditors/FlatCAMGeoEditor.py:719 #: flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "Ángulo Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:734 +#: flatcamEditors/FlatCAMGeoEditor.py:732 #: flatcamEditors/FlatCAMGrbEditor.py:5135 flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "Sesgo y" -#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGeoEditor.py:760 #: flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "Factor X:" -#: flatcamEditors/FlatCAMGeoEditor.py:764 -#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Factor para la acción de escala sobre el eje X." -#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:772 #: flatcamEditors/FlatCAMGrbEditor.py:5175 flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "Escala x" -#: flatcamEditors/FlatCAMGeoEditor.py:776 -#: flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 #: flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" @@ -3924,28 +3922,28 @@ msgstr "" "El punto de referencia depende de\n" "El estado de la casilla de verificación Escala de referencia." -#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGeoEditor.py:779 #: flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "Factor Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:783 -#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Factor de acción de escala sobre eje Y." -#: flatcamEditors/FlatCAMGeoEditor.py:793 +#: flatcamEditors/FlatCAMGeoEditor.py:791 #: flatcamEditors/FlatCAMGrbEditor.py:5194 flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "Escala Y" -#: flatcamEditors/FlatCAMGeoEditor.py:802 -#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5268 +#: flatcamEditors/FlatCAMGeoEditor.py:800 +#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Enlazar" -#: flatcamEditors/FlatCAMGeoEditor.py:804 +#: flatcamEditors/FlatCAMGeoEditor.py:802 #: flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" @@ -3954,13 +3952,13 @@ msgstr "" "Escala las formas seleccionadas\n" "Utilizando el Scale Factor X para ambos ejes." -#: flatcamEditors/FlatCAMGeoEditor.py:810 -#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5276 +#: flatcamEditors/FlatCAMGeoEditor.py:808 +#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Referencia de escala" -#: flatcamEditors/FlatCAMGeoEditor.py:812 +#: flatcamEditors/FlatCAMGeoEditor.py:810 #: flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" @@ -3973,23 +3971,23 @@ msgstr "" "y el centro del cuadro delimitador más grande.\n" "de las formas seleccionadas cuando no está marcada." -#: flatcamEditors/FlatCAMGeoEditor.py:840 +#: flatcamEditors/FlatCAMGeoEditor.py:838 #: flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "Valor X:" -#: flatcamEditors/FlatCAMGeoEditor.py:842 +#: flatcamEditors/FlatCAMGeoEditor.py:840 #: flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "Valor para la acción Offset en el eje X." -#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:850 #: flatcamEditors/FlatCAMGrbEditor.py:5254 flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "Offset X" -#: flatcamEditors/FlatCAMGeoEditor.py:854 -#: flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 #: flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" @@ -4001,28 +3999,28 @@ msgstr "" "El punto de referencia es el centro de\n" "El cuadro delimitador para todas las formas seleccionadas.\n" -#: flatcamEditors/FlatCAMGeoEditor.py:860 +#: flatcamEditors/FlatCAMGeoEditor.py:858 #: flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "Valor Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:862 +#: flatcamEditors/FlatCAMGeoEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "Valor para la acción Offset en el eje Y." -#: flatcamEditors/FlatCAMGeoEditor.py:872 +#: flatcamEditors/FlatCAMGeoEditor.py:870 #: flatcamEditors/FlatCAMGrbEditor.py:5274 flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "Offset Y" -#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:901 #: flatcamEditors/FlatCAMGrbEditor.py:5305 flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "Voltear en X" -#: flatcamEditors/FlatCAMGeoEditor.py:905 -#: flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 #: flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" @@ -4032,17 +4030,17 @@ msgstr "" "Voltea la (s) forma (s) seleccionada (s) sobre el eje X.\n" "No crea una nueva forma." -#: flatcamEditors/FlatCAMGeoEditor.py:910 +#: flatcamEditors/FlatCAMGeoEditor.py:908 #: flatcamEditors/FlatCAMGrbEditor.py:5312 flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "Voltear en Y" -#: flatcamEditors/FlatCAMGeoEditor.py:918 +#: flatcamEditors/FlatCAMGeoEditor.py:916 #: flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "Punto de Ref" -#: flatcamEditors/FlatCAMGeoEditor.py:920 +#: flatcamEditors/FlatCAMGeoEditor.py:918 #: flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" @@ -4065,12 +4063,12 @@ msgstr "" "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:932 +#: flatcamEditors/FlatCAMGeoEditor.py:930 #: flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "Punto:" -#: flatcamEditors/FlatCAMGeoEditor.py:934 +#: flatcamEditors/FlatCAMGeoEditor.py:932 #: flatcamEditors/FlatCAMGrbEditor.py:5336 flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -4082,7 +4080,7 @@ msgstr "" "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:944 +#: flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:5348 flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -4093,354 +4091,354 @@ msgstr "" "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:1059 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 #: flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "Transformación cancelada. Ninguna forma seleccionada." -#: flatcamEditors/FlatCAMGeoEditor.py:1260 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 #: flatcamEditors/FlatCAMGrbEditor.py:5657 msgid "No shape selected. Please Select a shape to rotate!" msgstr "" "Ninguna forma seleccionada. Por favor, seleccione una forma para rotar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1263 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 #: flatcamEditors/FlatCAMGrbEditor.py:5660 flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "Aplicando rotar" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 #: flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "Hecho. Rotación completada." -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "La acción de rotación no se ejecutó" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 #: flatcamEditors/FlatCAMGrbEditor.py:5715 msgid "No shape selected. Please Select a shape to flip!" msgstr "" "Ninguna forma seleccionada. Por favor, seleccione una forma para voltear!" -#: flatcamEditors/FlatCAMGeoEditor.py:1312 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 #: flatcamEditors/FlatCAMGrbEditor.py:5718 flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "Aplicando Voltear" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 #: flatcamEditors/FlatCAMGrbEditor.py:5758 flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "Voltear sobre el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 #: flatcamEditors/FlatCAMGrbEditor.py:5767 flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "Voltear en el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "La acción de voltear no se ejecutó" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 #: flatcamEditors/FlatCAMGrbEditor.py:5789 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:1370 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 #: flatcamEditors/FlatCAMGrbEditor.py:5792 flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "Aplicando Sesgo" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 #: flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "Sesgar sobre el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "Sesgar sobre el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "La acción sesgada no se ejecutó" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 #: flatcamEditors/FlatCAMGrbEditor.py:5854 msgid "No shape selected. Please Select a shape to scale!" msgstr "Ninguna forma seleccionada. Por favor, seleccione una forma a escala!" -#: flatcamEditors/FlatCAMGeoEditor.py:1418 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 #: flatcamEditors/FlatCAMGrbEditor.py:5857 flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "Aplicando la escala" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 #: flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "Escala en el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 #: flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "Escala en el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "La acción de escala no se ejecutó" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 #: flatcamEditors/FlatCAMGrbEditor.py:5915 msgid "No shape selected. Please Select a shape to offset!" msgstr "" "Ninguna forma seleccionada. Por favor, seleccione una forma para compensar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 #: flatcamEditors/FlatCAMGrbEditor.py:5918 flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "Aplicando Offset" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 #: flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "Offset en el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 #: flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "Offset en el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "La acción de desplazamiento no se ejecutó" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 #: flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "Girar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1497 -#: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 +#: flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 #: flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 #: flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "Ingrese un valor de ángulo (grados)" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 #: flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "Forma de geometría rotar hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "Rotación de forma de geometría cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 #: flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "Offset en el eje X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1516 -#: flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 +#: flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 #: flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "Ingrese un valor de distancia" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 #: flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "Forma de geometría compensada en el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "Desplazamiento de forma de geometría X cancelado" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 #: flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "Offset en eje Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1544 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 #: flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "Desplazamiento de forma de geometría en el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "Desplazamiento de forma de geometría en eje Y cancelado" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 #: flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "Sesgar en el eje X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1561 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 #: flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "Forma de geometría sesgada en el eje X hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "Forma geométrica sesgada en el eje X cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 #: flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "Sesgar en el eje Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 #: flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "Forma de geometría sesgada en el eje Y hecho" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "Forma geométrica sesgada en el eje Y cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 -#: flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 +#: flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "Haga clic en el punto central ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1953 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 #: flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "Haga clic en el punto del perímetro para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "Hecho. Añadiendo círculo completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2018 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 #: flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "Haga clic en el punto de inicio ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2020 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 #: flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "Haga clic en el punto 3 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2022 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 #: flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "Haga clic en el punto de parada ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2027 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 #: flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "Haga clic en el punto de parada para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2029 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 #: flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "Haga clic en el punto 2 para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2031 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 #: flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "Haga clic en el punto central para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "Direccion: %s" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 #: flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Modo: Inicio -> Detener -> Centro. Haga clic en el punto de inicio ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2056 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 #: flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Modo: Punto1 -> Punto3 -> Punto2. Haga clic en el punto 1 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2059 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 #: flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Modo: Centro -> Iniciar -> Detener. Haga clic en el punto central ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "Hecho. Arco completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2217 -#: flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 +#: flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "Haga clic en la primera esquina ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "Haga clic en la esquina opuesta para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "Hecho. Rectángulo completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 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:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "Hecho. Polígono completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2317 -#: flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 +#: flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 #: flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "Retrocedido un punto ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "Hecho. Camino completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "Ninguna forma seleccionada. Selecciona una forma para explotar" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "Hecho. Los polígonos explotaron en líneas." -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 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:2520 -#: flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." msgstr " MOVER: haga clic en el punto de referencia ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr " Haga clic en el punto de destino ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "Hecho. Geometría (s) Movimiento completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "Hecho. Geometría (s) Copia completada." -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -4448,96 +4446,96 @@ msgstr "" "Fuente no soportada. Solo se admiten las versiones Regular, Bold, Italic y " "BoldItalic. Error" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "No hay texto para agregar." -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr " Hecho. Agregando texto completado." -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "Crear geometría de búfer ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2768 -#: flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 +#: flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "Buffer cancelado. Ninguna forma seleccionada." -#: flatcamEditors/FlatCAMGeoEditor.py:2793 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 #: flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "Hecho. Herramienta de amortiguación completada." -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "Hecho. Herramienta interna de búfer completada." -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "Hecho. Herramienta externa de búfer completada." -#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 #: flatcamEditors/FlatCAMGrbEditor.py:2087 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:2890 -#: flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 #: flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "Haga clic para recoger la forma de borrar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2919 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 #: flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "Haga clic para borrar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2949 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 #: flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "Hecho. Se ha completado la acción de la herramienta de borrador." -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "Crear geometría de pintura ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3006 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 #: flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "Transformaciones de formas ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "Edición de Geometría MultiGeo, herramienta" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "con diámetro" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "Copia cancelada. Ninguna forma seleccionada." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 -#: flatcamGUI/FlatCAMGUI.py:3388 flatcamGUI/FlatCAMGUI.py:3401 -#: flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 +#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 +#: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Haga clic en el punto de destino." -#: flatcamEditors/FlatCAMGeoEditor.py:4330 -#: flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 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:4451 -#: flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 +#: flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -4545,59 +4543,59 @@ msgstr "" "No se acepta el valor de búfer negativo. Usa el interior del amortiguador " "para generar una forma 'interior'" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 -#: flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 +#: flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "Nada seleccionado para el almacenamiento en búfer." -#: flatcamEditors/FlatCAMGeoEditor.py:4466 -#: flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 +#: flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "Distancia no válida para el almacenamiento en búfer." -#: flatcamEditors/FlatCAMGeoEditor.py:4490 -#: flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 +#: flatcamEditors/FlatCAMGeoEditor.py:4587 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:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "Geometría de búfer completa creada." -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "No se acepta el valor negativo del búfer." -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 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:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "Geometría de búfer interior creada." -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "Geometría de búfer exterior creada." -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "" "No se pudo hacer pintura. El valor de superposición debe ser inferior a 1.00 " "(100%%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "Nada seleccionado para pintar." -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "Valor no válido para" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -4605,7 +4603,7 @@ msgstr "" "No se pudo pintar. Pruebe con una combinación diferente de parámetros. O un " "método diferente de pintura" -#: flatcamEditors/FlatCAMGeoEditor.py:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "Pintura hecha." @@ -4755,62 +4753,62 @@ msgstr "Hecho. Movimiento de aperturas completado." msgid "Done. Apertures copied." msgstr "Hecho. Aberturas copiadas." -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "Gerber Editor" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "Aberturas" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "Tabla de Aperturas para el Objeto Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "Código" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "Tipo" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/PreferencesUI.py:6183 flatcamGUI/PreferencesUI.py:6212 -#: flatcamGUI/PreferencesUI.py:6314 flatcamTools/ToolCopperThieving.py:260 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/PreferencesUI.py:6201 flatcamGUI/PreferencesUI.py:6230 +#: flatcamGUI/PreferencesUI.py:6332 flatcamTools/ToolCopperThieving.py:260 #: flatcamTools/ToolCopperThieving.py:300 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Tamaño" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "Dim" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "Índice" #: flatcamEditors/FlatCAMGrbEditor.py:2415 -#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:251 +#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "Código de apertura" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Tipo de apertura: circular, rectangular, macros, etc" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "Tamaño de apertura:" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4918,9 +4916,9 @@ msgstr "" "  - 'Biselado:' la esquina es una línea que conecta directamente las " "funciones que se encuentran en la esquina" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 -#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 +#: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "Buffer" @@ -4996,8 +4994,8 @@ msgstr "Limpiar" msgid "Clear all the markings." msgstr "Borra todas las marcas." -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "Agregar matriz de pad" @@ -5227,9 +5225,9 @@ msgstr "Reemplazará la cadena del cuadro Buscar con la del cuadro Reemplazar." 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:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "Todos" @@ -5294,7 +5292,7 @@ msgid "Code Editor content copied to clipboard ..." msgstr "Contenido del editor de código copiado al portapapeles ..." #: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 -#: flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "Panel de palanca" @@ -5346,7 +5344,7 @@ msgstr "Documento\tD" msgid "Will create a new, empty Document Object." msgstr "Creará un nuevo objeto de Documento vacío." -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "Abierto" @@ -5355,15 +5353,15 @@ msgstr "Abierto" msgid "Open &Project ..." msgstr "Abierto &Project ..." -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "Abierto &Gerber ...\tCTRL+G" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "Abierto &Excellon ...\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "Abierto G-&Code ..." @@ -5383,22 +5381,22 @@ msgstr "Archivos recientes" msgid "Scripting" msgstr "Scripting" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 -#: flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "Nuevo Script ..." -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 -#: flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 +#: flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "Abrir Script ..." -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 -#: flatcamGUI/FlatCAMGUI.py:2176 flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:2188 flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "Ejecutar Script ..." -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -5428,23 +5426,29 @@ msgstr "&DXF como objeto de geometría ..." msgid "&DXF as Gerber Object ..." msgstr "&DXF como objeto de Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +#, fuzzy +#| msgid "&SVG as Geometry Object ..." +msgid "HPGL2 as Geometry Object ..." +msgstr "&SVG como objeto de geometría ..." + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "Exportar" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "Exportar &SVG ..." -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "Exportar DXF ..." -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "Exportar &PNG ..." -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -5454,11 +5458,11 @@ msgstr "" "La imagen guardada contendrá lo visual.\n" "Información actualmente en FlatCAM Plot Area." -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "Exportación y Excellon ..." -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -5468,11 +5472,11 @@ msgstr "" "El formato de las coordenadas, las unidades de archivo y los ceros.\n" "se configuran en Preferencias -> Exportación de Excellon." -#: flatcamGUI/FlatCAMGUI.py:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "Exportar &Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -5482,61 +5486,61 @@ msgstr "" "El formato de las coordenadas, las unidades de archivo y los ceros.\n" "se establecen en Preferencias -> Exportar Gerber." -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "Apoyo" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "Importar preferencias del archivo ..." -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "Exportar preferencias a un archivo ..." -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 -#: flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 +#: flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "Salvar" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "Salvar proyecto ..." -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "Guardar proyecto como...\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "Guardar copia del proyecto ..." -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "Salida" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 -#: flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "Editar" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "Editar objeto\tE" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "Cerrar Editor\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "Conversión" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "Unirse Geo/Gerber/Exc -> Geo" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -5550,30 +5554,30 @@ msgstr "" "- Geometría\n" "en un nuevo objeto de geometría combo." -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "Únete a Excellon (s) -> Excellon" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 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:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "Únete a Gerber (s) -> Gerber" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 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:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "Convertir solo geo a multi geo" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -5581,11 +5585,11 @@ 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:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "Convertir multi a solo Geo" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -5593,704 +5597,712 @@ 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:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "Convertir cualquiera a Geo" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "Convertir cualquiera a Gerber" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "Dupdo\tCTRL+C" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "Borrar\tDEL" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "Establecer origen\tO" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "Ir a la ubicación\tJ" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "Unidades de palanca\tQ" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "Seleccionar todo\tCTRL+A" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "Preferencias\tSHIFT+P" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "Opciones" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "Rotar selección\tSHIFT+(R)" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "Sesgo en el eje X\tSHIFT+X" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "Sesgo en el eje Y\tSHIFT+Y" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "Voltear en el eje X\tX" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "Voltear en el ejeY\tY" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "Ver fuente\tALT+S" -#: flatcamGUI/FlatCAMGUI.py:369 +#: flatcamGUI/FlatCAMGUI.py:380 #, fuzzy #| msgid "Tool Data" msgid "Tools DataBase\tCTRL+D" msgstr "Datos de Herram" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "Ver" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "Habilitar todas las parcelas\tALT+1" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "Deshabilitar todas las parcelas\tALT+2" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "Deshabilitar no seleccionado\tALT+3" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "Ajuste de zoom\tV" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "Acercarse\t=" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "Disminuir el zoom\t-" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "Redibujar todo\tF5" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "Alternar Editor de Código\tSHIFT+E" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "Alternar pantalla completa\tALT+F10" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "Alternar área de la parcela\tCTRL+F10" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "Palanca Proyecto / Sel / Tool\t`" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "Activar cuadrícula\tG" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "Alternar Líneas de Cuadrícula\tALT+G" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "Eje de palanca\tSHIFT+G" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "Alternar espacio de trabajo\tSHIFT+W" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "Objetos" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "Línea de comando\tS" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "Ayuda" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "Ayuda en Online\tF1" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "Reportar un error" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "Especificación de Excellon" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "Especificación de Gerber" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "Lista de accesos directos\tF3" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "Canal de Youtube\tF4" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "Añadir círculo\tO" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "Añadir arco\tA" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "Añadir rectángulo\tR" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "Añadir polígono\tN" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "Añadir ruta\tP" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "Añadir texto\tT" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "Unión de polígonos\tU" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "Intersección de polígonos\tE" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "Sustracción de polígonos\tS" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "Camino de corte\tX" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "Copia Geo\tC" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "Eliminar forma\tDEL" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "Movimiento\tM" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "Herramienta amortiguadora\tB" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "Herramienta de pintura\tI" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "Herramienta de transformación\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "Alternar esquina esquina\tK" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr ">Excellon Editor<" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "Añadir matriz de perfor.\tA" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "Añadir taladro\tD" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "Agregar matriz de ranuras\tQ" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "Agregar ranura\tW" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "Cambiar el tamaño de taladro (s)\tR" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "Dupdo\tC" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "Borrar\tDEL" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "Mover taladro(s)\tM" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr ">Gerber Editor<" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "Añadir Pad\tP" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "Agregar una matriz de pad\tA" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "Añadir pista\tT" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "Añadir región\tN" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "Poligonize\tALT+N" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "Añadir medio disco\tE" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "Añadir disco\tD" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "Buffer\tB" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "Escalar\tS" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "Marcar area\tALT+A" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "Borrador\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "Transformar\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "Habilitar Parcela" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "Desactivar parcela" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "Generar CNC" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "Ver fuente" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "Propiedades" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "Barra de herramientas de archivo" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "Barra de herramientas de edición" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "Barra de herramientas de ver" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "Barra de herramientas de Shell" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "Barra de herramientas de Herramientas" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "Barra de herramientas del editor de Excel" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "Barra de herramientas del editor de geometría" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "Barra de herramientas del editor Gerber" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "Barra de herramientas de cuadrícula" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "Proyecto abierto" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "Guardar proyecto" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "Nueva geometría en blanco" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "Nuevo Gerber en blanco" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "Nueva Excellon en blanco" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "Guardar Objeto y cerrar el Editor" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "Borrar" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 -#: flatcamGUI/FlatCAMGUI.py:1653 flatcamGUI/FlatCAMGUI.py:2157 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1665 flatcamGUI/FlatCAMGUI.py:2169 #: flatcamTools/ToolDistance.py:30 flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "Herramienta de Dist" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "Herramienta Distancia Mínima" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 -#: flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "Establecer origen" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "Saltar a la ubicación" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "Replantear" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "Gráfico clara" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "Acercarse" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "Disminuir el zoom" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 -#: flatcamGUI/FlatCAMGUI.py:1893 flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1905 flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "Ajuste de zoom" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "Línea de comando" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "Herramienta de 2 Caras" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 #: flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "Herramienta de Corte" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 -#: flatcamGUI/ObjectUI.py:550 flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 +#: flatcamGUI/ObjectUI.py:555 flatcamGUI/ObjectUI.py:1712 +#: flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "Herramienta NCC" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "Herramienta de Panel" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "Herramienta de Película" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "Herramienta de Pasta" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 #: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Herramienta de Sustracción" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "Herramienta de Reglas" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 #: flatcamTools/ToolOptimal.py:34 flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "Herramienta de Óptima" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "Herramienta de Calculadoras" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 -#: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:2208 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 #, fuzzy #| msgid "Rules Tool" msgid "QRCode Tool" msgstr "Herramienta de Reglas" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 #, fuzzy #| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool" msgstr "Herramienta de Limpieza Sin Cobre" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2212 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 #, fuzzy #| msgid "Film Tool" msgid "Fiducials Tool" msgstr "Herramienta de Película" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 -#: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 -#: flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 +#, fuzzy +#| msgid "Calculators Tool" +msgid "Calibration Tool" +msgstr "Herramienta de Calculadoras" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 +#: flatcamGUI/FlatCAMGUI.py:830 flatcamGUI/FlatCAMGUI.py:2216 +#: flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "Seleccionar" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "Añadir taladro" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "Añadir matriz de taladro" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1960 flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "Agregar ranura" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "Agregar matriz de ranuras" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 -#: flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 +#: flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "Redimensionar taladro" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "Copia de taladro" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "Eliminar taladro" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "Mover taladro" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "Añadir Círculo" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "Añadir Arco" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "Añadir Rectángulo" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "Añadir Ruta" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "Añadir Polígono" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "Añadir Texto" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "Añadir Buffer" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "Forma de pintura" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 -#: flatcamGUI/FlatCAMGUI.py:1910 flatcamGUI/FlatCAMGUI.py:1938 -#: flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 +#: flatcamGUI/FlatCAMGUI.py:1922 flatcamGUI/FlatCAMGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "Borrador" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "Unión de polígonos" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "Polígono explotar" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "Intersección de polígonos" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "Sustracción de polígonos" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "Camino de Corte" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "Copiar Forma (s)" -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "Eliminar Forma '-'" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 -#: flatcamGUI/FlatCAMGUI.py:1917 flatcamGUI/FlatCAMGUI.py:1942 -#: flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 +#: flatcamGUI/FlatCAMGUI.py:1929 flatcamGUI/FlatCAMGUI.py:1954 +#: flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "Transformaciones" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "Mover objetos " -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "Añadir Pad" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 -#: flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "Añadir Pista" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "Añadir Región" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 -#: flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 +#: flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "Poligonizar" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 -#: flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 +#: flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "Medio disco" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 -#: flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "Disco" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 -#: flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "Marcar area" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1961 -#: flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:1973 +#: flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "Movimiento" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "Encajar a la cuadricula" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "Distancia de ajuste de la rejilla X" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "Distancia de ajuste de cuadrícula Y" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -6298,66 +6310,63 @@ msgstr "" "Cuando está activo, el valor en Grid_X\n" "Se copia al valor Grid_Y." -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "Ajustar a la esquina" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "Distancia máxima del imán" -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 -msgid "Project" -msgstr "Proyecto" - -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Seleccionado" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "Área de la parcela" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "General" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "GERBER" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "GEOMETRÍA" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "CNC-JOB" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "HERRAMIENTAS" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "HERRAMIENTAS 2" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "UTILIDADES" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "Pref de importación" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -6371,11 +6380,11 @@ msgstr "" "FlatCAM guarda automáticamente un archivo 'factory_defaults'\n" "en el primer comienzo No borres ese archivo." -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "Pref. de exportación" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." @@ -6383,23 +6392,23 @@ msgstr "" "Exportar un conjunto completo de configuraciones FlatCAM en un archivo\n" "que se guarda en el disco duro." -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "Abrir Carpeta de Pref" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 msgid "Open the folder where FlatCAM save the preferences files." msgstr "Abra la carpeta donde FlatCAM guarda los archivos de preferencias." -#: flatcamGUI/FlatCAMGUI.py:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -6407,534 +6416,534 @@ 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:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 msgid "Will not save the changes and will close the preferences window." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "MOSTRAR LISTA DE ACCESO CORTO" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "Cambiar a la Pestaña Proyecto" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "Cambiar a la Pestaña Seleccionada" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "Cambiar a la Pestaña de Herramientas" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "Nuevo Gerber" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "Editar objeto (si está seleccionado)" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "Saltar a coordenadas" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "Nueva Excellon" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "Mover objetos" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "Nueva geometría" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "Cambiar unidades" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "Abrir herramienta de propiedades" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "Rotar 90 grados CW" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "Palanca de 'Shell'" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 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:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "Voltear sobre el eje X" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "Voltear sobre el eje Y" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "Copiar objetos" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 #, fuzzy #| msgid "Tool Data" msgid "Open Tools Database" msgstr "Datos de Herram" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "Abierto Excellon" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "Abrir Gerber" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "Nuevo Proyecto" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "Herramienta de Importación de PDF" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "Guardar proyecto como" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "Alternar área de la parcela" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "Copiar Nombre Obj" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "Alternar editor de código" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "Alternar el eje" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 -#: flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 +#: flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "Herramienta de Distancia Mínima" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "Abrir ventana de Preferencias" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "Rotar en 90 grados CCW" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "Ejecutar script TCL" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "Alternar espacio de trabajo" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "Sesgar en el eje X" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "Sesgar en el eje Y" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "Herra. de 2 lados" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "Herramienta de Transformaciones" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "Herramienta de Dispensación de Pasta" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "Herramienta de Película" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "Herramienta de Limpieza Sin Cobre" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "Herramienta de Area de Pintura" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "Herramienta de Verificación de Reglas" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "Ver fuente del archivo" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "Herra. de Corte" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "Habilitar todas las parcelas" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "Deshabilitar todas las parcelas" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "Deshabilitar no seleccionado" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "Alternar pantalla completa" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "Abortar la tarea actual (con gracia)" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "Abrir el manual en línea" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "Abrir tutoriales en online" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "Actualizar parcelas" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "Eliminar objeto" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "Alt.: Eliminar herramienta" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "(izquierda a Key_1) Área de Toogle Notebook (lado izquierdo)" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "(Des)habilitar trazado Obj" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "Desel. todos los objetos" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "Lista de accesos directos del editor" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "EDITOR DE GEOMETRÍA" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "Dibujar un arco" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "Copia Geo" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 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:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "Herram. de Intersección Poli" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "Herram. de pintura geo" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "Saltar a la ubicación (x, y)" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "Alternar ajuste de esquina" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "Mover elemento geo" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Within Add Arc will cycle through the ARC modes" msgstr "Dentro de agregar arco, pasará por los modos de arco" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "Dibujar un polígono" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "Dibuja un circulo" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "Dibujar un camino" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "Dibujar rectángulo" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "Herram. de Sustrac. de Polí" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "Herramienta de Texto" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "Herram. de Unión Poli" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "Voltear en el eje X" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "Voltear en el eje Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "Sesgar en el eje X" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "Sesgar en el eje Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "Herram. de transform. del editor" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "Offset en el eje X" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "Offset en eje Y" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "Guardar objeto y salir del editor" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "Herram. de Corte Poli" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "Rotar Geometría" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "Terminar el dibujo de ciertas herramientas" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "Anular y volver a Seleccionar" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "Eliminar forma" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "EDITOR DE EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "Copia de taladro" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "Añadir taladro" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "Mover taladro(s)" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "Agregar una nueva herram" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "Eliminar Taladro" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "Alt.: Eliminar herramienta (s)" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "EDITOR GERBER" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "Agregar disco" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "Añadir medio disco" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 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:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 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:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "Alt.: Eliminar Aperturas" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "Herramienta borrador" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "Herram. de Zona de Marca" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "Herram. de poligonización" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "Herramienta de Transformación" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "Alternar visibilidad" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "Nueva" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "Geometría" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "Rejillas" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "Parcela clara" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "Replantear" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "Geo Editor" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "Ruta" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "Rectángulo" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "Círculo" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "Polígono" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "Arco" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "Unión" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "Intersección" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "Sustracción" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "Cortar" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "Pad" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "Matriz de Pad" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "Pista" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "Región" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "Exc Editor" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" @@ -6942,7 +6951,7 @@ msgstr "" "Medida relativa.\n" "La referencia es la posición del último clic" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" @@ -6950,27 +6959,27 @@ msgstr "" "Medida absoluta.\n" "La referencia es (X = 0, Y = 0) posición" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "Bloquear barras de herram" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "Herramienta de recorte" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "Selecciona 'Esc'" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "Copiar objetos" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "Mover objetos" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6982,12 +6991,12 @@ msgstr "" "fuera del primer artículo. Al final presione la tecla ~ X ~ o\n" "el botón de la barra de herramientas." -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 -#: flatcamGUI/FlatCAMGUI.py:3010 flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 +#: flatcamGUI/FlatCAMGUI.py:3023 flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "Advertencia" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -6995,7 +7004,7 @@ msgstr "" "Por favor seleccione elementos de geometría\n" "en el que realizar Herramienta de Intersección." -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -7003,7 +7012,7 @@ msgstr "" "Por favor seleccione elementos de geometría\n" "en el que realizar la Herramienta de Substracción." -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." @@ -7011,52 +7020,52 @@ msgstr "" "Por favor seleccione elementos de geometría\n" "en el que realizar la Unión." -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "Cancelado. Nada seleccionado para eliminar." -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "Cancelado. Nada seleccionado para copiar." -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "Cancelado. Nada seleccionado para moverse." -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "Nueva herramienta ..." -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "Introduzca un diá. de herram" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "Añadiendo herramienta cancelada ..." -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "Salida de Herramienta de Distancia ..." -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "Ocioso." -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "Aplicacion iniciada ..." -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "¡Hola!" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "Proyecto abierto ...Abierto &Project ..." -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "Salida" @@ -7091,87 +7100,99 @@ msgid "Factor" msgstr "Factor" #: flatcamGUI/ObjectUI.py:102 +#, fuzzy +#| msgid "" +#| "Factor by which to multiply\n" +#| "geometric features of this object." msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"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." -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "Realizar la operación de escalado." -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "Cambia la posición de este objeto." -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "Vector" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 +#, fuzzy +#| msgid "" +#| "Amount by which to move the object\n" +#| "in the x and y axes in (x, y) format." msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"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)." -#: flatcamGUI/ObjectUI.py:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "Realice la operación de desplazamiento." -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "Objeto Gerber" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 -#: flatcamGUI/ObjectUI.py:1083 flatcamGUI/ObjectUI.py:1663 -#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 -#: flatcamGUI/PreferencesUI.py:3110 flatcamGUI/PreferencesUI.py:3599 -msgid "Plot Options" -msgstr "Opciones de parcela" - -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 -#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 -#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:190 -msgid "Solid" -msgstr "Sólido" - -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 -msgid "Solid color polygons." -msgstr "Polígonos de color liso." - -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" -msgstr "M-Color" - -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 -msgid "Draw polygons in different colors." -msgstr "Dibuja polígonos en diferentes colores." - -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 -#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 -#: flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "Gráfico" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 -#: flatcamGUI/ObjectUI.py:1129 flatcamGUI/ObjectUI.py:1773 -#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3116 -#: flatcamGUI/PreferencesUI.py:3610 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 +#: flatcamGUI/ObjectUI.py:1166 flatcamGUI/ObjectUI.py:1855 +#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3118 +#: flatcamGUI/PreferencesUI.py:3628 msgid "Plot (show) this object." msgstr "Trazar (mostrar) este objeto." -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 -#: flatcamGUI/ObjectUI.py:1089 flatcamGUI/ObjectUI.py:1693 -#: flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 +#: flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "Gráfico" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 +#: flatcamGUI/ObjectUI.py:1120 flatcamGUI/ObjectUI.py:1745 +#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 +#: flatcamGUI/PreferencesUI.py:3112 flatcamGUI/PreferencesUI.py:3617 +msgid "Plot Options" +msgstr "Opciones de parcela" + +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 +#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 +#: flatcamGUI/PreferencesUI.py:6153 flatcamTools/ToolCopperThieving.py:190 +msgid "Solid" +msgstr "Sólido" + +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 +msgid "Solid color polygons." +msgstr "Polígonos de color liso." + +#: flatcamGUI/ObjectUI.py:192 +#, fuzzy +#| msgid "M-Color" +msgid "Multi-Color" +msgstr "M-Color" + +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 +msgid "Draw polygons in different colors." +msgstr "Dibuja polígonos en diferentes colores." + +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 +#: flatcamGUI/ObjectUI.py:1126 flatcamGUI/ObjectUI.py:1775 +#: flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Nombre" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -7181,11 +7202,11 @@ msgstr "" "Cuando no está marcada, eliminará todas las formas de las marcas.\n" "que se dibujan en lienzo." -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "Márc. todo" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -7195,15 +7216,15 @@ msgstr "" "Cuando no está marcada, eliminará todas las formas de las marcas.\n" "que se dibujan en lienzo." -#: flatcamGUI/ObjectUI.py:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "Marque las instancias de apertura en el lienzo." -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "Enrutamiento de aislamiento" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." @@ -7211,7 +7232,7 @@ msgstr "" "Crear un objeto de geometría con\n" "Trayectorias para cortar polígonos exteriores." -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -7223,32 +7244,32 @@ msgstr "" "Cuando se selecciona la 'forma de V', entonces la herramienta\n" "El diámetro dependerá de la profundidad de corte elegida." -#: flatcamGUI/ObjectUI.py:296 +#: flatcamGUI/ObjectUI.py:301 #, fuzzy #| msgid "V-shape" msgid "V-Shape" msgstr "Forma V" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 -#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:3992 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 +#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:4010 #: flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "V-Tipo Dia" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 -#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:3994 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 +#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:4012 #: flatcamTools/ToolNonCopperClear.py:233 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:315 flatcamGUI/ObjectUI.py:1313 -#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4004 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 +#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4022 #: flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "V-Tipo Ángulo" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 -#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4006 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 +#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4024 #: flatcamTools/ToolNonCopperClear.py:244 msgid "" "The tip angle for V-Shape Tool.\n" @@ -7257,9 +7278,9 @@ msgstr "" "El ángulo de punta para la herramienta en forma de V.\n" "En grado." -#: flatcamGUI/ObjectUI.py:331 flatcamGUI/ObjectUI.py:1332 -#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3179 -#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCutOut.py:135 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 +#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3181 +#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7267,7 +7288,7 @@ msgstr "" "Profundidad de corte (negativo)\n" "debajo de la superficie de cobre." -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -7281,11 +7302,11 @@ msgstr "" "característica, use un valor negativo para\n" "este parámetro." -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "# Pases" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." @@ -7293,11 +7314,11 @@ msgstr "" "Ancho de la brecha de aislamiento en\n" "Número (entero) de anchos de herramienta." -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "Superposición de pases" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 #, fuzzy #| msgid "" #| "How much (fraction) of the tool\n" @@ -7307,14 +7328,14 @@ msgstr "" "Cuánto (fracción) de la herramienta\n" "Ancho para superponer cada pasada de herramienta." -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "Tipo de fresado" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 msgid "" "Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -7325,31 +7346,31 @@ msgstr "" "herramienta\n" "- convencional / útil cuando no hay compensación de contragolpe" -#: flatcamGUI/ObjectUI.py:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "Subida" -#: flatcamGUI/ObjectUI.py:394 +#: flatcamGUI/ObjectUI.py:399 #, fuzzy #| msgid "Conversion" msgid "Conventional" msgstr "Conversión" -#: flatcamGUI/ObjectUI.py:399 +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "Combinar" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "Combina todos los pases en un objeto" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "\"Seguir\"" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" @@ -7359,11 +7380,11 @@ msgstr "" "Esto significa que cortará a través\n" "El medio de la traza." -#: flatcamGUI/ObjectUI.py:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "Excepto" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" @@ -7373,12 +7394,12 @@ msgstr "" "marcando esto, el área del objeto a continuación\n" "será restado de la geometría de aislamiento." -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "Tipo de obj" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -7390,40 +7411,40 @@ msgstr "" "Lo que se seleccione aquí dictará el tipo\n" "de objetos que llenarán el cuadro combinado 'Objeto'." -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "Objeto" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 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:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" msgstr "" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 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:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "Selección" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 #, fuzzy #| msgid "Isolation Routing" msgid "Isolation Type" msgstr "Enrutamiento de aislamiento" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -7435,28 +7456,28 @@ msgid "" "inside of the polygon (e.g polygon is a 'doughnut' shape)." msgstr "" -#: flatcamGUI/ObjectUI.py:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "Completo" -#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/ObjectUI.py:492 #, fuzzy #| msgid "Exit" msgid "Ext" msgstr "Salida" -#: flatcamGUI/ObjectUI.py:488 +#: flatcamGUI/ObjectUI.py:493 #, fuzzy #| msgid "Int Geo" msgid "Int" msgstr "Geo interno" -#: flatcamGUI/ObjectUI.py:493 +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "Generar geo. de aislamiento" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -7478,11 +7499,11 @@ msgstr "" "dentro de la función real de Gerber, use una herramienta negativa\n" "diámetro arriba." -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "Buffer la Geometria solida" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -7494,11 +7515,11 @@ msgstr "" "Al hacer clic en esto, se creará la geometría almacenada\n" "requerido para el aislamiento." -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "N-cobre claro" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." @@ -7506,7 +7527,8 @@ msgstr "" "Crear un objeto de geometría con\n" "Trayectorias para cortar todas las regiones sin cobre." -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -7514,11 +7536,11 @@ msgstr "" "Crear el objeto de geometría\n" "para enrutamiento sin cobre." -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "Corte del tablero" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7528,7 +7550,7 @@ msgstr "" "El PCB y lo separa de\n" "El tablero original." -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." @@ -7536,11 +7558,11 @@ msgstr "" "Generar la geometría para\n" "El recorte del tablero." -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "Regiones no cobre" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -7554,12 +7576,12 @@ msgstr "" "objeto. Se puede usar para eliminar todo\n" "cobre de una región específica." -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 #: flatcamGUI/PreferencesUI.py:1534 flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "Margen límite" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -7571,27 +7593,27 @@ msgstr "" "objetos con este mínimo\n" "distancia." -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 #: flatcamGUI/PreferencesUI.py:1549 flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "Geo redondeado" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "La geometría resultante tendrá esquinas redondeadas." -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 #: flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "Generar Geo" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Cuadro delimitador" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -7599,7 +7621,7 @@ msgstr "" "Crea una geometría que rodea el objeto Gerber.\n" "Forma cuadrada." -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -7607,7 +7629,7 @@ msgstr "" "Distancia de los bordes de la caja.\n" "al polígono más cercano." -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -7619,32 +7641,33 @@ msgstr "" "su radio es igual a\n" "el margen." -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "Genera el objeto Geometry." -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "Objeto Excellon" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "Círculos sólidos." -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "Taladros" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 -#: flatcamTools/ToolProperties.py:162 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:2952 flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "Muesca" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "Offset Z" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7659,7 +7682,7 @@ msgstr "" "\n" "Aquí se seleccionan las herramientas para la generación de código G." -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 #: flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" @@ -7668,7 +7691,7 @@ msgstr "" "Diámetro de herramienta. Su valor (en unidades actuales de FlatCAM)\n" "es el ancho de corte en el material." -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -7676,7 +7699,7 @@ msgstr "" "El número de agujeros de taladros. Agujeros que se taladran con\n" "una broca." -#: flatcamGUI/ObjectUI.py:752 +#: flatcamGUI/ObjectUI.py:769 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -7684,7 +7707,7 @@ msgstr "" "El número de agujeros de muesca. Agujeros creados por\n" "fresándolas con una broca de fresa." -#: flatcamGUI/ObjectUI.py:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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" @@ -7695,7 +7718,7 @@ msgstr "" "la punta.\n" "El valor aquí puede compensar el parámetro Z de corte." -#: flatcamGUI/ObjectUI.py:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -7703,12 +7726,12 @@ 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:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "Crear trabajo CNC" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." @@ -7716,7 +7739,7 @@ msgstr "" "Crear un objeto de trabajo CNC\n" "para este objeto de perforación." -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -7724,7 +7747,7 @@ msgstr "" "Profundidad de perforación (negativo)\n" "debajo de la superficie de cobre." -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -7732,12 +7755,12 @@ msgstr "" "Altura de herramienta al viajar\n" "A través del plano XY." -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 -#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 +#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "Cambio de herram" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -7745,12 +7768,12 @@ msgstr "" "Incluir secuencia de cambio de herramienta\n" "en G-Code (Pausa para cambio de herramienta)." -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "Cambio de herra. Z" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 -#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 +#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." @@ -7758,12 +7781,12 @@ msgstr "" "Posición del eje Z (altura) para\n" "cambio de herramienta." -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "Comience a mover Z" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -7771,13 +7794,13 @@ msgstr "" "Altura de la herramienta justo después del arranque.\n" "Elimine el valor si no necesita esta característica." -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 -#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 +#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "Fin del movi. Z" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 -#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 +#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3288 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -7785,13 +7808,13 @@ msgstr "" "Altura de la herramienta después de\n" "El último movimiento al final del trabajo." -#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1469 -#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3319 -#: flatcamGUI/PreferencesUI.py:5479 flatcamTools/ToolSolderPaste.py:264 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 +#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/PreferencesUI.py:5497 flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "Avance Z" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7803,12 +7826,12 @@ msgstr "" "La llamada velocidad de avance 'Plunge'.\n" "Esto es para el movimiento lineal G01." -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 -#: flatcamGUI/PreferencesUI.py:2583 flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 +#: flatcamGUI/PreferencesUI.py:2585 flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "Rápidos de avance" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7822,12 +7845,12 @@ msgstr "" "Es útil solo para Marlin,\n" "Ignorar para cualquier otro caso." -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 -#: flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 +#: flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "Eje de velocidad" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -7835,8 +7858,8 @@ msgstr "" "Velocidad del husillo\n" "en RPM (opcional)" -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 -#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/PreferencesUI.py:2441 flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7844,12 +7867,12 @@ msgstr "" "Pausa para permitir que el husillo alcance su\n" "Velocidad antes del corte." -#: flatcamGUI/ObjectUI.py:931 flatcamGUI/ObjectUI.py:1541 -#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 +#: flatcamGUI/PreferencesUI.py:2446 flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "Número de unidades de tiempo para que el husillo permanezca." -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7857,13 +7880,13 @@ msgstr "" "El archivo JSON del postprocesador que dicta\n" "Salida de Gcode." -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 -#: flatcamGUI/PreferencesUI.py:2599 flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 +#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "Profundidad de la sonda Z" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 -#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 +#: flatcamGUI/PreferencesUI.py:2603 flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7871,21 +7894,21 @@ msgstr "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 -#: flatcamGUI/PreferencesUI.py:2612 flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 +#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "Sonda de avance" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 -#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 +#: flatcamGUI/PreferencesUI.py:2616 flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "La velocidad de avance utilizada mientras la sonda está sondeando." -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "Gcode" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7897,19 +7920,19 @@ msgstr "" "Al elegir 'Muesca' o 'Ambos', los slots serán\n" "convertido en una serie de simulacros." -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "Crear taladros GCode" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "Generar el trabajo del CNC." -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "Agujeros de molino" -#: flatcamGUI/ObjectUI.py:1019 +#: flatcamGUI/ObjectUI.py:1044 #, fuzzy #| msgid "" #| "Select from the Tools Table above\n" @@ -7924,20 +7947,20 @@ msgstr "" "los agujeros que se van a fresar.\n" "Use la columna # para hacer la selección." -#: flatcamGUI/ObjectUI.py:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "Diá de la herra. de Perfor" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "Diá. de la herramienta de corte." -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "Fresas Geo" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -7945,11 +7968,11 @@ msgstr "" "Crear el objeto de geometría\n" "para fresar trayectorias de taladros." -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "Diá. de la herra. de ranura" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7957,11 +7980,11 @@ msgstr "" "Diámetro de la herramienta de corte\n" "Al fresar ranuras." -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "Fresado de muesca Geo" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -7969,11 +7992,11 @@ msgstr "" "Crear el objeto de geometría\n" "para fresar recorridos de herramientas muesca." -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "Objeto de geometría" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -8002,22 +8025,23 @@ msgstr "" "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:1127 flatcamGUI/ObjectUI.py:1771 -#: flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 +#: flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "Trazar objeto" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 -#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 +#: flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:6172 +#: flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "Dia" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "TT" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -8028,7 +8052,7 @@ msgstr "" "este valor\n" "se mostrará como un T1, T2 ... Tn" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -8045,7 +8069,7 @@ msgstr "" "- Fuera (lado) -> El corte de la herramienta seguirá la línea de geometría " "en el exterior." -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -8068,7 +8092,7 @@ msgstr "" "Para el aislamiento, necesitamos un avance más bajo, ya que utiliza una " "broca de fresado con una punta fina." -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -8099,7 +8123,7 @@ msgstr "" "Elegir el tipo de herramienta en forma de V automáticamente seleccionará el " "tipo de operación como aislamiento." -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -8117,7 +8141,7 @@ msgstr "" "puede habilitar / deshabilitar la trama en el lienzo\n" "para la herramienta correspondiente." -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -8129,7 +8153,7 @@ msgstr "" "El valor puede ser positivo para 'afuera'\n" "corte y negativo para corte 'interior'." -#: flatcamGUI/ObjectUI.py:1230 +#: flatcamGUI/ObjectUI.py:1267 #, fuzzy #| msgid "" #| "Add a new tool to the Tool Table\n" @@ -8141,11 +8165,11 @@ msgstr "" "Agregar una nueva herramienta a la tabla de herramientas\n" "con el diámetro especificado anteriormente." -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" msgstr "" -#: flatcamGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1277 #, fuzzy #| msgid "" #| "Add a new tool to the Tool Table\n" @@ -8157,7 +8181,7 @@ msgstr "" "Agregar una nueva herramienta a la tabla de herramientas\n" "con el diámetro especificado anteriormente." -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -8165,7 +8189,7 @@ 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:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -8173,7 +8197,7 @@ 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:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -8181,13 +8205,13 @@ msgstr "" "Los datos utilizados para crear GCode.\n" "Cada herramienta almacena su propio conjunto de datos." -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "Profund. Múlti" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -8199,12 +8223,12 @@ msgstr "" "cortar varias veces hasta que el Corte Z sea\n" "alcanzado." -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "Profundidad de cada pase (positivo)." -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." @@ -8212,7 +8236,7 @@ msgstr "" "Altura de la herramienta cuando\n" "Moviéndose sin cortar." -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -8220,12 +8244,12 @@ msgstr "" "Incluir secuencia de cambio de herramienta\n" "en el código de máquina (pausa para cambio de herramienta)." -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "Avance X-Y" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -8233,7 +8257,7 @@ msgstr "" "Velocidad de corte en el XY.\n" "Avion en unidades por minuto" -#: flatcamGUI/ObjectUI.py:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -8243,7 +8267,7 @@ msgstr "" "Plano en unidades por minuto.\n" "Se llama también Plunge." -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -8257,11 +8281,14 @@ msgstr "" "Es útil solo para Marlin,\n" "Ignorar para cualquier otro caso." -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +#, fuzzy +#| msgid "Re-cut 1st pt." +msgid "Re-cut" msgstr "Recortar 1er pt." -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 +#: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -8273,7 +8300,7 @@ msgstr "" "Nos reunimos con el último corte, generamos un\n" "Corte extendido sobre la primera sección de corte." -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -8283,12 +8310,12 @@ msgstr "" "Si se utiliza el postprocesador LÁSER,\n" "Este valor es el poder del láser." -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "Postprocesador" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -8296,17 +8323,17 @@ msgstr "" "El archivo de postprocesador que dicta\n" "la salida del código de máquina (como GCode, RML, HPGL)." -#: flatcamGUI/ObjectUI.py:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" msgstr "" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." msgstr "" -#: flatcamGUI/ObjectUI.py:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" @@ -8316,21 +8343,21 @@ msgstr "" "Haga clic en el encabezado para seleccionar todo, o Ctrl + LMB\n" "para la selección personalizada de herramientas." -#: flatcamGUI/ObjectUI.py:1616 +#: flatcamGUI/ObjectUI.py:1670 #, fuzzy #| msgid "Generate the CNC Job object." msgid "Generate CNCJob object" msgstr "Genere el objeto de trabajo CNC." -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "Genere el objeto de trabajo CNC." -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" -msgstr "Área de pintura" +#: flatcamGUI/ObjectUI.py:1689 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Inicie la herramienta Pintura en la pestaña Herramientas." -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -8342,19 +8369,15 @@ msgstr "" "todo el cobre). Te harán preguntas\n" "Para hacer clic en el polígono deseado." -#: flatcamGUI/ObjectUI.py:1639 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Inicie la herramienta Pintura en la pestaña Herramientas." - -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1737 msgid "CNC Job Object" msgstr "Objeto de trabajo CNC" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "Tipo de trazado" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -8366,15 +8389,15 @@ msgstr "" "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:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "Viajar" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "Mostrar anotación" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -8384,11 +8407,11 @@ msgstr "" "Cuando está marcado, mostrará números en orden para cada final.\n" "de una linea de viaje." -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." msgstr "Dist. recorrida" -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -8396,11 +8419,11 @@ msgstr "" "Esta es la distancia total recorrida en el plano X-Y.\n" "En unidades actuales." -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "Duración estimada" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -8408,11 +8431,11 @@ 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:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "Tabla de herramientas CNC" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -8435,24 +8458,24 @@ msgstr "" "C4),\n" "bola (B) o en forma de V (V)." -#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "P" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "Actualizar Trama" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "Actualiza la trama." -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "Exportar código CNC" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -8460,11 +8483,12 @@ msgstr "" "Exportar y guardar código G a\n" "Hacer este objeto a un archivo." -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "Anteponer al código del CNC" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 +#: flatcamGUI/PreferencesUI.py:3776 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8472,23 +8496,12 @@ msgstr "" "Escribe aquí cualquier comando de G-Code que quieras\n" "Me gusta agregar al principio del archivo G-Code." -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to add at the beginning of the G-Code file." -msgid "" -"Type here any G-Code commands you would 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:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Añadir al código CNC" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 +#: flatcamGUI/PreferencesUI.py:3792 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8498,25 +8511,11 @@ msgstr "" "Me gusta adjuntar al archivo generado.\n" "Es decir: M2 (Fin del programa)" -#: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 -#, fuzzy -#| msgid "" -#| "Type here any G-Code commands you would\n" -#| "like to append to the generated file.\n" -#| "I.e.: M2 (End of program)" -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file. 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:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "Cambio de herra. G-Code" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8538,7 +8537,7 @@ msgstr "" "que tiene 'toolchange_custom' en su nombre y esto está construido\n" "teniendo como plantilla el archivo posprocesador 'Toolchange Custom'." -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 #, fuzzy #| msgid "" #| "Type here any G-Code commands you would\n" @@ -8551,11 +8550,13 @@ msgstr "" #| "that has 'toolchange_custom' in it's name and this is built\n" #| "having as template the 'Toolchange Custom' posprocessor file." msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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 un evento de cambio de herramienta.\n" @@ -8567,11 +8568,11 @@ msgstr "" "que tiene 'toolchange_custom' en su nombre y esto está construido\n" "teniendo como plantilla el archivo posprocesador 'Toolchange Custom'." -#: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "Util. la herra. de cambio de macro" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -8579,7 +8580,7 @@ msgstr "" "Marque esta casilla si desea utilizar\n" "una herramienta personalizada para cambiar GCode (macro)." -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -8589,74 +8590,74 @@ msgstr "" "en el evento Cambio de herramienta.\n" "Deben estar rodeados por el símbolo '%'" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "Parámetros" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "Parámetros de FlatCAM CNC" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "número de herramienta" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "diámetro de herramienta" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "para Excellon, núm. total de taladros" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" msgstr "Coord. X para Cambio de Herramienta" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" msgstr "Coord. Y para Cambio de Herramienta" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "Coord Z para cambio de herramientas" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "profundidad donde cortar" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "altura donde viajar" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "el valor del paso para corte de profundidad múltiple" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "el valor de la velocidad del husillo" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 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:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "Ver código CNC" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." @@ -8664,11 +8665,11 @@ msgstr "" "Abre la pestaña para ver / modificar / imprimir el código G\n" "expediente." -#: flatcamGUI/ObjectUI.py:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "Guardar código CNC" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 msgid "" "Opens dialog to save G-Code\n" "file." @@ -8676,79 +8677,79 @@ msgstr "" "Abre el diálogo para guardar el código G\n" "expediente." -#: flatcamGUI/ObjectUI.py:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "Objeto de script" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "Autocompletador" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 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:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "Objeto de Documento" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 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:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "Tipo de Fuente" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "Tamaño de Fuente" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "Alineación" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "Alinear a la izquierda" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "Centrar" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "Alinear a la derecha" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "Alinear Justificar" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "Color de Fuente" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "Establecer el color de fuente para el texto seleccionado" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "Color de seleccion" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 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:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "Tamaño de Pestaña" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 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 " @@ -8816,19 +8817,20 @@ msgstr "" msgid "Wk. Orientation" msgstr "" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" "- Landscape" msgstr "" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" msgstr "" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" msgstr "" @@ -9233,7 +9235,7 @@ msgid "App Preferences" msgstr "Preferencias de la aplicación" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -9251,7 +9253,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" @@ -9565,8 +9567,12 @@ msgstr "" msgid "Gerber General" msgstr "Gerber General" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "M-Color" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "Pasos del círculo" @@ -9597,13 +9603,13 @@ msgstr "Las unidades utilizadas en el archivo Gerber." #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "PULGADA" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "Ceros" @@ -9623,13 +9629,13 @@ msgstr "" "y Leading Zeros se mantienen." #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" @@ -9638,8 +9644,8 @@ msgstr "TZ" msgid "Gerber Options" msgstr "Opciones de gerber" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "Conv." @@ -9651,8 +9657,8 @@ msgstr "Combinar pases" msgid "Gerber Adv. Options" msgstr "Opciones avan. de Gerber" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "Opciones avanzadas" @@ -9706,8 +9712,8 @@ msgstr "" "predeterminado.\n" "<>: ¡No cambie esto a menos que sepa lo que está haciendo!" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -9740,7 +9746,7 @@ msgstr "Tolerancia para la simplificación de polígonos." msgid "Gerber Export" msgstr "Gerber Export" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "Opciones de export" @@ -9752,7 +9758,7 @@ 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/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "Entero/Decimales" @@ -9784,8 +9790,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "Una lista de los parámetros del editor Gerber." -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "Límite de selección" @@ -9831,8 +9837,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "Dim. de apertura" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "Diámetros de las herramientas de corte, separados por ','" @@ -9840,8 +9846,8 @@ msgstr "Diámetros de las herramientas de corte, separados por ','" msgid "Linear Pad Array" msgstr "Matriz lineal de Almohadilla" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "Direccion lineal" @@ -9849,13 +9855,13 @@ msgstr "Direccion lineal" msgid "Circular Pad Array" msgstr "Matriz de Almohadilla Circ" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "Dirección circular" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -9863,8 +9869,8 @@ msgstr "" "Dirección para matriz circular.\n" "Puede ser CW = en sentido horario o CCW = en sentido antihorario." -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "Ángulo circular" @@ -9951,7 +9957,7 @@ msgid "Default values for INCH are 2:4" msgstr "Los valores predeterminados para INCH son 2:4" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -9960,7 +9966,7 @@ msgstr "" "Coordina toda la parte de Excellon." #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -9980,7 +9986,7 @@ msgstr "Los valores predeterminados para Métrica son 3: 3" msgid "Default Zeros" msgstr "DefectoCeros" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10110,11 +10116,11 @@ msgstr "" "Parámetros utilizados para crear un objeto de trabajo CNC\n" "para este objeto taladro." -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "Duración" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -10126,19 +10132,19 @@ msgstr "" "Al elegir 'Ranuras' o 'Ambos', las ranuras serán\n" "convertido en taladros." -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "Crear geometría para fresar agujeros." -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "Valores predeterminados" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "Excellon Adv. Opciones" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -10148,21 +10154,21 @@ msgstr "" "Esos parámetros están disponibles sólo para\n" "Aplicación avanzada Nivel." -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "Cambio de herra X, Y" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "Cambio de herra X, posición Y." -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 #, fuzzy #| msgid "Spindle dir." msgid "Spindle direction" msgstr "Dir del Husillo" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -10174,11 +10180,11 @@ msgstr "" "- CW = en el sentido de las agujas del reloj o\n" "- CCW = a la izquierda" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "Salto rápido" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -10190,11 +10196,11 @@ msgstr "" "es decir, la velocidad más rápida disponible.\n" "ADVERTENCIA: el movimiento se realiza en Toolchange X, Y coords." -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "Retracción rápida" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -10212,11 +10218,11 @@ msgstr "" "Z_move\n" "(altura de recorrido) se realiza lo más rápido posible (G0) en un movimiento." -#: flatcamGUI/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "Excellon Exportar" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -10225,11 +10231,11 @@ msgstr "" "cuando se utiliza la entrada de menú Archivo -> Exportar -> Exportar " "Excellon." -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "Las unidades utilizadas en el archivo Excellon." -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -10241,11 +10247,11 @@ msgstr "" "Aquí configuramos el formato utilizado cuando el proporcionado\n" "Las coordenadas no están usando el punto." -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "Formato" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -10261,15 +10267,15 @@ msgstr "" "También deberá especificarse si LZ = ceros iniciales se mantienen\n" "o TZ = ceros finales se mantienen." -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "Decimal" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "Sin-Decimal" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10283,11 +10289,11 @@ msgstr "" "Si se comprueba TZ, se mantienen los ceros finales.\n" "y se eliminan los ceros iniciales." -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "Tipo de ranura" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -10301,19 +10307,19 @@ msgstr "" "Si PERFORADO (G85), las ranuras se exportarán\n" "utilizando el comando Ranura perforada (G85)." -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "Enrutado" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "Perforado (G85)" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "Una lista de los parámetros de Excellon Editor." -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -10327,19 +10333,19 @@ msgstr "" "Aumenta el rendimiento al mover un\n" "Gran cantidad de elementos geométricos." -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "Nueva Herra. Dia" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "Matriz de taladro lineal" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "Matriz de Taladro Circ" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -10351,19 +10357,19 @@ msgstr "" "El valor mínimo es: -359.99 grados.\n" "El valor máximo es: 360.00 grados." -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "Matriz Lin de Ranuras" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "Matriz Circ de Ranura" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "Geometría General" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -10371,11 +10377,11 @@ msgstr "" "El número de pasos de círculo para Geometría\n" "Círculo y arcos de aproximación lineal." -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "Opc. de geometría" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -10385,11 +10391,11 @@ msgstr "" "trazando los contornos de este\n" "Objeto de geometría." -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "Profund. / Pase" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -10403,11 +10409,11 @@ msgstr "" "Es una fracción de la profundidad.\n" "que tiene valor negativo." -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "Geometría Adv. Opciones" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -10417,12 +10423,13 @@ msgstr "" "Esos parámetros están disponibles sólo para\n" "Aplicación avanzada Nivel." -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "Cambio de herra X, Y" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -10430,13 +10437,13 @@ msgstr "" "Altura de la herramienta justo después de comenzar el trabajo.\n" "Elimine el valor si no necesita esta característica." -#: flatcamGUI/PreferencesUI.py:3508 +#: flatcamGUI/PreferencesUI.py:3526 #, fuzzy #| msgid "Seg. X size" msgid "Segment X size" msgstr "Seg. Talla X" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -10446,13 +10453,13 @@ msgstr "" "Útil para la autonivelación.\n" "Un valor de 0 significa que no hay segmentación en el eje X." -#: flatcamGUI/PreferencesUI.py:3524 +#: flatcamGUI/PreferencesUI.py:3542 #, fuzzy #| msgid "Seg. Y size" msgid "Segment Y size" msgstr "Seg. Tamaño Y" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -10462,15 +10469,15 @@ msgstr "" "Útil para la autonivelación.\n" "Un valor de 0 significa que no hay segmentación en el eje Y." -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "Editor de geometría" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "Una lista de parámetros del editor de geometría." -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -10484,11 +10491,11 @@ msgstr "" "Aumenta el rendimiento al mover un\n" "Gran cantidad de elementos geométricos." -#: flatcamGUI/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "CNC trabajo general" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -10496,11 +10503,11 @@ msgstr "" "El número de pasos de círculo para GCode \n" "Círculo y arcos de aproximación lineal." -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "Dia de Viaje" -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 msgid "" "The width of the travel lines to be\n" "rendered in the plot." @@ -10508,11 +10515,11 @@ msgstr "" "El ancho de las líneas de viaje a ser\n" "prestados en la trama." -#: flatcamGUI/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "Coordina decimales" -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -10520,11 +10527,11 @@ msgstr "" "El número de decimales a utilizar para\n" "Las coordenadas X, Y, Z en código CNC (GCODE, etc.)" -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "Decimales de avance" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -10532,11 +10539,11 @@ msgstr "" "El número de decimales a utilizar para\n" "El parámetro de avance en código CNC (GCODE, etc.)" -#: flatcamGUI/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "Tipo de coordenadas" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -10548,83 +10555,83 @@ msgstr "" "- G90 absoluto -> la referencia es el origen x = 0, y = 0\n" "- Incremental G91 -> la referencia es la posición anterior" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "Absoluto G90" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "G91 incremental" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" msgstr "" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." msgstr "" -#: flatcamGUI/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "Opciones de trabajo CNC" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "Exportar G-Code" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "Prefijo al código G" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "Adjuntar al código G" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "CNCJob Adv. Opciones" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" msgstr "Profundidad Z para el corte" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" msgstr "Altura Z para viajar" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 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/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "Tamaño de la anotación" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 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/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "Color de anotación" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "Establecer el color de fuente para los textos de anotación." -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "Opc. de herra. NCC" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "Herra. dia" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolNonCopperClear.py:223 msgid "" @@ -10636,11 +10643,11 @@ msgstr "" "- 'Forma V'\n" "- circular" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "Forma V" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 #: flatcamTools/ToolNonCopperClear.py:264 msgid "" @@ -10650,14 +10657,14 @@ msgstr "" "Profundidad de corte en el material. Valor negativo.\n" "En unidades FlatCAM." -#: flatcamGUI/PreferencesUI.py:4039 +#: flatcamGUI/PreferencesUI.py:4057 #, fuzzy #| msgid "Diameter for the new tool to add in the Tool Table" msgid "The new tool diameter (cut width) to add in the tool table." msgstr "" "Diámetro de la nueva herramienta para agregar en la tabla de herramientas" -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 #: flatcamTools/ToolNonCopperClear.py:172 msgid "" @@ -10670,13 +10677,13 @@ msgstr "" "herramientas\n" "- convencional / útil cuando no hay compensación de reacción" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "Orden de la Herram" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 #: flatcamTools/ToolNonCopperClear.py:192 flatcamTools/ToolPaint.py:154 #: flatcamTools/ToolPaint.py:164 @@ -10700,17 +10707,17 @@ msgstr "" "orden\n" "en reversa y deshabilitar este control." -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "Adelante" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "Atras" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 #, fuzzy #| msgid "" #| "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -10745,14 +10752,14 @@ msgstr "" "Valores más altos = procesamiento lento y ejecución lenta en CNC\n" "Debido a demasiados caminos." -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "Margen de cuadro delimitador." -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -10763,22 +10770,22 @@ msgstr "" "el interior.
basado en semillas : hacia afuera desde el origen. " "
basado en líneas : Líneas paralelas." -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "Conectar" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "Contorno" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "Resto M ." -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -10797,7 +10804,7 @@ msgstr "" "no más cobre para limpiar o no hay más herramientas.\n" "Si no está marcado, use el algoritmo estándar." -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -10810,11 +10817,11 @@ msgstr "" "de las características de cobre.\n" "El valor puede estar entre 0 y 10 unidades FlatCAM." -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "Valor de Comp" -#: flatcamGUI/PreferencesUI.py:4192 +#: flatcamGUI/PreferencesUI.py:4210 #, fuzzy #| msgid "" #| "If used, it will add an offset to the copper features.\n" @@ -10832,26 +10839,26 @@ msgstr "" "de las características de cobre.\n" "El valor puede estar entre 0 y 10 unidades FlatCAM." -#: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 #: flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "Sí mismo" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "Zona" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "Ref" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "Referencia" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -10871,19 +10878,19 @@ msgstr "" "- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" "especificado por otro objeto." -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "Normal" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "Progresivo" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "Trazado NCC" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 msgid "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10891,16 +10898,16 @@ msgstr "" "- 'Normal': trazado normal, realizado al final del trabajo de NCC\n" "- 'Progresivo': después de generar cada forma, se trazará." -#: flatcamGUI/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "Opc. de herra. de recorte" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "Diá. de Herram" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10908,13 +10915,13 @@ msgstr "" "Diámetro de la herramienta utilizada para cortar\n" "La forma de PCB fuera del material circundante." -#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 #, fuzzy #| msgid "Obj kind" msgid "Object kind" msgstr "Tipo de objeto" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -10926,15 +10933,15 @@ msgstr "" "un panel de PCB Gerber objeto, que se hace\n" "de muchos esquemas de PCB individuales." -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "Soltero" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "Panel" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10944,11 +10951,11 @@ msgstr "" "hará que el corte de la PCB esté más alejado de\n" "el borde real de PCB" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "Tamaño de la brecha" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10960,11 +10967,11 @@ msgstr "" "el material circundante (el\n" "de la cual se corta el PCB)." -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "Brechas" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10988,11 +10995,11 @@ msgstr "" "- 2tb - 2 * top + 2 * bottom\n" "- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "Forma Conv." -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -11000,11 +11007,11 @@ msgstr "" "Crea una forma convexa que rodea toda la PCB.\n" "Se usa solo si el tipo de objeto de origen es Gerber." -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "Opc. de herra. de 2 caras" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -11012,36 +11019,36 @@ msgstr "" "Una herramienta para ayudar en la creación de una doble cara.\n" "PCB utilizando orificios de alineación." -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "Diá. del taladro" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "Diámetro del taladro para los orificios de alineación." -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "Eje del espejo:" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Espejo verticalmente (X) u horizontal (Y)." -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "Punto" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "Caja" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" msgstr "Ref. del eje" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -11051,50 +11058,15 @@ msgstr "" "  un cuadro especificado (en un objeto FlatCAM) a través de\n" "El centro." -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "Opc. de herra. de pintura" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "Parámetros:" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be painted are still \n" -#| "not painted.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." -msgid "" -"How much (fraction) 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ánta (fracción) del ancho de la herramienta se superponen con cada pasada " -"de la herramienta.\n" -"Ejemplo:\n" -"Un valor de 0.25 aquí significa 25%% del diámetro de la herramienta que se " -"encuentra arriba.\n" -"\n" -"Ajuste el valor comenzando con valores más bajos\n" -"y aumentándola si las áreas que deben ser pintadas son todavía\n" -"no pintado\n" -"Valores más bajos = procesamiento más rápido, ejecución más rápida en PCB.\n" -"Valores más altos = procesamiento lento y ejecución lenta en CNC\n" -"Debido a demasiados caminos." - -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 #, fuzzy #| msgid "" @@ -11129,17 +11101,17 @@ msgstr "" "- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" "especificado por otro objeto." -#: flatcamGUI/PreferencesUI.py:4596 +#: flatcamGUI/PreferencesUI.py:4614 #, fuzzy #| msgid "Select" msgid "Sel" msgstr "Seleccionar" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "Trazado de pintura" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 msgid "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -11147,11 +11119,11 @@ msgstr "" "- 'Normal': trazado normal, realizado al final del trabajo de Pintura\n" "- 'Progresivo': después de generar cada forma, se trazará." -#: flatcamGUI/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "Opc. de herra. de película" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" @@ -11161,11 +11133,11 @@ msgstr "" "Objeto FlatCAM.\n" "El archivo se guarda en formato SVG." -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "Tipo de Filme" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -11181,20 +11153,20 @@ msgstr "" "Con blanco sobre un lienzo negro.\n" "El formato de la película es SVG." -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "Color de la película" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 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/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Frontera" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -11214,11 +11186,11 @@ msgstr "" "Color blanco como el resto y que puede confundir con el\n" "Entorno si no fuera por esta frontera." -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Trazo de escala" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 " @@ -11231,11 +11203,11 @@ msgstr "" "por lo tanto, las características finas pueden verse más afectadas por este " "parámetro." -#: flatcamGUI/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Ajustes de la película" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -11246,11 +11218,11 @@ msgstr "" "Esta sección proporciona las herramientas para compensar las distorsiones de " "impresión." -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Escalar la Geo de la Película" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -11258,21 +11230,21 @@ msgstr "" "Un valor mayor que 1 estirará la película\n" "mientras que un valor menor que 1 lo sacudirá." -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "Factor X" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Factor Y" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Incline la Geo de la Película" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -11280,17 +11252,17 @@ msgstr "" "Los valores positivos se sesgarán a la derecha.\n" "mientras que los valores negativos se desviarán a la izquierda." -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Ángulo X" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "Ángulo Y" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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." @@ -11298,57 +11270,57 @@ 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/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Abajo a la izquierda" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Arriba a la izquierda" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Abajo a la derecha" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Arriba a la derecha" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Refleja la Geo de la Película" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 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/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Ambas" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Eje espejo" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" msgstr "" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" msgstr "" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" msgstr "" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "Tipo de filme:" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -11356,32 +11328,25 @@ msgid "" "- 'PDF' -> portable document format" msgstr "" -#: flatcamGUI/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" msgstr "" -#: flatcamGUI/PreferencesUI.py:4835 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" - -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 #, fuzzy #| msgid "Trace Size" msgid "Page Size" msgstr "Tamaño de traza" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." msgstr "" -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "Opc. de la herra. Panelizar" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11391,11 +11356,11 @@ msgstr "" "Cada elemento es una copia del objeto fuente espaciado.\n" "a una distancia X, distancia Y entre sí." -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "Col. de espaciado" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11403,11 +11368,11 @@ msgstr "" "Espaciado entre columnas del panel deseado.\n" "En unidades actuales." -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "Separación de filas" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11415,36 +11380,36 @@ msgstr "" "Espaciado entre filas del panel deseado.\n" "En unidades actuales." -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "Columnas" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "Número de columnas del panel deseado" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "Filas" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "Número de filas del panel deseado" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "Gerber" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "Geo" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "Tipo de panel" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11454,11 +11419,11 @@ msgstr "" "- Gerber\n" "- Geometría" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "Restringir dentro de" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11472,11 +11437,11 @@ msgstr "" "El panel final tendrá tantas columnas y filas como\n" "encajan completamente dentro del área seleccionada." -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "Ancho (DX)" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11484,11 +11449,11 @@ msgstr "" "El ancho (DX) dentro del cual debe caber el panel.\n" "En unidades actuales." -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "Altura (DY)" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11496,15 +11461,15 @@ msgstr "" "La altura (DY) dentro de la cual debe caber el panel.\n" "En unidades actuales." -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "Opc. de herra. de calculadoras" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Calc. de herra. en forma de V" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -11515,11 +11480,11 @@ msgstr "" "teniendo el diámetro de la punta, el ángulo de la punta y\n" "Profundidad de corte como parámetros." -#: flatcamGUI/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Diá. de la punta" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11527,11 +11492,11 @@ msgstr "" "Este es el diámetro de la punta de la herramienta.\n" "Está especificado por el fabricante." -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Ángulo de la punta" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -11539,7 +11504,7 @@ msgstr "" "Este es el ángulo en la punta de la herramienta.\n" "Está especificado por el fabricante." -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -11547,11 +11512,11 @@ msgstr "" "Esta es la profundidad para cortar en material.\n" "En el objeto de trabajo CNC es el parámetro CutZ." -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Calculadora de electrochapado" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " @@ -11562,27 +11527,27 @@ msgstr "" "Utilizando un método como tinta de grahite o tinta de hipofosfito de calcio " "o cloruro de paladio." -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Longitud del tablero" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "Esta es la longitud del tablero. En centímetros." -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Ancho del tablero" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "Este es el ancho de la tabla. En centímetros." -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Densidad actual" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11590,11 +11555,11 @@ msgstr "" "Densidad de corriente para pasar por el tablero.\n" "En amperios por pies cuadrados ASF." -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Crecimiento de cobre" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11602,11 +11567,11 @@ msgstr "" "Qué tan grueso pretende ser el crecimiento del cobre.\n" "En micras." -#: flatcamGUI/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "Opc. de herra. de transformación" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." @@ -11614,19 +11579,19 @@ msgstr "" "Diversas transformaciones que se pueden aplicar.\n" "en un objeto FlatCAM." -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "Sesgar" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "Factor de escalado en eje X." -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Factor de escalado en eje Y." -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11634,7 +11599,7 @@ msgstr "" "Escala el (los) objeto (s) seleccionado (s)\n" "utilizando el factor de escala X para ambos ejes." -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11646,27 +11611,27 @@ msgstr "" "y el centro del cuadro delimitador más grande.\n" "de los objetos seleccionados cuando no está marcada." -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "Valor X" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "Distancia a desplazamiento en el eje X. En unidades actuales." -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Valor Y" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 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/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "Espejo de referencia" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11688,11 +11653,11 @@ msgstr "" "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/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "Punto de Ref del Espejo" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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" @@ -11703,11 +11668,11 @@ msgstr "" "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/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "Opc de Herram. de Pasta" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11715,49 +11680,49 @@ msgstr "" "Una herramienta para crear GCode para dispensar\n" "pasta de soldadura en una PCB." -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "Diámetros de las herramientas de boquilla, separadas por ','" -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "Nuevo diá de boquilla" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 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/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" msgstr "Inicio de dispen. Z" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "La altura (Z) cuando comienza la dispensación de pasta de soldadura." -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" msgstr "Dispensación Z" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 msgid "The height (Z) when doing solder paste dispensing." msgstr "La altura (Z) al dispensar pasta de soldadura." -#: flatcamGUI/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" msgstr "Parada de dispen. Z" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "La altura (Z) cuando se detiene la dispensación de pasta de soldadura." -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "Viajar Z" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11765,15 +11730,15 @@ msgstr "" "La altura (Z) para viajar entre almohadillas\n" "(sin dispensar pasta de soldadura)." -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "Cambio de herra. Z" -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "La altura (Z) para el cambio de herramienta (boquilla)." -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11781,11 +11746,11 @@ 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/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Avance (velocidad) mientras se mueve en el plano X-Y." -#: flatcamGUI/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11793,11 +11758,11 @@ msgstr "" "Avance (velocidad) mientras se mueve verticalmente\n" "(en el plano Z)." -#: flatcamGUI/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" msgstr "Avance de Dispens. Z" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11805,11 +11770,11 @@ msgstr "" "Avance (velocidad) mientras se mueve verticalmente\n" "para dispensar la posición (en el plano Z)." -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "Veloc. del husillo FWD" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11817,19 +11782,19 @@ msgstr "" "La velocidad del dispensador mientras empuja la pasta de soldadura\n" "a través de la boquilla dispensadora." -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "Morar FWD" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "Pausa después de la dispensación de soldadura." -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "Veloc. del husillo REV" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11837,11 +11802,11 @@ msgstr "" "La velocidad del dispensador mientras se retrae la pasta de soldadura\n" "a través de la boquilla dispensadora." -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "Morar REV" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11849,15 +11814,15 @@ msgstr "" "Pausa después de que el dispensador de pasta de soldadura se retraiga,\n" "para permitir el equilibrio de presión." -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "Archivos que controlan la generación de GCode." -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "Opc. de herra. de substractor" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11865,21 +11830,21 @@ msgstr "" "Una herramienta para restar un objeto Gerber o Geometry\n" "de otro del mismo tipo." -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "Caminos cercanos" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 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/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "Opciones de la Herram. Verifique Reglas" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -11888,20 +11853,20 @@ msgstr "" "conjunto\n" "de las normas de fabricación." -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "Tamaño de traza" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 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/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -11910,16 +11875,16 @@ msgstr "Esto comprueba si se cumple el tamaño mínimo para las trazas." msgid "Min value" msgstr "Valor mínimo" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "Tamaño de traza mínimo aceptable." -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "Distancia de Cobre a Cobre" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." @@ -11927,23 +11892,23 @@ msgstr "" "Esto comprueba si la distancia mínima entre cobre\n" "huellas se cumplen." -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "Valor mínimo de distancia aceptable." -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "Distancia de Cobre a Contorno" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -11951,11 +11916,11 @@ msgstr "" "Esto comprueba si la distancia mínima entre cobre\n" "huellas y el esquema se cumple." -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "Distancia de Serigrafía a Serigrafía" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." @@ -11963,13 +11928,13 @@ msgstr "" "Esto comprueba si la distancia mínima entre serigrafía\n" "huellas y huellas de serigrafía se cumplen." -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "Serigrafía para Soldar Máscara Distancia" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -11977,13 +11942,13 @@ msgstr "" "Esto comprueba si la distancia mínima entre serigrafía\n" "Traces y soldermask traces se cumplen." -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "Serigrafía para Contorno Distancia" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -11991,12 +11956,12 @@ msgstr "" "Esto verifica si el espacio libre mínimo entre la serigrafía\n" "huellas y el contorno se cumple." -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "Astilla de máscara de soldadura mínima" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -12004,13 +11969,13 @@ 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/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "Anillo anular mínimo" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -12018,16 +11983,16 @@ msgstr "" "Esto verifica si queda el anillo de cobre mínimo al perforar\n" "Se encuentra un agujero en una almohadilla." -#: flatcamGUI/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "Valor mínimo aceptable del anillo." -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "Distancia entre Agujeros" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." @@ -12035,16 +12000,16 @@ msgstr "" "Esto verifica si la distancia mínima entre un taladro\n" "y se encuentra otro taladro." -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "Tamaño mínimo aceptable de perforación." -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "Tamaño del Agujero" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -12052,11 +12017,11 @@ msgstr "" "Esto comprueba si los agujeros de perforación\n" "Los tamaños están por encima del umbral." -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "Opciones de Herram. Óptimas" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -12064,46 +12029,46 @@ msgstr "" "Una herramienta para encontrar la distancia mínima entre\n" "cada dos elementos geométricos de Gerber" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Precisión" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 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/PreferencesUI.py:5855 +#: flatcamGUI/PreferencesUI.py:5873 #, fuzzy #| msgid "NCC Tool Options" msgid "QRCode Tool Options" msgstr "Opc. de herra. NCC" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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 "" -#: flatcamGUI/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 #, fuzzy #| msgid "Conversion" msgid "Version" msgstr "Conversión" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." msgstr "" -#: flatcamGUI/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 #, fuzzy #| msgid "Corrections" msgid "Error correction" msgstr "Correcciones" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -12114,66 +12079,66 @@ msgid "" "H = maximum 30%% errors can be corrected." msgstr "" -#: flatcamGUI/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 #, fuzzy #| msgid "Font Size" msgid "Box Size" msgstr "Tamaño de Fuente" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." msgstr "" -#: flatcamGUI/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 #, fuzzy #| msgid "Border" msgid "Border Size" msgstr "Frontera" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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 "" -#: flatcamGUI/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 #, fuzzy #| msgid "Tool Data" msgid "QRCode Data" msgstr "Datos de Herram" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" -#: flatcamGUI/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "" -#: flatcamGUI/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 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 "" -#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Negativa" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Positivo" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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" @@ -12181,85 +12146,85 @@ msgid "" "file then perhaps the QRCode can be added as negative." msgstr "" -#: flatcamGUI/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: 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 "" -#: flatcamGUI/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 #, fuzzy #| msgid "Round" msgid "Rounded" msgstr "Redondo" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 #, fuzzy #| msgid "Film Color" msgid "Fill Color" msgstr "Color de la película" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "" -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 #, fuzzy #| msgid "Font Color" msgid "Back Color" msgstr "Color de Fuente" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "" -#: flatcamGUI/PreferencesUI.py:6043 +#: flatcamGUI/PreferencesUI.py:6061 #, fuzzy #| msgid "SolderPaste Tool Options" msgid "Copper Thieving Tool Options" msgstr "Opc de Herram. de Pasta" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." msgstr "" -#: flatcamGUI/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." msgstr "" -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 #, fuzzy #| msgid "Tolerance" msgid "Clearance" msgstr "Tolerancia" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 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 "" -#: flatcamGUI/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "Selección de área" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "Objeto de referencia" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "Referencia:" -#: flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6126 #, fuzzy #| msgid "" #| "- 'Itself' - the non copper clearing extent\n" @@ -12271,9 +12236,8 @@ msgstr "Referencia:" #| "- 'Reference Object' - will do non copper clearing within the area\n" #| "specified by another object." msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is " -"copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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." @@ -12287,69 +12251,69 @@ msgstr "" "- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" "especificado por otro objeto." -#: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "Rectangular" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" msgstr "" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Tipo de caja:" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" -#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" msgstr "" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 #, fuzzy #| msgid "Square" msgid "Squares Grid" msgstr "Cuadrado" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 #, fuzzy #| msgid "Linear" msgid "Lines Grid" msgstr "Lineal" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 #, fuzzy #| msgid "Film Type:" msgid "Fill Type:" msgstr "Tipo de filme:" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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 "" -#: flatcamGUI/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 #, fuzzy #| msgid "Slot Parameters" msgid "Dots Grid Parameters" msgstr "Parámetros de ranura" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 #, fuzzy #| msgid "Tool diameter in file units." msgid "Dot diameter in Dots Grid." msgstr "Diámetro de herramienta en unidades de archivo." -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 #, fuzzy @@ -12357,154 +12321,154 @@ msgstr "Diámetro de herramienta en unidades de archivo." msgid "Spacing" msgstr "Col. de espaciado" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 #, fuzzy #| msgid "Slot Array Parameters" msgid "Squares Grid Parameters" msgstr "Parámetros de matriz de ranuras" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 #, fuzzy #| msgid "Change Parameter" msgid "Lines Grid Parameters" msgstr "Cambiar parámetro" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 #, fuzzy #| msgid "Slot Parameters" msgid "Robber Bar Parameters" msgstr "Parámetros de ranura" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." msgstr "" -#: flatcamGUI/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 #, fuzzy #| msgid "Bounding box margin." msgid "Bounding box margin for robber bar." msgstr "Margen de cuadro delimitador." -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" msgstr "" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." msgstr "" -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" msgstr "" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." msgstr "" -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." msgstr "" -#: flatcamGUI/PreferencesUI.py:6298 +#: flatcamGUI/PreferencesUI.py:6316 #, fuzzy #| msgid "Film Tool Options" msgid "Fiducials Tool Options" msgstr "Opc. de herra. de película" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 #, fuzzy #| msgid "Diameter for the new tool." msgid "Parameters used for this tool." msgstr "Diámetro para la nueva herramienta." -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 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 "" -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 #, fuzzy #| msgid "Manual Geo" msgid "Manual" msgstr "Geo manual" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." msgstr "" -#: flatcamGUI/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 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" +"- '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 "" -#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 #, fuzzy #| msgid "Film Type" msgid "Fiducial Type" msgstr "Tipo de Filme" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -12512,23 +12476,23 @@ msgid "" "- 'Chess' - chess pattern fiducial." msgstr "" -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "" -#: flatcamGUI/PreferencesUI.py:6414 +#: flatcamGUI/PreferencesUI.py:6432 #, fuzzy #| msgid "Calculators Tool Options" msgid "Calibration Tool Options" msgstr "Opc. de herra. de calculadoras" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 #, fuzzy #| msgid "Source" msgid "Source Type" msgstr "Fuente" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -12536,13 +12500,13 @@ msgid "" "- Free -> click freely on canvas to acquire the calibration points" msgstr "" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 #, fuzzy #| msgid "FreeForm" msgid "Free" msgstr "Forma libre" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 #, fuzzy #| msgid "" #| "The height (Z) for travel between pads\n" @@ -12552,61 +12516,93 @@ msgstr "" "La altura (Z) para viajar entre almohadillas\n" "(sin dispensar pasta de soldadura)." -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 #, fuzzy #| msgid "Gerber Specification" msgid "Verification Z" msgstr "Especificación de Gerber" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "" -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." msgstr "" -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "" -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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 "" + +#: flatcamGUI/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +#, fuzzy +#| msgid "Second object point" +msgid "Second point" +msgstr "Segundo punto" + +#: flatcamGUI/PreferencesUI.py:6532 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 "" + +#: flatcamGUI/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +#, fuzzy +#| msgid "Top Left" +msgid "Top-Left" +msgstr "Arriba a la izquierda" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +#, fuzzy +#| msgid "Bottom Right" +msgid "Bottom-Right" +msgstr "Abajo a la derecha" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "Excellon File asociaciones" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "Restaurar" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "Restaurar la lista de extensiones al estado predeterminado." -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "Eliminar todosEliminar taladro" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "Eliminar todas las extensiones de la lista." -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "Lista de extensiones" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -12614,43 +12610,43 @@ msgstr "" "Lista de extensiones de archivo para ser\n" "asociado con FlatCAM." -#: flatcamGUI/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "ExtensiónLista de extensiones" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 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/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "Agregar extensión" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "Agregar una extensión de archivo a la lista" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "Eliminar extensión" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "Eliminar una extensión de archivo de la lista" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "Aplicar asociación" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12662,33 +12658,33 @@ msgstr "" "Estarán activos después del próximo inicio de sesión.\n" "Esto funciona solo en Windows." -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "Asociaciones de archivos GCode" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "Asociaciones de archivos Gerber" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "Palabras clave de autocompletador" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 msgid "Restore the autocompleter keywords list to the default state." msgstr "" "Restaure la lista de palabras clave de autocompletador al estado " "predeterminado." -#: flatcamGUI/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "Elimine todas las palabras clave de autocompletador de la lista." -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "Lista de palabras clave" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -12700,23 +12696,23 @@ msgstr "" "El autocompletador está instalado\n" "en el Editor de Código y para el Tcl Shell." -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 msgid "A keyword to be added or deleted to the list." msgstr "Una palabra clave para agregar o eliminar a la lista." -#: flatcamGUI/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "Agregar palabra clave" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "Agregar una palabra clave a la lista" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "Eliminar palabra clave" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "Eliminar una palabra clave de la lista" @@ -12746,16 +12742,19 @@ msgstr "" "El usuario necesita editar el objeto Excellon resultante y cambiar los " "diámetros para reflejar los diámetros reales." -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 +#, fuzzy +#| msgid "" +#| "{e_code} Excellon Parser error.\n" +#| "Parsing Failed. Line {l_nr}: {line}\n" msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" "{e_code} Error del analizador Excellon.\n" "El análisis falló. Línea {l_nr}: {line}\n" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12773,11 +12772,14 @@ msgstr "Fuente no compatible, prueba con otra." msgid "Gerber processing. Parsing" msgstr "Procesamiento de Gerber. Analizando" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "líneas" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "Coordenadas faltantes, línea ignorada" @@ -12793,7 +12795,7 @@ 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:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "Procesamiento de Gerber. Unir polígonos" @@ -12833,6 +12835,30 @@ msgstr "Gerber Sesgo hecho." msgid "Gerber Rotate done." msgstr "Rotar Gerber hecho." +#: flatcamParsers/ParseHPGL2.py:176 +#, fuzzy +#| msgid "Gerber processing. Parsing" +msgid "HPGL2 processing. Parsing" +msgstr "Procesamiento de Gerber. Analizando" + +#: flatcamParsers/ParseHPGL2.py:408 +#, fuzzy +#| msgid "Plot Line" +msgid "HPGL2 Line" +msgstr "Lin. Gráfico" + +#: flatcamParsers/ParseHPGL2.py:408 +#, fuzzy +#| msgid "Gerber Line Content" +msgid "HPGL2 Line Content" +msgstr "Contenido de la línea Gerber" + +#: flatcamParsers/ParseHPGL2.py:409 +#, fuzzy +#| msgid "Gerber Parser ERROR" +msgid "HPGL2 Parser ERROR" +msgstr "Analizador Gerber ERROR" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Calculadoras" @@ -12923,122 +12949,126 @@ msgstr "" msgid "Calc. Tool" msgstr "Calc. Herramienta" -#: flatcamTools/ToolCalibration.py:36 +#: flatcamTools/ToolCalibration.py:67 #, fuzzy -#| msgid "Calculators Tool" -msgid "Calibration Tool" -msgstr "Herramienta de Calculadoras" +#| msgid "Slot Parameters" +msgid "GCode Parameters" +msgstr "Parámetros de ranura" -#: flatcamTools/ToolCalibration.py:66 +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "" + +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." msgstr "" -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 #: flatcamTools/ToolPanelize.py:66 flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "Tipo de objeto" -#: flatcamTools/ToolCalibration.py:101 +#: flatcamTools/ToolCalibration.py:211 #, fuzzy #| msgid "No object selected." msgid "Source object selection" msgstr "Ningún objeto seleccionado." -#: flatcamTools/ToolCalibration.py:103 +#: flatcamTools/ToolCalibration.py:213 #, fuzzy #| msgid "The FlatCAM object to be used as non copper clearing reference." msgid "FlatCAM Object to be used as a source for reference points." msgstr "" "El objeto FlatCAM que se utilizará como referencia de compensación sin cobre." -#: flatcamTools/ToolCalibration.py:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." msgstr "" -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "Objetivo" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 #, fuzzy #| msgid "Bottom Left" msgid "Bot Left X" msgstr "Abajo a la izquierda" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 #, fuzzy #| msgid "Bottom Left" msgid "Bot Left Y" msgstr "Abajo a la izquierda" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 #, fuzzy #| msgid "Origin set" msgid "Origin" msgstr "Conjunto de origen" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 #, fuzzy #| msgid "Bottom Right" msgid "Bot Right X" msgstr "Abajo a la derecha" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 #, fuzzy #| msgid "Bottom Right" msgid "Bot Right Y" msgstr "Abajo a la derecha" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 #, fuzzy #| msgid "Top Left" msgid "Top Left X" msgstr "Arriba a la izquierda" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 #, fuzzy #| msgid "Top Left" msgid "Top Left Y" msgstr "Arriba a la izquierda" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 #, fuzzy #| msgid "Top right" msgid "Top Right X" msgstr "Arriba a la derecha" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 #, fuzzy #| msgid "Top right" msgid "Top Right Y" msgstr "Arriba a la derecha" -#: flatcamTools/ToolCalibration.py:258 +#: flatcamTools/ToolCalibration.py:370 #, fuzzy #| msgid "Ref. Point" msgid "Get Points" msgstr "Punto de Ref" -#: flatcamTools/ToolCalibration.py:260 +#: flatcamTools/ToolCalibration.py:372 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" @@ -13046,160 +13076,163 @@ msgid "" "the object." msgstr "" -#: flatcamTools/ToolCalibration.py:281 +#: flatcamTools/ToolCalibration.py:393 #, fuzzy #| msgid "Generate GCode" msgid "STEP 2: Verification GCode" msgstr "Generar GCode" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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 "" -#: flatcamTools/ToolCalibration.py:288 -#, fuzzy -#| msgid "Slot Parameters" -msgid "GCode Parameters" -msgstr "Parámetros de ranura" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "" - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Generar GCode" -#: flatcamTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:432 #, fuzzy #| msgid "Film Adjustments" msgid "STEP 3: Adjustments" msgstr "Ajustes de la película" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 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 "" -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 #, fuzzy #| msgid "Calculators" msgid "Calculate Factors" msgstr "Calculadoras" -#: flatcamTools/ToolCalibration.py:400 +#: flatcamTools/ToolCalibration.py:463 #, fuzzy #| msgid "Generate GCode" msgid "STEP 4: Adjusted GCode" msgstr "Generar GCode" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." msgstr "" -#: flatcamTools/ToolCalibration.py:407 +#: flatcamTools/ToolCalibration.py:470 #, fuzzy #| msgid "Scale factor" msgid "Scale Factor X:" msgstr "Factor de escala" -#: flatcamTools/ToolCalibration.py:419 +#: flatcamTools/ToolCalibration.py:482 #, fuzzy #| msgid "Scale factor" msgid "Scale Factor Y:" msgstr "Factor de escala" -#: flatcamTools/ToolCalibration.py:431 +#: flatcamTools/ToolCalibration.py:494 #, fuzzy #| msgid "Scale factor" msgid "Apply Scale Factors" msgstr "Factor de escala" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:443 +#: flatcamTools/ToolCalibration.py:506 #, fuzzy #| msgid "Angle X:" msgid "Skew Angle X:" msgstr "Ángulo X:" -#: flatcamTools/ToolCalibration.py:456 +#: flatcamTools/ToolCalibration.py:519 #, fuzzy #| msgid "Angle Y:" msgid "Skew Angle Y:" msgstr "Ángulo Y:" -#: flatcamTools/ToolCalibration.py:469 +#: flatcamTools/ToolCalibration.py:532 #, fuzzy #| msgid "Applying Skew" msgid "Apply Skew Factors" msgstr "Aplicando Sesgo" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 #, fuzzy #| msgid "Generate GCode" msgid "Generate Adjusted GCode" msgstr "Generar GCode" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +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 "" + +#: flatcamTools/ToolCalibration.py:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "" -#: flatcamTools/ToolCalibration.py:563 +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." msgstr "" -#: flatcamTools/ToolCalibration.py:572 +#: flatcamTools/ToolCalibration.py:641 #, fuzzy #| msgid "Edit Object\tE" msgid "Adjusted object type" msgstr "Editar objeto\tE" -#: flatcamTools/ToolCalibration.py:574 +#: flatcamTools/ToolCalibration.py:643 #, fuzzy #| msgid "Geometry Obj to be mirrored." msgid "Type of the FlatCAM Object to be adjusted." msgstr "Obj de geometría para ser reflejado." -#: flatcamTools/ToolCalibration.py:585 +#: flatcamTools/ToolCalibration.py:654 #, fuzzy #| msgid "Edit Object\tE" msgid "Adjusted object selection" msgstr "Editar objeto\tE" -#: flatcamTools/ToolCalibration.py:587 +#: flatcamTools/ToolCalibration.py:656 #, fuzzy #| msgid "Excellon Object to be mirrored." msgid "The FlatCAM Object to be adjusted." msgstr "Excellon Objeto a ser reflejado." -#: flatcamTools/ToolCalibration.py:594 +#: flatcamTools/ToolCalibration.py:663 #, fuzzy #| msgid "Creating Excellon." msgid "Calibrate" msgstr "Creación de Excellon." -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." msgstr "" -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 @@ -13211,7 +13244,7 @@ msgstr "" msgid "Reset Tool" msgstr "Herramienta de Reglas" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 @@ -13227,59 +13260,61 @@ msgstr "" "Seleccionar herramientas.\n" "Modificar parámetros." -#: flatcamTools/ToolCalibration.py:688 -#, fuzzy -#| msgid "Creating Excellon." -msgid "Calibrate Tool" -msgstr "Creación de Excellon." - -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "" -#: flatcamTools/ToolCalibration.py:747 +#: flatcamTools/ToolCalibration.py:824 #, fuzzy #| msgid "There is no Excellon object loaded ..." msgid "There is no source FlatCAM object selected..." msgstr "No hay ningún objeto Excellon cargado ..." -#: flatcamTools/ToolCalibration.py:768 +#: flatcamTools/ToolCalibration.py:845 #, fuzzy #| msgid "Click inside the desired polygon." msgid "Get First calibration point. Bottom Left..." msgstr "Haga clic dentro del polígono deseado." -#: flatcamTools/ToolCalibration.py:820 -msgid "Get Second calibration point. Bottom Right..." -msgstr "" +#: flatcamTools/ToolCalibration.py:906 +#, fuzzy +#| msgid "Copy cancelled. No shape selected." +msgid "Cancelled by user request." +msgstr "Copia cancelada. Ninguna forma seleccionada." -#: flatcamTools/ToolCalibration.py:824 +#: flatcamTools/ToolCalibration.py:912 #, fuzzy #| msgid "Click inside the desired polygon." -msgid "Get Third calibration point. Top Left..." +msgid "Get Second calibration point. Bottom Right (Top Left)..." msgstr "Haga clic dentro del polígono deseado." -#: flatcamTools/ToolCalibration.py:828 +#: flatcamTools/ToolCalibration.py:916 +#, fuzzy +#| msgid "Click inside the desired polygon." +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "Haga clic dentro del polígono deseado." + +#: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." msgstr "" -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "" -#: flatcamTools/ToolCalibration.py:857 -msgid "Verification GCode for FlatCAM Calibrate Tool" +#: flatcamTools/ToolCalibration.py:955 +msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." msgstr "" -#: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 #, fuzzy #| msgid "There is no Box object loaded ..." msgid "There is no FlatCAM object selected..." @@ -13308,8 +13343,7 @@ msgstr "" #| "- 'Reference Object' - will do non copper clearing within the area\n" #| "specified by another object." msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is " -"copper cleared.\n" +"- '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 " @@ -13374,20 +13408,6 @@ 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:175 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" - -#: flatcamTools/ToolCopperThieving.py:197 -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 "" - #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" msgstr "" @@ -13512,9 +13532,9 @@ msgstr "Herramienta de Limpieza Sin Cobre" #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 -#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1155 -#: flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1156 +#: flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 #: flatcamTools/ToolSub.py:492 flatcamTools/ToolSub.py:507 @@ -13524,7 +13544,7 @@ msgid "Could not retrieve object" msgstr "No se pudo recuperar el objeto" #: flatcamTools/ToolCopperThieving.py:764 -#: flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "Haga clic en el punto de inicio del área." @@ -13535,7 +13555,7 @@ msgid "Click the end point of the filling area." msgstr "Haga clic en el punto final del área de pintura." #: flatcamTools/ToolCopperThieving.py:821 -#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 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 " @@ -13575,12 +13595,12 @@ msgid "Geometry not supported for bounding box" msgstr "Geometría no admitida para recorte" #: flatcamTools/ToolCopperThieving.py:1061 -#: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "No hay objeto disponible." #: flatcamTools/ToolCopperThieving.py:1098 -#: flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "El tipo de objeto de referencia no es compatible." @@ -13803,8 +13823,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "Cualquier forma de operación de corte finalizada." -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "Objeto no encontrado" @@ -13890,10 +13910,6 @@ msgstr "Excellon Objeto a ser reflejado." msgid "Geometry Obj to be mirrored." msgstr "Obj de geometría para ser reflejado." -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "Ref. del eje:" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "Punto/caja de referencia" @@ -14139,10 +14155,21 @@ msgstr "MEDICIÓN: haga clic en el punto de inicio ..." msgid "MEASURING: Click on the Destination point ..." msgstr "MEDICIÓN: haga clic en el punto de destino ..." -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "MEDICIÓN: Resultado D(x) = {d_x} | D(y) = {d_y} | Distancia = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +#, fuzzy +#| msgid "Geo Result" +msgid "Result" +msgstr "Resultado Geo" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +#, fuzzy +#| msgid "Distance Tool" +msgid "Distance" +msgstr "Herramienta de Dist" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -14200,11 +14227,11 @@ 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:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "Los objetos se cruzan o tocan" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "Saltó al punto medio entre los dos objetos seleccionados" @@ -14238,6 +14265,13 @@ msgstr "Arriba a la derecha" msgid "Second Point" msgstr "Segundo punto" +#: flatcamTools/ToolFiducials.py:191 +msgid "" +"- 'Auto' - automatic placement of fiducials in the corners of the bounding " +"box.\n" +" - 'Manual' - manual placement of fiducials." +msgstr "" + #: flatcamTools/ToolFiducials.py:258 #, fuzzy #| msgid "Open Gerber" @@ -14457,30 +14491,36 @@ msgstr "" "No se ha seleccionado ningún objeto FlatCAM. Cargue un objeto para Box y " "vuelva a intentarlo." -#: flatcamTools/ToolFilm.py:680 +#: flatcamTools/ToolFilm.py:673 +#, fuzzy +#| msgid "No object selected." +msgid "No FlatCAM object selected." +msgstr "Ningún objeto seleccionado." + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Generando película ..." -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 #, fuzzy #| msgid "Export SVG positive" msgid "Export positive film" msgstr "Exportar SVG positivo" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 #, fuzzy #| msgid "Export SVG positive cancelled." msgid "Export positive film cancelled." msgstr "Exportación SVG positiva cancelada." -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 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:784 +#: flatcamTools/ToolFilm.py:794 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14489,7 +14529,7 @@ msgstr "" "agujero perforado es más grande que algunas de las aberturas en el objeto " "Gerber." -#: flatcamTools/ToolFilm.py:796 +#: 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." @@ -14498,7 +14538,7 @@ msgstr "" "agujero perforado es más grande que algunas de las aberturas en el objeto " "Gerber." -#: flatcamTools/ToolFilm.py:814 +#: flatcamTools/ToolFilm.py:824 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14507,30 +14547,30 @@ msgstr "" "objeto recién creada es la misma que la de la geometría del objeto de " "origen ..." -#: flatcamTools/ToolFilm.py:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 #, fuzzy #| msgid "Export SVG negative" msgid "Export negative film" msgstr "Exportar SVG negativo" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 #, fuzzy #| msgid "Export SVG negative cancelled." msgid "Export negative film cancelled." msgstr "Exportar SVG negativo cancelado." -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "Sin objeto Caja. Usando en su lugar" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 #, fuzzy #| msgid "DXF file exported to" msgid "Film file exported to" msgstr "Archivo DXF exportado a" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "Generando Película ... Por favor espere." @@ -14856,117 +14896,117 @@ msgstr "" msgid "Generate Geometry" msgstr "Generar Geometría" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "Nueva Herram" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 msgid "Please enter a tool diameter to add, in Float format." msgstr "Ingrese un diámetro de herramienta para agregar, en formato decimal." -#: flatcamTools/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "" "Agregando herramienta cancelada. Herramienta ya en la tabla de herramientas." -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "Nueva herramienta agregada a la Tabla de herramientas." -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "Se editó la herramienta de la tabla de herramientas." -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" "Editar cancelado El nuevo valor del diámetro ya está en la Tabla de " "herramientas." -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "Eliminar falló. Seleccione una herramienta para eliminar." -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "Herramienta (s) eliminada de la tabla de herramientas." -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 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/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "Seleccione una herramienta en la tabla de herramientas." -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "Haga clic en el punto final del área de pintura." -#: flatcamTools/ToolNonCopperClear.py:1413 -#: flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 +#: flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "Limpieza sin cobre ..." -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "Herramienta NCC iniciada. Parámetros de lectura." -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Herramienta NCC. Preparación de polígonos sin cobre." -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 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/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "Herramienta NCC. Calcule el área 'vacía'." -#: flatcamTools/ToolNonCopperClear.py:1629 -#: flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 -#: flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 -#: flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 +#: flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 +#: flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 +#: flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "Buffering terminado" -#: flatcamTools/ToolNonCopperClear.py:1747 -#: flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 +#: flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "El objeto seleccionado no es adecuado para la limpieza de cobre." -#: flatcamTools/ToolNonCopperClear.py:1752 -#: flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 +#: flatcamTools/ToolNonCopperClear.py:2109 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/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Herramienta NCC. Cálculo finalizado del área 'vacía'." -#: flatcamTools/ToolNonCopperClear.py:1772 -#: flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 +#: flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "Herram. NCC se está limpiando con el diá de la herram. = " -#: flatcamTools/ToolNonCopperClear.py:1775 -#: flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 +#: flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "empezado." -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14978,26 +15018,26 @@ msgstr "" "grande para la geometría pintada.\n" "Cambie los parámetros de pintura e intente nuevamente." -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "Herramienta NCC borrar todo hecho." -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 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/ToolNonCopperClear.py:1943 -#: flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 +#: flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "herramientas" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "NCC herramienta de mecanizado de reposo claro todo hecho." -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -15005,7 +15045,7 @@ msgstr "" "El mecanizado de reposo de herramientas NCC está claro, pero el aislamiento " "de características de cobre está roto por" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -15317,30 +15357,30 @@ msgstr "" "- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" "especificado por otro objeto." -#: flatcamTools/ToolPaint.py:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "Herramienta de pintura. Parámetros de lectura." -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "No se pudo recuperar el objeto: %s" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "No se puede Pintar en geometrías de geo-múltiple" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 #, fuzzy #| msgid "Click on target point." msgid "Click on a polygon to paint it." msgstr "Haga clic en el punto de destino." -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Haga clic en el punto de inicio del área de pintura." -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15349,7 +15389,7 @@ msgstr "" "Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " "clic con el botón derecho para finalizar." -#: flatcamTools/ToolPaint.py:1138 +#: flatcamTools/ToolPaint.py:1140 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15358,39 +15398,39 @@ msgstr "" "Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " "clic con el botón derecho para finalizar." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "Herramienta de Pintura." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "Se inició la tarea normal de polígono de pintura." -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "Almacenar la geometría ..." -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "No se encontró polígono." -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "Pintar polígono ..." -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "La Geometría no se pudo pintar completamente" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -15398,9 +15438,9 @@ msgstr "" "No se pudo Pintar. Pruebe con una combinación diferente de parámetros. O una " "estrategia diferente de pintura" -#: flatcamTools/ToolPaint.py:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -15412,36 +15452,36 @@ msgstr "" "grande para la geometría pintada.\n" "Cambie los parámetros de pintura e intente nuevamente." -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "Pintar solo hecho." -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "Polygon Pinta comenzó ..." -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "Pintar polígonos ..." -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "Herramienta de pintura. La pintura normal comenzó toda tarea." -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "Pintar con diá de herram. = " -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "empezado" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" @@ -15449,33 +15489,33 @@ msgstr "" "No se pudo Pintar Todo. Pruebe con una combinación diferente de parámetros. " "O un método diferente de pintura" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "Pintar todo listo." -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "Resto mecanizado pintando toda la tarea iniciada." -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "Pinte Todo con el mecanizado de descanso hecho." -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "Se inició la tarea normal del área de pintura." -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "Área de pintura hecha." -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "Se inició la tarea de área de pintura de mecanizado en reposo." -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "" "Herramienta de pintura. Se inició la tarea de área de pintura de mecanizado " @@ -16536,42 +16576,42 @@ msgstr "" msgid "Generating Solder Paste dispensing geometry..." msgstr "Generando geometría de dispensación de pasta de soldadura ..." -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "No hay ningún objeto de Geometría disponible." -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 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:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "Herramienta soldar pegar CNCjob creado" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 #, fuzzy #| msgid "Code Editor" msgid "SP GCode Editor" msgstr "Editor de código" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 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:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "No Gcode en el objeto" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "Exportar GCode ..." -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "Dispensador de pasta de soldadura Archivo GCode guardado en: %s" @@ -16883,16 +16923,16 @@ msgstr "Se esperaba una lista de nombres de objetos separados por comas. Tiene" msgid "TclCommand Bounds done." msgstr "TclCommand Bounds hecho." -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "Se esperaba -box ." -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "No se pudo recuperar el objeto" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." @@ -16901,11 +16941,11 @@ msgstr "" "se estableció en 1.\n" "La limpieza de cobre falló." -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "Esperado -x y -y ." -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." @@ -16934,6 +16974,100 @@ 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." +#, python-brace-format +#~ msgid "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" +#~ msgstr "" +#~ "[selected] {kind} creado / seleccionado: {name} " + +#, python-brace-format +#~ msgid "[selected]{name} selected" +#~ msgstr "" +#~ "[selected] {name} seleccionado" + +#, python-brace-format +#~ msgid "{l_save}/Project_{date}" +#~ msgstr "{l_save}/Proyecto_{date}" + +#, fuzzy, python-format +#~| msgid "" +#~| "How much (fraction) of the tool width to overlap each tool pass.\n" +#~| "Example:\n" +#~| "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~| "\n" +#~| "Adjust the value starting with lower values\n" +#~| "and increasing it if areas that should be painted are still \n" +#~| "not painted.\n" +#~| "Lower values = faster processing, faster execution on PCB.\n" +#~| "Higher values = slow processing and slow execution on CNC\n" +#~| "due of too many paths." +#~ msgid "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." +#~ msgstr "" +#~ "Cuánta (fracción) del ancho de la herramienta se superponen con cada " +#~ "pasada de la herramienta.\n" +#~ "Ejemplo:\n" +#~ "Un valor de 0.25 aquí significa 25%% del diámetro de la herramienta que " +#~ "se encuentra arriba.\n" +#~ "\n" +#~ "Ajuste el valor comenzando con valores más bajos\n" +#~ "y aumentándola si las áreas que deben ser pintadas son todavía\n" +#~ "no pintado\n" +#~ "Valores más bajos = procesamiento más rápido, ejecución más rápida en " +#~ "PCB.\n" +#~ "Valores más altos = procesamiento lento y ejecución lenta en CNC\n" +#~ "Debido a demasiados caminos." + +#~ msgid "Paint Area" +#~ msgstr "Área de pintura" + +#, fuzzy +#~| msgid "" +#~| "Type here any G-Code commands you would\n" +#~| "like to add at the beginning of the G-Code file." +#~ msgid "" +#~ "Type here any G-Code commands you would 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." + +#, fuzzy +#~| msgid "" +#~| "Type here any G-Code commands you would\n" +#~| "like to append to the generated file.\n" +#~| "I.e.: M2 (End of program)" +#~ msgid "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. 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)" + +#, fuzzy +#~| msgid "Creating Excellon." +#~ msgid "Calibrate Tool" +#~ msgstr "Creación de Excellon." + +#~ msgid "Axis Ref:" +#~ msgstr "Ref. del eje:" + +#, python-brace-format +#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#~ msgstr "MEDICIÓN: Resultado D(x) = {d_x} | D(y) = {d_y} | Distancia = {d_z}" + #~ msgid "Change project units ..." #~ msgstr "Cambiar unidades de proyecto ..." From 23fc79b5089326a0a6f055888110728c547e5058 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 14 Dec 2019 03:20:29 +0200 Subject: [PATCH 35/36] - small updates (Google Translate) in Russian and Brazilian-PT languages --- README.md | 1 + locale/pt_BR/LC_MESSAGES/strings.mo | Bin 348047 -> 351059 bytes locale/pt_BR/LC_MESSAGES/strings.po | 5174 ++++++++++++++------------- locale/ru/LC_MESSAGES/strings.mo | Bin 459877 -> 461648 bytes locale/ru/LC_MESSAGES/strings.po | 5137 +++++++++++++------------- locale_template/strings.pot | 4625 ++++++++++++------------ 6 files changed, 7686 insertions(+), 7251 deletions(-) diff --git a/README.md b/README.md index f65921ad..427190b4 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ CAD program, and create G-Code for Isolation routing. - some strings updated; update on the Romanian translate - more strings updated; finished the Romanian translation update - some work in updating the Spanish Google-translation +- small updates (Google Translate) in Russian and Brazilian-PT languages 12.12.2019 diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index ede6ea9dd35e0e98a6f64cb26fb34dab06e4de5f..40b7f9f52c7ef2ff7953ac247488a3744ddc4dc4 100644 GIT binary patch delta 68330 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 z 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�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 diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po index d7e5e515..2a33914c 100644 --- a/locale/pt_BR/LC_MESSAGES/strings.po +++ b/locale/pt_BR/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-12-09 13:38-0300\n" -"PO-Revision-Date: 2019-12-09 21:18-0300\n" +"POT-Creation-Date: 2019-12-14 03:03+0200\n" +"PO-Revision-Date: 2019-12-14 03:19+0200\n" "Last-Translator: Carlos Stein \n" "Language-Team: \n" "Language: pt_BR\n" @@ -18,17 +18,17 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: FlatCAMApp.py:988 +#: FlatCAMApp.py:999 msgid "FlatCAM is initializing ..." msgstr "FlatCAM está inicializando...." -#: FlatCAMApp.py:1566 +#: FlatCAMApp.py:1580 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." -#: FlatCAMApp.py:1659 +#: FlatCAMApp.py:1673 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -36,7 +36,7 @@ msgstr "" "FlatCAM está inicializando....\n" "Inicialização do Canvas iniciada." -#: FlatCAMApp.py:1677 +#: FlatCAMApp.py:1691 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -46,7 +46,7 @@ msgstr "" "Inicialização do Canvas iniciada.\n" "Inicialização do Canvas concluída em" -#: FlatCAMApp.py:2373 +#: FlatCAMApp.py:2388 msgid "" "Type >help< to get started\n" "\n" @@ -54,12 +54,13 @@ msgstr "" "Digite >help< para iniciar\n" "\n" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "Novo Projeto - Não salvo" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 +#: FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -67,52 +68,47 @@ msgstr "" "Inicialização do Canvas iniciada.\n" "Inicialização do Canvas concluída em" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "Executando Script Tcl..." -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 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." -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "Abrir cancelado." -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "Falha ao abrir o arquivo de Configuração." -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "Falha ao abrir o arquivo de Script." -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "Falha ao abrir o arquivo Excellon." -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "Falha ao abrir o arquivo G-Code." -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "Falha ao abrir o arquivo Gerber." -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Selecione um Objeto Geometria, Gerber ou Excellon para editar." -#: FlatCAMApp.py:3201 -#, fuzzy -#| msgid "" -#| "Simultanoeus editing of tools geometry in a MultiGeo Geometry is not " -#| "possible.\n" -#| "Edit only one geometry at a time." +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -122,82 +118,82 @@ msgstr "" "possível. \n" "Edite apenas uma geometria por vez." -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "Editor está ativado ..." -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "Você quer salvar o objeto editado?" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "Fechar Editor" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Sim" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "Não" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Cancelar" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "Objeto vazio após a edição." -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Selecione um objeto Gerber, Geometria ou Excellon para atualizar." -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "está atualizado, retornando ao App..." -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "Não foi possível carregar o arquivo com os padrões." -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "Falha ao analisar o arquivo com os padrões." -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "Importar Preferências do FlatCAM" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "Importação de preferências do FlatCAM cancelada." -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "Padrões importados de" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "Exportar Preferências do FlatCAM" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "Exportação de preferências do FlatCAM cancelada." -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 -#: FlatCAMApp.py:10375 FlatCAMApp.py:10514 FlatCAMCommon.py:378 -#: FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 +#: FlatCAMApp.py:10509 FlatCAMApp.py:10648 FlatCAMCommon.py:378 +#: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -206,36 +202,36 @@ msgstr "" "É provável que outro aplicativo esteja mantendo o arquivo aberto e não " "acessível." -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "Não foi possível carregar o arquivo com as preferências." -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "Falha ao gravar os padrões no arquivo." -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "Preferências exportadas para" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "Pasta com Preferências FlatCAM aberta." -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "Falha ao abrir o arquivo com lista de arquivos recentes para gravação." -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "Falha ao abrir o arquivo com lista de projetos recentes para gravação." -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 msgid "An internal error has ocurred. See shell.\n" msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -244,68 +240,63 @@ msgstr "" "Objeto ({kind}) falhou porque: {error} \n" "\n" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "Convertendo unidades para " -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" msgstr "CRIAR UM NOVO SCRIPT FLATCAM TCL" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" msgstr "Tutorial TCL está aqui" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" msgstr "Lista de comandos FlatCAM" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 -#, python-brace-format -msgid "" -"[selected] {kind} created/selected: {name}" -msgstr "" -"[selected] {kind} criado/selecionado: {name}" -"" +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" +msgstr "criado / selecionado" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Plotando" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "Sobre FlatCAM" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabricação de Placas de Circuito Impresso 2D Assistida por Computador" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "Desenvolvimento" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "Rastreador de problemas" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "Fechar" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" msgstr "Licenciado sob licença do MIT" -#: FlatCAMApp.py:4448 +#: FlatCAMApp.py:4483 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -353,74 +344,76 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4505 msgid "" -"Some of the icons used are from the following sources:
Icons made by " -"Freepik from www.flaticon.com
Icons by Icons8" +"Some of the icons used are from the following sources:
Icons by Icons8
Icons by oNline Web Fonts" msgstr "" -"Alguns dos ícones utilizados são das seguintes fontes:
Ícones " -"feitos por Freepik de www.flaticon.com
Ícones por Icons8" +"Alguns dos ícones utilizados são das seguintes fontes:
Ícones por " +"Freepik de www.flaticon.com
Ícones por Icons8
Ícones por oNline Web Fonts" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "Abertura" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "Programadores" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "Tradutores" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4555 msgid "License" msgstr "Licença" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "Atribuições" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "Programador" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "Status" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "E-mail" -#: FlatCAMApp.py:4558 +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" msgstr "Mantenedor BETA >= 2019" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "Idioma" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "Tradutor" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "Correções" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 -#: flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 +#: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Gerenciados de Favoritos" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -440,35 +433,35 @@ msgstr "" "Se você não conseguir obter informações sobre o FlatCAM beta\n" "use o link do canal do YouTube no menu Ajuda." -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "Site alternativo" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "Preferências salvas." -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "Não foi possível carregar o arquivo de padrões de fábrica." -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "Falha ao analisar o arquivo de padrões de fábrica." -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "Falha ao gravar os padrões de fábrica no arquivo." -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "Padrões de fábrica salvos." -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "O aplicativo está salvando o projeto. Por favor, espere ..." -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -476,33 +469,33 @@ msgstr "" "Existem arquivos/objetos modificados no FlatCAM. \n" "Você quer salvar o projeto?" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Salvar alterações" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Excellon selecionadas foram registradas para o " "FlatCAM." -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo G-Code selecionadas foram registradas para o FlatCAM." -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Gerber selecionadas foram registradas para o FlatCAM." -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 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" -#: FlatCAMApp.py:5445 +#: FlatCAMApp.py:5481 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 " @@ -518,51 +511,51 @@ msgstr "" "perdidas e o resultado pode não ser o esperado.\n" "Verifique o G-CODE gerado." -#: FlatCAMApp.py:5457 +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" msgstr "Multigeo. Fusão de geometria concluída" -#: FlatCAMApp.py:5466 +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" msgstr "Fusão de geometria concluída" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Falha. A união de Excellon funciona apenas em objetos Excellon." -#: FlatCAMApp.py:5498 +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" msgstr "Fusão de Excellon concluída" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Falha. A união de Gerber funciona apenas em objetos Gerber." -#: FlatCAMApp.py:5526 +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" msgstr "Fusão de Gerber concluída" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "Falha. Selecione um Objeto de Geometria e tente novamente." -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "Geometria FlatCAM esperada, recebido" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "Um objeto Geometria foi convertido para o tipo MultiGeo." -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "Um objeto Geometria foi convertido para o tipo Único." -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "Alternar Unidades" -#: FlatCAMApp.py:5799 +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -574,52 +567,50 @@ msgstr "" "\n" "Você quer continuar?" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "Ok" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "Unidades convertidas para" -#: FlatCAMApp.py:5865 -#, fuzzy -#| msgid " Units conversion cancelled." +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." msgstr "Conversão de unidades cancelada." -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "Abas Destacáveis" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "Preferências" -#: FlatCAMApp.py:6960 +#: FlatCAMApp.py:6996 msgid "Preferences applied." msgstr "Preferências aplicadas." -#: FlatCAMApp.py:7009 +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." msgstr "Preferências fechadas sem salvar." -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 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." -#: FlatCAMApp.py:7037 flatcamTools/ToolNonCopperClear.py:600 -#: flatcamTools/ToolPaint.py:510 flatcamTools/ToolSolderPaste.py:566 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 +#: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Adicionar ferramenta cancelada" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -627,11 +618,11 @@ msgstr "" "Adicionar Ferramenta funciona somente no modo Avançado.\n" "Vá em Preferências -> Geral - Mostrar Opções Avançadas." -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "Excluir objetos" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -639,102 +630,102 @@ msgstr "" "Você tem certeza de que deseja excluir permanentemente\n" "os objetos selecionados?" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "Objeto(s) excluído(s)" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "Falha. Nenhum objeto selecionado..." -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "Salve o trabalho no Editor e tente novamente ..." -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "Objeto excluído" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "Clique para definir a origem ..." -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "Definindo Origem..." -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "Origem definida" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "Coordenadas de origem especificadas, mas incompletas." -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "Pular para ..." -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "Digite as coordenadas no formato X,Y:" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erradas. Insira as coordenadas no formato X,Y" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 -#: flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 +#: flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 #: flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 #: flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "Pronto." -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 msgid "No object is selected. Select an object and try again." msgstr "Nenhum objeto está selecionado. Selecione um objeto e tente novamente." -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7667 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 ..." -#: FlatCAMApp.py:7629 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "" "A tarefa atual foi fechada normalmente mediante solicitação do usuário ..." -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "Preferências editadas, mas não salvas." -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 -#: FlatCAMObj.py:4107 +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMObj.py:4213 msgid "Tools Database" msgstr "Banco de Dados de Ferramentas" -#: FlatCAMApp.py:7752 +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." msgstr "Ferramenta editada, mas não salva." -#: FlatCAMApp.py:7776 +#: FlatCAMApp.py:7820 msgid "Tool from DB added in Tool Table." msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas." -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7822 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." -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -742,11 +733,11 @@ msgstr "" "Um ou mais valores foram alterados.\n" "Você deseja salvar as preferências?" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Salvar Preferências" -#: FlatCAMApp.py:7838 +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -754,95 +745,95 @@ msgstr "" "Um ou mais Ferramentas foram editadas.\n" "Você deseja salvar o Banco de Dados de Ferramentas?" -#: FlatCAMApp.py:7840 +#: FlatCAMApp.py:7884 msgid "Save Tools Database" msgstr "Salvar Banco de Dados" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Editor de Códigos" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo Y." -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "Espelhado no eixo Y." -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "A ação de espelhamento não foi executada." -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo X." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "Espelhado no eixo X." -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "Nenhum objeto selecionado para Girar." -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "Transformar" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "Digite o valor do Ângulo:" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "Rotação realizada." -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "O movimento de rotação não foi executado." -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo X." -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "Inclinação no eixo X concluída." -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo Y." -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "Inclinação no eixo Y concluída." -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Selecionar Todos" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Desmarcar todos" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "Todos os objetos estão selecionados." -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "A seleção de objetos é limpa." -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Liga/Desliga a Grade" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1228 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 #: flatcamTools/ToolNonCopperClear.py:286 flatcamTools/ToolPaint.py:188 #: flatcamTools/ToolSolderPaste.py:121 flatcamTools/ToolSolderPaste.py:591 @@ -850,79 +841,78 @@ msgstr "Liga/Desliga a Grade" msgid "Add" msgstr "Adicionar" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 -#: flatcamGUI/FlatCAMGUI.py:1955 flatcamGUI/FlatCAMGUI.py:2279 -#: flatcamGUI/ObjectUI.py:1254 flatcamTools/ToolNonCopperClear.py:298 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 +#: flatcamGUI/FlatCAMGUI.py:1967 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/ObjectUI.py:1291 flatcamTools/ToolNonCopperClear.py:298 #: flatcamTools/ToolPaint.py:200 flatcamTools/ToolSolderPaste.py:127 #: flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "Excluir" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "Nova Grade ..." -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "Digite um valor para grade:" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 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." -#: FlatCAMApp.py:8347 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "Nova Grade adicionada" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "Grade já existe" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "Adicionar nova grade cancelada" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" -msgstr "O valor da grade não existe" +msgstr " O valor da grade não existe" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "Grade apagada" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "Excluir valor de grade cancelado" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "Lista de Teclas de Atalho" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" -msgstr "Nenhum objeto selecionado para copiar nome" +msgstr " Nenhum objeto selecionado para copiar nome" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "Nome copiado para a área de transferência..." -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Coordenadas copiadas para a área de transferência." -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" -msgstr "[selected]{name} selecionado" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +msgid "selected" +msgstr "selecionado" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9040 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -932,345 +922,369 @@ msgstr "" "Criar um novo projeto irá apagá-los.\n" "Você deseja Salvar o Projeto?" -#: FlatCAMApp.py:9012 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "Novo Projeto criado" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Abrir Gerber" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "Abrindo Arquivo Gerber." -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "Abrir Gerber cancelado." -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Abrir Excellon" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "Abrindo Arquivo Excellon." -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." -msgstr "Abrir Excellon cancelado." +msgstr " Abrir Excellon cancelado." -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "Abrir G-Code" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "Abrindo Arquivo G-Code." -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "Abrir G-Code cancelado." -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Abrir Projeto" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "Abrir Projeto cancelado." -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 +msgid "Open HPGL2" +msgstr "Abrir HPGL2" + +#: FlatCAMApp.py:9357 +msgid "Opening HPGL2 file." +msgstr "Abrindo Arquivo HPGL2 ." + +#: FlatCAMApp.py:9362 +msgid "Open HPGL2 file cancelled." +msgstr "Abrir HPGL2 cancelado." + +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "Abrir Arquivo de Configuração" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "Abrir Arquivo de Configuração cancelado." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "Nenhum objeto selecionado." -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "Por favor, selecione um objeto Geometria para exportar" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Somente objetos Geometria, Gerber e Trabalho CNC podem ser usados." -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Exportar SVG" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." -msgstr "Exportar SVG cancelado." +msgstr " Exportar SVG cancelado." -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9463 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" -#: FlatCAMApp.py:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "Exportar Imagem PNG" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "Exportar PNG cancelado." -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um objeto Gerber para " "exportar." -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "Falhou. Somente objetos Gerber podem ser salvos como arquivos Gerber..." -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "Salvar arquivo fonte Gerber" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "Salvar arquivo fonte Gerber cancelado." -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um Script para exportar." -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9552 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "Falhou. Somente Scripts podem ser salvos como arquivos Scripts TCL..." -#: FlatCAMApp.py:9476 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "Salvar arquivo fonte do Script" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "Salvar arquivo fonte Script cancelado." -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um Documento para exportar." -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9596 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Falhou. Somente objetos Documentos podem ser salvos como arquivos " "Documentos..." -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "Salvar o arquivo fonte Documento" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "Salvar arquivo fonte Documento cancelado." -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um objeto Excellon para " "exportar." -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Falhou. Somente objetos Excellon podem ser salvos como arquivos Excellon..." -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "Salvar o arquivo fonte Excellon" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "Salvar arquivo fonte Excellon cancelado." -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um objeto Excellon para " "exportar." -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "Exportar Excellon" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "Exportar Excellon cancelado." -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "" "Nenhum objeto selecionado. Por favor, selecione um objeto Gerber para " "exportar." -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "Exportar Gerber" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "Exportar Gerber cancelado." -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "Apenas objetos Geometria podem ser usados." -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "Exportar DXF" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "Exportar DXF cancelado." -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "Importar SVG" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "Abrir SVG cancelado." -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "Importar DXF" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "Abrir DXF cancelado." -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "Vendo o código fonte do objeto selecionado." -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Lendo..." -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 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." -#: FlatCAMApp.py:9854 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "Editor de Fontes" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 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." -#: FlatCAMApp.py:9913 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "Falha ao ler o código fonte do objeto selecionado" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "Novo arquivo de script TCL criado no Editor de Códigos." -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "Abrir script TCL" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "Abrir script TCL cancelado." -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "Executando arquivo de Script FlatCAM." -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "Executar script TCL" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "Executar script TCL cancelado." -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10147 msgid "TCL script file opened in Code Editor and executed." msgstr "Arquivo de script TCL aberto no Editor de Código e executado." -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "Salvar Projeto Como..." -#: FlatCAMApp.py:10111 -#, python-brace-format -msgid "{l_save}/Project_{date}" -msgstr "{l_save}/Project_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" +msgstr "Projeto" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "Salvar Projeto cancelado." -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10216 +msgid "The object is used by another application." +msgstr "O objeto é usado por outro aplicativo." + +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 +msgid "Save Object as PDF ..." +msgstr "Salvar objeto como PDF ..." + +#: FlatCAMApp.py:10264 +msgid "Save Object PDF cancelled." +msgstr "Salvar PDF do objeto cancelado." + +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "Exportando SVG" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "Arquivo SVG exportado para" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10371 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." -#: FlatCAMApp.py:10383 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "Arquivo Excellon exportado para" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "Exportando Excellon" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "Não foi possível exportar o arquivo Excellon." -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "Arquivo Gerber exportado para" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "Exportando Gerber" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "Não foi possível exportar o arquivo Gerber." -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "Arquivo DXF exportado para" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "Exportando DXF" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "Não foi possível exportar o arquivo DXF." -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1278,85 +1292,87 @@ msgstr "" "O tipo escolhido não é suportado como parâmetro. Apenas Geometria e Gerber " "são suportados" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "Importando SVG" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 -#: FlatCAMApp.py:10808 FlatCAMApp.py:10871 FlatCAMApp.py:10909 -#: flatcamTools/ToolImage.py:298 flatcamTools/ToolPDF.py:225 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 +#: FlatCAMApp.py:10942 FlatCAMApp.py:11005 FlatCAMApp.py:11072 +#: FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 +#: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Aberto" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "Importando DXF" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "Falha ao abrir o arquivo" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "Falha ao analisar o arquivo" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 -#: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 +#: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 +#: flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "Ocorreu um erro interno. Veja shell. (linha de comando)\n" -#: FlatCAMApp.py:10722 +#: FlatCAMApp.py:10856 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." -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "Abrindo Gerber" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." -msgstr "Abrir Gerber falhou. Provavelmente não é um arquivo Gerber." +msgstr " Abrir Gerber falhou. Provavelmente não é um arquivo Gerber." -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "Este não é um arquivo Excellon." -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "Não é possível abrir o arquivo" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "Nenhuma geometria encontrada no arquivo" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "Abrindo Excellon." -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon." -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "Lendo Arquivo G-Code" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "Falha ao abrir" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "Não é G-Code" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "Abrindo G-Code." -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10994 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1368,55 +1384,69 @@ msgstr "" "A tentativa de criar um objeto de Trabalho CNC do arquivo G-Code falhou " "durante o processamento" -#: FlatCAMApp.py:10885 +#: FlatCAMApp.py:11053 +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." + +#: FlatCAMApp.py:11058 +msgid "Opening HPGL2" +msgstr "Abrindo o HPGL2" + +#: FlatCAMApp.py:11065 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Falha no HPGL2 aberto. Provavelmente não é um arquivo HPGL2." + +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "Abrindo script TCL..." -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "Arquivo de script TCL aberto no Editor de Códigos." -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "Falha ao abrir o Script TCL." -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "Abrindo arquivo de Configuração." -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "Falha ao abrir o arquivo de configuração" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "Carregando projeto ... Por favor aguarde ..." -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "Abrindo Projeto FlatCAM." -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "Falha ao abrir o arquivo de projeto" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "Carregando projeto ... restaurando" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "Projeto carregado de" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "Redesenha todos os objetos" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "Comandos disponíveis:\n" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1428,51 +1458,51 @@ msgstr "" "Digite help para forma de uso.\n" " Exemplo: help open_gerber" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "Mostra a lista de comandos." -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "Falha ao carregar a lista de itens recentes." -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "Falha ao analisar a lista de itens recentes." -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "Falha ao carregar a lista de projetos recentes." -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "Falha ao analisar a lista de projetos recentes." -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "Limpar Projetos Recentes" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "Limpar Arquivos Recentes" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "Lista de Teclas de Atalho" -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Guia Selecionado - Escolha um item na guia Projeto" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "Detalhes" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "O fluxo normal ao trabalhar no FlatCAM é o seguinte:" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11768 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 " @@ -1482,7 +1512,7 @@ msgstr "" "para o FlatCAM usando a barra de ferramentas, tecla de atalho ou arrastando " "e soltando um arquivo na GUI." -#: FlatCAMApp.py:11570 +#: FlatCAMApp.py:11771 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 " @@ -1492,7 +1522,7 @@ msgstr "" "usando o menu ou a barra de ferramentas, tecla de atalho ou arrastando e " "soltando um arquivo na GUI." -#: FlatCAMApp.py:11573 +#: FlatCAMApp.py:11774 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 " @@ -1504,7 +1534,7 @@ msgstr "" "Projeto, a ABA SELECIONADO será atualizada com as propriedades do objeto de " "acordo com seu tipo: Gerber, Excellon, Geometria ou Trabalho CNC." -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11778 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 " @@ -1518,14 +1548,14 @@ msgstr "" "na tela exibirá a ABA SELECIONADO e a preencherá mesmo que ela esteja fora " "de foco." -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11782 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:" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1538,7 +1568,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." -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11787 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1547,24 +1577,24 @@ msgstr "" "menu em Ajuda --> Lista de Atalhos ou através da sua própria tecla de " "atalho: F3." -#: FlatCAMApp.py:11647 +#: FlatCAMApp.py:11848 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." -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "Não foi possível analisar informações sobre a versão mais recente." -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "O FlatCAM está atualizado!" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "Nova Versão Disponível" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1572,63 +1602,63 @@ msgstr "" "Existe uma versão mais nova do FlatCAM disponível para download:\n" "\n" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11875 msgid "info" msgstr "info" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "Todos os gráficos desabilitados." -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "Todos os gráficos não selecionados desabilitados." -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "Todos os gráficos habilitados." -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "Gráficos selecionados habilitados..." -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "Gráficos selecionados desabilitados..." -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "Habilitando gráficos..." -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "Desabilitando gráficos..." -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "Trabalhando ..." -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "Salvando o Projeto FlatCAM" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "Projeto salvo em" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "Falha ao verificar o arquivo do projeto" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "Tente salvá-lo novamente." -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "Falha ao analisar o arquivo de projeto salvo" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "O usuário solicitou uma saída normal da tarefa atual." @@ -1710,7 +1740,7 @@ msgstr "Favorito removido." msgid "Export FlatCAM Bookmarks" msgstr "Exportar Favoritos do FlatCAM" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "Favoritos" @@ -1742,17 +1772,17 @@ msgstr "Importação de favoritos do FlatCAM cancelada." msgid "Imported Bookmarks from" msgstr "Favoritos importados de" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 -#: FlatCAMObj.py:4484 FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 +#: FlatCAMObj.py:4590 FlatCAMObj.py:4599 msgid "Iso" msgstr "Isolação" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 -#: FlatCAMObj.py:3488 FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 +#: FlatCAMObj.py:3588 FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "Desbaste" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "Acabamento" @@ -1761,12 +1791,12 @@ msgid "Tool Name" msgstr "Nome da Ferramenta" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 -#: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 +#: flatcamGUI/ObjectUI.py:1256 flatcamTools/ToolNonCopperClear.py:271 #: flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "Diâmetro da Ferramenta" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "Deslocamento" @@ -1774,8 +1804,8 @@ msgstr "Deslocamento" msgid "Custom Offset" msgstr "Deslocamento Personalizado" -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 -#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3991 #: flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "Tipo de Ferramenta" @@ -1784,18 +1814,17 @@ msgstr "Tipo de Ferramenta" msgid "Tool Shape" msgstr "Formato" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 -#: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:1666 flatcamGUI/PreferencesUI.py:2334 +#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4036 +#: flatcamGUI/PreferencesUI.py:4290 flatcamGUI/PreferencesUI.py:5114 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:132 +#: flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "Profundidade de Corte" #: FlatCAMCommon.py:520 -#, fuzzy -#| msgid "Multi-Depth" msgid "MultiDepth" msgstr "Multi-Profundidade" @@ -1808,14 +1837,12 @@ msgid "V-Dia" msgstr "Dia-V" #: FlatCAMCommon.py:523 -#, fuzzy -#| msgid "Angle" msgid "V-Angle" -msgstr "Ângulo" +msgstr "Angulo-V" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Altura do Deslocamento" @@ -1835,8 +1862,8 @@ msgstr "VA Rápida" msgid "Spindle Speed" msgstr "Velocidade do Spindle" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "Esperar Velocidade" @@ -1844,8 +1871,8 @@ msgstr "Esperar Velocidade" msgid "Dwelltime" msgstr "Tempo de Espera" -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 -#: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 +#: flatcamGUI/PreferencesUI.py:2461 flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "Pré-processador" @@ -1854,34 +1881,36 @@ msgid "ExtraCut" msgstr "Corte Extra" #: FlatCAMCommon.py:533 -#, fuzzy -#| msgid "Tool change" +msgid "E-Cut Length" +msgstr "Comprimento de corte extra" + +#: FlatCAMCommon.py:534 msgid "Toolchange" msgstr "Troca de Ferramentas" -#: FlatCAMCommon.py:534 +#: FlatCAMCommon.py:535 msgid "Toolchange XY" msgstr "Troca de ferramenta XY" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 -#: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 -#: flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 +#: flatcamGUI/PreferencesUI.py:3264 flatcamGUI/PreferencesUI.py:6503 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Altura da Troca" -#: FlatCAMCommon.py:536 +#: FlatCAMCommon.py:537 msgid "Start Z" msgstr "Z Inicial" -#: FlatCAMCommon.py:537 +#: FlatCAMCommon.py:538 msgid "End Z" msgstr "Z Final" -#: FlatCAMCommon.py:541 +#: FlatCAMCommon.py:542 msgid "Tool Index." msgstr "Índice da Ferramenta." -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" @@ -1891,11 +1920,11 @@ msgstr "" "Não é usado no aplicativo, sua função\n" "é servir como uma nota para o usuário." -#: FlatCAMCommon.py:547 +#: FlatCAMCommon.py:548 msgid "Tool Diameter." msgstr "Diâmetro." -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1912,7 +1941,7 @@ msgstr "" "Personalizado = deslocamento personalizado usando o valor de Deslocamento " "Personalizado" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." @@ -1920,7 +1949,7 @@ msgstr "" "Deslocamento personalizado.\n" "Um valor a ser usado como deslocamento do caminho atual." -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -1934,7 +1963,7 @@ msgstr "" "Desbaste = corte áspero, avanço lento, múltiplos passes\n" "Acabamento = corte de acabamento, avanço rápido" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -1948,7 +1977,7 @@ msgstr "" "B = fresa com ponta esférica\n" "V = fresa em forma de V" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." @@ -1956,7 +1985,7 @@ msgstr "" "Profundidade de corte.\n" "A profundidade para cortar o material." -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" @@ -1966,7 +1995,7 @@ msgstr "" "Selecionar isso permite cortar em várias passagens,\n" "cada passagem adicionando uma profundidade de parâmetro PPP." -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." @@ -1974,7 +2003,7 @@ msgstr "" "PPP. Profundidade por Passe.\n" "Valor usado para cortar o material em cada passagem." -#: FlatCAMCommon.py:581 +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." @@ -1982,7 +2011,7 @@ msgstr "" "Dia-V.\n" "Diâmetro da ponta das ferramentas em forma de V." -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." @@ -1990,7 +2019,7 @@ msgstr "" "Ângulo.\n" "Ângulo na ponta das ferramentas em forma de V." -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" @@ -2000,7 +2029,7 @@ msgstr "" "Altura na qual a broca irá se deslocar entre cortes,\n" "acima da superfície do material, evitando todos os equipamentos." -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -2008,7 +2037,7 @@ msgstr "" "VA. Velocidade de Avanço\n" "A velocidade no plano XY usada ao cortar o material." -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." @@ -2016,7 +2045,7 @@ msgstr "" "VA Z. Velocidade de Avanço Z\n" "A velocidade no plano Z usada ao cortar o material." -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -2028,7 +2057,7 @@ msgstr "" "Isso é usado apenas por alguns dispositivos que não podem usar\n" "o comando G-Code G0. Principalmente impressoras 3D." -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" @@ -2038,7 +2067,7 @@ msgstr "" "Se for deixado vazio, não será usado.\n" "Velocidade do spindle em RPM." -#: FlatCAMCommon.py:606 +#: FlatCAMCommon.py:607 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" @@ -2048,7 +2077,7 @@ msgstr "" "Marque se é necessário um atraso para permitir\n" "o motor do spindle atingir a velocidade definida." -#: FlatCAMCommon.py:610 +#: FlatCAMCommon.py:611 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." @@ -2056,7 +2085,7 @@ msgstr "" "Tempo de espera.\n" "Atraso usado para permitir que o spindle atinja a velocidade definida." -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" @@ -2066,7 +2095,7 @@ msgstr "" "Uma seleção de arquivos que alterarão o código G gerado\n" "para caber em vários casos de uso." -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2079,7 +2108,23 @@ msgstr "" "será adicionado no encontro entre o início e o fim da isolação,\n" "para garantir a isolação completa." -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +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." + +#: FlatCAMCommon.py:631 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -2091,7 +2136,7 @@ msgstr "" "O tipo de troca de ferramentas é determinado pelo\n" "arquivo do pré-processador." -#: FlatCAMCommon.py:628 +#: FlatCAMCommon.py:636 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -2103,7 +2148,7 @@ msgstr "" "Determina a posição cartesiana do ponto\n" "onde o evento de troca da ferramenta ocorre." -#: FlatCAMCommon.py:633 +#: FlatCAMCommon.py:641 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." @@ -2111,7 +2156,7 @@ msgstr "" "Altura da Troca.\n" "A posição no plano Z onde o evento de troca da ferramenta ocorre." -#: FlatCAMCommon.py:636 +#: FlatCAMCommon.py:644 msgid "" "Start Z.\n" "If it's left empty it will not be used.\n" @@ -2121,7 +2166,7 @@ msgstr "" "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." -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." @@ -2129,11 +2174,11 @@ msgstr "" "Z Final.\n" "Posição no plano Z para mover-se imediatamente após a parada do trabalho." -#: FlatCAMCommon.py:661 +#: FlatCAMCommon.py:669 msgid "Add Tool to Tools DB" msgstr "Adicionar Ferramenta ao Banco de Dados" -#: FlatCAMCommon.py:663 +#: FlatCAMCommon.py:671 msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." @@ -2141,38 +2186,38 @@ msgstr "" "Adiciona uma nova ferramenta ao Banco de Dados de Ferramentas.\n" "Você pode editar após a adição." -#: FlatCAMCommon.py:666 +#: FlatCAMCommon.py:674 msgid "Remove Tool from Tools DB" msgstr "Remover Ferramenta do Banco de Dados" -#: FlatCAMCommon.py:668 +#: FlatCAMCommon.py:676 msgid "Remove a selection of tools in the Tools Database." msgstr "Remove uma seleção de ferramentas no banco de dados de ferramentas." -#: FlatCAMCommon.py:670 +#: FlatCAMCommon.py:678 msgid "Export Tool DB" msgstr "Exportar o BD de Ferramentas" -#: FlatCAMCommon.py:672 +#: FlatCAMCommon.py:680 msgid "Save the Tools Database to a custom text file." msgstr "" "Salva o banco de dados de ferramentas em um arquivo de texto personalizado." -#: FlatCAMCommon.py:674 +#: FlatCAMCommon.py:682 msgid "Import Tool DB" msgstr "Importar o BD de Ferramentas" -#: FlatCAMCommon.py:676 +#: FlatCAMCommon.py:684 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." -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" msgstr "Adiciona Ferramenta do BD de Ferramentas" -#: FlatCAMCommon.py:688 +#: FlatCAMCommon.py:696 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" @@ -2182,237 +2227,249 @@ msgstr "" "objeto geometria ativo após selecionar uma ferramenta\n" "no banco de dados de ferramentas." -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 msgid "Could not load Tools DB file." msgstr "Não foi possível carregar o arquivo com o banco de dados." -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 msgid "Failed to parse Tools DB file." msgstr "Falha ao analisar o arquivo com o banco de dados." -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" msgstr "Carregado o BD de Ferramentas FlatCAM de" -#: FlatCAMCommon.py:744 +#: FlatCAMCommon.py:752 msgid "Add to DB" msgstr "Adicionar ao BD" -#: FlatCAMCommon.py:746 +#: FlatCAMCommon.py:754 msgid "Copy from DB" msgstr "Copiar do BD" -#: FlatCAMCommon.py:748 +#: FlatCAMCommon.py:756 msgid "Delete from DB" msgstr "Excluir do BD" -#: FlatCAMCommon.py:998 +#: FlatCAMCommon.py:1026 msgid "Tool added to DB." msgstr "Ferramenta adicionada ao BD." -#: FlatCAMCommon.py:1019 +#: FlatCAMCommon.py:1047 msgid "Tool copied from Tools DB." msgstr "A ferramenta foi copiada do BD." -#: FlatCAMCommon.py:1037 +#: FlatCAMCommon.py:1065 msgid "Tool removed from Tools DB." msgstr "Ferramenta(s) excluída(s) do BD." -#: FlatCAMCommon.py:1048 +#: FlatCAMCommon.py:1076 msgid "Export Tools Database" msgstr "Exportar Banco de Dados de Ferramentas" -#: FlatCAMCommon.py:1051 +#: FlatCAMCommon.py:1079 msgid "Tools_Database" msgstr "Tools_Database" -#: FlatCAMCommon.py:1058 +#: FlatCAMCommon.py:1086 msgid "FlatCAM Tools DB export cancelled." msgstr "Exportação de BD do FlatCAM cancelada." -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 msgid "Failed to write Tools DB to file." msgstr "Falha ao gravar no arquivo." -#: FlatCAMCommon.py:1094 +#: FlatCAMCommon.py:1122 msgid "Exported Tools DB to" msgstr "Banco de Dados exportado para" -#: FlatCAMCommon.py:1101 +#: FlatCAMCommon.py:1129 msgid "Import FlatCAM Tools DB" msgstr "Importar Banco de Dados de Ferramentas do FlatCAM" -#: FlatCAMCommon.py:1104 +#: FlatCAMCommon.py:1132 msgid "FlatCAM Tools DB import cancelled." msgstr "Importação de BD do FlatCAM cancelada." -#: FlatCAMCommon.py:1147 +#: FlatCAMCommon.py:1175 msgid "Saved Tools DB." msgstr "BD de Ferramentas Salvo." -#: FlatCAMCommon.py:1293 +#: FlatCAMCommon.py:1322 msgid "No Tool/row selected in the Tools Database table" msgstr "" "Nenhuma ferramenta selecionada na tabela de Banco de Dados de Ferramentas" -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." msgstr "Adição de ferramenta do BD cancelada." -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "Nome alterado de" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "para" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "Deslocando..." -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +msgid "Scaling could not be executed." +msgstr "Não foi possível executar o redimensionamento." + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +msgid "Scale done." +msgstr "Redimensionamento concluída." + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "Dimensionando..." -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "Inclinando..." -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 #: flatcamGUI/PreferencesUI.py:1123 flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "Básico" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 #: flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "Avançado" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "Buffer de geometria sólida" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 #: flatcamTools/ToolCopperThieving.py:1199 #: flatcamTools/ToolCopperThieving.py:1211 -#: flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 -#: flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 -#: flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 +#: flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 +#: flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "Criando buffer" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "Pronto" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "Isolando..." -#: FlatCAMObj.py:1063 +#: FlatCAMObj.py:1078 msgid "Click on a polygon to isolate it." msgstr "Clique em um polígono para isolá-lo." -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 msgid "Added polygon" msgstr "Polígono adicionado" -#: FlatCAMObj.py:1097 +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 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." -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 msgid "Removed polygon" msgstr "Polígono removido" -#: FlatCAMObj.py:1110 +#: FlatCAMObj.py:1132 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." -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." msgstr "Nenhum polígono detectado na posição do clique." -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." msgstr "A lista de polígonos únicos está vazia. Abortando." -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 -#: flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +msgid "No polygon in selection." +msgstr "Nenhum polígono na seleção." + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 +#: flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "A geometria de isolação não pôde ser gerada." -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "Geometria de isolação criada" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "Subtraindo Geo" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "Mostrando Aberturas" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "N° Furos" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "N° Ranhuras" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 msgid "Please select one or more tools from the list and try again." msgstr "Selecione uma ou mais ferramentas da lista e tente novamente." -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "A ferramenta BROCA é maior que o tamanho do furo. Cancelado." -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 -#: flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 +#: flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "Ferramenta" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "Ferramenta_nr" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 -#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:736 +#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:753 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 #: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:396 #: flatcamTools/ToolProperties.py:449 flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "Diâmetro" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "Furo_Nr" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "Ranhura_Nr" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" "A ferramenta fresa para RANHURAS é maior que o tamanho do furo. Cancelado." -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" @@ -2420,7 +2477,7 @@ msgstr "" "Valor com formato incorreto para self.defaults[\"z_pdepth\"] ou self." "options[\"z_pdepth\"]" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" @@ -2428,100 +2485,90 @@ msgstr "" "Valor com formato incorreto para self.defaults[\"feedrate_probe\"] ou self." "options[\"feedrate_probe\"]" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "Gerando Código CNC" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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 existe apenas um valor, não dois. " - -#: FlatCAMObj.py:3794 +#: FlatCAMObj.py:3896 msgid "Add from Tool DB" msgstr "Adicionar Ferramenta do BD" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 -#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2154 -#: flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 +#: flatcamGUI/FlatCAMGUI.py:1966 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "Copiar" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 -#: flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 -#: flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 -#: flatcamTools/ToolNonCopperClear.py:1464 flatcamTools/ToolPaint.py:838 -#: flatcamTools/ToolPaint.py:1022 flatcamTools/ToolPaint.py:2094 +#: flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 +#: flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 +#: flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 +#: flatcamEditors/FlatCAMGeoEditor.py:1240 +#: flatcamTools/ToolNonCopperClear.py:1057 +#: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 +#: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 #: flatcamTools/ToolSolderPaste.py:879 flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "Formato incorreto, use um número." -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "" "Por favor, insira o diâmetro da ferramenta desejada no formato Flutuante." -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "Ferramenta adicionada na Tabela de Ferramentas." -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "Ferramenta padrão adicionada. Valor inserico com formato incorreto." -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "Falhou. Selecione uma ferramenta para copiar." -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "A ferramenta foi copiada na tabela de ferramentas." -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "A ferramenta foi editada na Tabela de Ferramentas." -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "Falhou. Selecione uma ferramenta para excluir." -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "A ferramenta foi eliminada da Tabela de Ferramentas." -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 msgid "Parameters for" msgstr "Parâmetros para" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "Esta Geometria não pode ser processada porque é" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "geometria" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "Falhou. Nenhuma ferramenta selecionada na tabela de ferramentas ..." -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -2530,44 +2577,44 @@ msgstr "" "valor foi fornecido.\n" "Adicione um Deslocamento de Ferramenta ou altere o Tipo de Deslocamento." -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "Análisando o G-Code..." -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "Análise do G-Code finalisada..." -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "Processamento do G-Code concluído" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "Processamento do G-Code falhou com erro" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "Cancelado. Arquivo vazio, não tem geometria" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "Processamento do G-Code finalisado..." -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "Trabalho CNC criado" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "O fator de escala deve ser um número: inteiro ou flutuante." -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "Redimensionamento de geometria feita." -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -2575,11 +2622,11 @@ msgstr "" "Um par (x,y) de valores é necessário. Provavelmente você digitou apenas um " "valor no campo Deslocamento." -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "Deslocamento de Geometria concluído." -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -2589,82 +2636,82 @@ msgstr "" "formato (x, y).\n" "Agora está com apenas um valor, não dois." -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "Básico" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "Avançado" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "Plotando..." -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "Exportar Código da Máquina ..." -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "Exportar código da máquina cancelado ..." -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "Arquivo G-Code salvo em" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "G-Code aberto no Editor de Códigos" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "Este objeto Trabalho CNC não pode ser processado porque é um" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "Objeto de Trabalho CNC" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "O G-Code não possui um código de unidade: G20 ou G21" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 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." -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 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." -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "Nenhum arquivo ou diretório" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "Salvo em" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 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'" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "Não há arquivo de pós-processamento." -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "Editor de Script" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "Editor de Documento" @@ -2689,7 +2736,7 @@ msgstr "Aplicar o Idioma ..." msgid "Object renamed from {old} to {new}" msgstr "Objeto renomeado de {old} para {new}" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "Motivo do erro" @@ -2737,7 +2784,7 @@ msgstr "Falha ao inclinar. Nenhum objeto selecionado" msgid "There is no such parameter" msgstr "Não existe esse parâmetro" -#: camlib.py:2366 +#: camlib.py:2368 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -2750,36 +2797,46 @@ 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:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 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:2450 +#: camlib.py:2389 camlib.py:3409 +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 existe apenas um valor, não dois. " + +#: camlib.py:2458 msgid "Creating a list of points to drill..." msgstr "Criando uma lista de pontos para furar..." -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "Iniciando o G-Code" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "Iniciando o G-Code para ferramenta com diâmetro" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "Coordenadas G91 não implementadas" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "O arquivo Excellon carregado não tem furos" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "Geração de G-Code concluída..." -#: camlib.py:3050 +#: camlib.py:3061 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -2789,7 +2846,7 @@ msgstr "" "formato (x, y).\n" "Agora está com apenas um valor, não dois." -#: camlib.py:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -2797,7 +2854,7 @@ msgstr "" "Profundidade de Corte está vazio ou é zero. Provavelmente é uma combinação " "ruim de outros parâmetros." -#: camlib.py:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -2810,11 +2867,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:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "O parâmetro Altura de Deslocamento Z é Nulo ou zero." -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -2828,39 +2885,39 @@ msgstr "" "positivo.\n" "Verifique o código CNC resultante (G-Code, etc.)." -#: camlib.py:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 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:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "Indexando geometrias antes de gerar o G-Code..." -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "Iniciando o G-Code..." -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "Geração de G-Code concluída" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "caminho traçado" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "Esperando uma geometria, recebido" -#: camlib.py:3303 +#: camlib.py:3316 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:3343 +#: camlib.py:3356 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -2869,35 +2926,35 @@ msgstr "" "current_geometry.\n" "Aumente o valor (em módulo) e tente novamente." -#: camlib.py:3604 +#: camlib.py:3618 msgid " paths traced." msgstr " caminhos traçados." -#: camlib.py:3632 +#: camlib.py:3646 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:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "Geração de G-Code para Pasta de Solda concluída" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "caminhos traçados." -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "Analisando o arquivo G-Code. Número de linhas" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "Criando Geometria a partir do arquivo G-Code analisado. " -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 não implementadas..." -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "Unificando Gometria a partir de segmentos de geometria analisados" @@ -3008,8 +3065,8 @@ msgstr "" "redimensionar." #: flatcamEditors/FlatCAMExcEditor.py:983 -#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2879 -#: flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2892 +#: flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "Cancelado." @@ -3034,7 +3091,7 @@ msgstr "Movimento do Furo realizado." msgid "Done. Drill(s) copied." msgstr "Furo(s) copiado(s)." -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "Editor Excellon" @@ -3043,13 +3100,13 @@ msgstr "Editor Excellon" msgid "Name:" msgstr "Nome:" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "Tabela de Ferramentas" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -3069,8 +3126,8 @@ msgstr "" "Adicionar/Excluir uma ferramenta para a lista de ferramentas\n" "para este objeto Excellon." -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "Diâmetro da nova ferramenta" @@ -3098,7 +3155,7 @@ msgstr "" "Exclui uma ferramenta da lista de ferramentas selecionando uma linha na " "tabela de ferramentas." -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "Redimensionar Furo(s)" @@ -3122,8 +3179,8 @@ msgstr "Redimensionar" msgid "Resize drill(s)" msgstr "Redimensionar furo(s)" -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "Adicionar Matriz de Furos" @@ -3147,17 +3204,17 @@ msgstr "Linear" #: flatcamEditors/FlatCAMExcEditor.py:1634 #: flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "Nº de furos" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "Especifique quantos furos devem estar na matriz." @@ -3168,14 +3225,14 @@ msgstr "Especifique quantos furos devem estar na matriz." #: flatcamEditors/FlatCAMExcEditor.py:1927 #: flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 -#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2970 +#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "Direção" #: flatcamEditors/FlatCAMExcEditor.py:1663 #: flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -3191,8 +3248,8 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 #: flatcamEditors/FlatCAMGrbEditor.py:2733 flatcamGUI/PreferencesUI.py:1946 -#: flatcamGUI/PreferencesUI.py:2884 flatcamGUI/PreferencesUI.py:2979 -#: flatcamGUI/PreferencesUI.py:3032 flatcamGUI/PreferencesUI.py:4804 +#: flatcamGUI/PreferencesUI.py:2886 flatcamGUI/PreferencesUI.py:2981 +#: flatcamGUI/PreferencesUI.py:3034 flatcamGUI/PreferencesUI.py:4822 #: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" @@ -3201,8 +3258,8 @@ msgstr "X" #: flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 #: flatcamEditors/FlatCAMGrbEditor.py:2734 flatcamGUI/PreferencesUI.py:1947 -#: flatcamGUI/PreferencesUI.py:2885 flatcamGUI/PreferencesUI.py:2980 -#: flatcamGUI/PreferencesUI.py:3033 flatcamGUI/PreferencesUI.py:4805 +#: flatcamGUI/PreferencesUI.py:2887 flatcamGUI/PreferencesUI.py:2982 +#: flatcamGUI/PreferencesUI.py:3035 flatcamGUI/PreferencesUI.py:4823 #: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" @@ -3218,10 +3275,10 @@ msgstr "Y" #: flatcamEditors/FlatCAMGrbEditor.py:2735 #: flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -3230,14 +3287,14 @@ msgstr "Ângulo" #: flatcamEditors/FlatCAMExcEditor.py:1676 #: flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "Passo" #: flatcamEditors/FlatCAMExcEditor.py:1678 #: flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "Passo = Distância entre os elementos da matriz." @@ -3266,25 +3323,25 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 #: flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "CW" #: flatcamEditors/FlatCAMExcEditor.py:1720 #: flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "CCW" #: flatcamEditors/FlatCAMExcEditor.py:1724 #: flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "Ângulo no qual cada elemento na matriz circular é colocado." @@ -3300,16 +3357,16 @@ msgstr "" "Parâmetros para adicionar uma ranhura (furo com forma oval),\n" "tanto única quanto parte de uma matriz." -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "Comprimento" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "Comprimento = o comprimento da ranhura." -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -3349,11 +3406,11 @@ msgstr "" "Selecione o tipo de matriz de ranhuras para criar.\n" "Pode ser Linear X(Y) ou Circular" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "Nº de ranhuras" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "Especifique o número de ranhuras da matriz." @@ -3365,7 +3422,7 @@ msgstr "" "Ferramenta já na lista de ferramentas original ou atual.\n" "Salve e reedite Excellon se precisar adicionar essa ferramenta. " -#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "Adicionada nova ferramenta com diâmetro" @@ -3440,7 +3497,7 @@ msgid "Round" msgstr "Redondo" #: flatcamEditors/FlatCAMGeoEditor.py:96 -#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5971 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5989 #: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Quadrado" @@ -3463,7 +3520,7 @@ msgid "Full Buffer" msgstr "Buffer Completo" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamEditors/FlatCAMGeoEditor.py:2758 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Ferramenta Buffer" @@ -3471,9 +3528,9 @@ msgstr "Ferramenta Buffer" #: flatcamEditors/FlatCAMGeoEditor.py:145 #: flatcamEditors/FlatCAMGeoEditor.py:162 #: flatcamEditors/FlatCAMGeoEditor.py:179 -#: flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 -#: flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 +#: flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" @@ -3484,7 +3541,7 @@ msgstr "" msgid "Font" msgstr "Fonte" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "Texto" @@ -3492,13 +3549,13 @@ msgstr "Texto" msgid "Text Tool" msgstr "Ferramenta de Texto" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "Diâmetro da Ferramenta" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -3506,19 +3563,16 @@ msgstr "" "Diâmetro da ferramenta para \n" "ser usada na operação." -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "Taxa de Sobreposição" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, python-format +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3528,26 +3582,23 @@ msgid "" msgstr "" "Quanto da largura da ferramenta (fração) é sobreposto em cada passagem da " "ferramenta.\n" -"Exemplo:\n" -"Um valor de 0.25 significa uma sobreposição de 25%% do diâmetro 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." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "Margem" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3558,13 +3609,13 @@ msgstr "" "as bordas do polígono para \n" "ser pintado." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Método" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -3572,30 +3623,30 @@ msgstr "" "Algoritmo para pintar o polígono:
Padrão: Passo fixo para dentro." "
Baseado em semente: para fora da semente." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Padrão" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "Baseado em semente" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Linhas retas" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "Conectar:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" @@ -3604,98 +3655,98 @@ msgstr "" "Desenha linhas entre os segmentos resultantes\n" "para minimizar as elevações de ferramentas." -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "Contorno:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 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." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Pintura" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 -#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 +#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Ferramenta de Pintura" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "Pintura cancelada. Nenhuma forma selecionada." -#: flatcamEditors/FlatCAMGeoEditor.py:599 -#: flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3138 +#: flatcamEditors/FlatCAMGeoEditor.py:597 +#: flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 +#: flatcamEditors/FlatCAMGeoEditor.py:2844 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Ferramentas" -#: flatcamEditors/FlatCAMGeoEditor.py:610 -#: flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:751 -#: flatcamGUI/FlatCAMGUI.py:2195 flatcamTools/ToolTransform.py:371 +#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 +#: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Ferramenta Transformar" -#: flatcamEditors/FlatCAMGeoEditor.py:611 -#: flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 -#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5189 +#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Girar" -#: flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGrbEditor.py:5013 flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "Inclinar" -#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 -#: flatcamGUI/FlatCAMGUI.py:2271 flatcamGUI/ObjectUI.py:92 -#: flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/ObjectUI.py:92 +#: flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "Redimensionar" -#: flatcamEditors/FlatCAMGeoEditor.py:614 +#: flatcamEditors/FlatCAMGeoEditor.py:612 #: flatcamEditors/FlatCAMGrbEditor.py:5015 flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "Espelhar (Flip)" -#: flatcamEditors/FlatCAMGeoEditor.py:615 -#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:124 -#: flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 +#: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "Deslocar" -#: flatcamEditors/FlatCAMGeoEditor.py:628 -#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:698 -#: flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGeoEditor.py:626 +#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 +#: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Editor" -#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGeoEditor.py:658 #: flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "Ângulo:" -#: flatcamEditors/FlatCAMGeoEditor.py:662 -#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5199 +#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" @@ -3708,7 +3759,7 @@ msgstr "" "Números positivos para movimento horário. \n" "Números negativos para movimento anti-horário." -#: flatcamEditors/FlatCAMGeoEditor.py:678 +#: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" @@ -3719,17 +3770,17 @@ msgstr "" "O ponto de referência é o meio da caixa\n" "delimitadora para todas as formas selecionadas." -#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:699 #: flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "Ângulo X:" -#: flatcamEditors/FlatCAMGeoEditor.py:703 -#: flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 -#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5218 -#: flatcamGUI/PreferencesUI.py:5232 flatcamTools/ToolCalibration.py:445 -#: flatcamTools/ToolCalibration.py:458 +#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 +#: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 +#: flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -3737,13 +3788,13 @@ msgstr "" "Ângulo de inclinação, em graus.\n" "Número flutuante entre -360 e 359." -#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:712 #: flatcamEditors/FlatCAMGrbEditor.py:5115 flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "Inclinar X" -#: flatcamEditors/FlatCAMGeoEditor.py:716 -#: flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 #: flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" @@ -3755,33 +3806,33 @@ msgstr "" "O ponto de referência é o meio da caixa\n" "delimitadora para todas as formas selecionadas." -#: flatcamEditors/FlatCAMGeoEditor.py:721 +#: flatcamEditors/FlatCAMGeoEditor.py:719 #: flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "Ângulo Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:734 +#: flatcamEditors/FlatCAMGeoEditor.py:732 #: flatcamEditors/FlatCAMGrbEditor.py:5135 flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "Inclinar Y" -#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGeoEditor.py:760 #: flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "Fator X:" -#: flatcamEditors/FlatCAMGeoEditor.py:764 -#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Fator de escala sobre o eixo X." -#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:772 #: flatcamEditors/FlatCAMGrbEditor.py:5175 flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "Redimensionar X" -#: flatcamEditors/FlatCAMGeoEditor.py:776 -#: flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 #: flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" @@ -3793,28 +3844,28 @@ msgstr "" "O ponto de referência depende\n" "do estado da caixa de seleção." -#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGeoEditor.py:779 #: flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "Fator Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:783 -#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Fator para ação de escala no eixo Y." -#: flatcamEditors/FlatCAMGeoEditor.py:793 +#: flatcamEditors/FlatCAMGeoEditor.py:791 #: flatcamEditors/FlatCAMGrbEditor.py:5194 flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "Redimensionar Y" -#: flatcamEditors/FlatCAMGeoEditor.py:802 -#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5268 +#: flatcamEditors/FlatCAMGeoEditor.py:800 +#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Fixar Taxa" -#: flatcamEditors/FlatCAMGeoEditor.py:804 +#: flatcamEditors/FlatCAMGeoEditor.py:802 #: flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" @@ -3823,13 +3874,13 @@ msgstr "" "Redimensiona a(s) forma(s) selecionada(s)\n" "usando o Fator de Escala X para ambos os eixos." -#: flatcamEditors/FlatCAMGeoEditor.py:810 -#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5276 +#: flatcamEditors/FlatCAMGeoEditor.py:808 +#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Referência de escala" -#: flatcamEditors/FlatCAMGeoEditor.py:812 +#: flatcamEditors/FlatCAMGeoEditor.py:810 #: flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" @@ -3842,23 +3893,23 @@ msgstr "" "e o centro da maior caixa delimitadora\n" "de formas selecionadas quando desmarcado." -#: flatcamEditors/FlatCAMGeoEditor.py:840 +#: flatcamEditors/FlatCAMGeoEditor.py:838 #: flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "Valor X:" -#: flatcamEditors/FlatCAMGeoEditor.py:842 +#: flatcamEditors/FlatCAMGeoEditor.py:840 #: flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "Valor para o deslocamento no eixo X." -#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:850 #: flatcamEditors/FlatCAMGrbEditor.py:5254 flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "Deslocar X" -#: flatcamEditors/FlatCAMGeoEditor.py:854 -#: flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 #: flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" @@ -3870,28 +3921,28 @@ msgstr "" "O ponto de referência é o meio da\n" "caixa delimitadora para todas as formas selecionadas.\n" -#: flatcamEditors/FlatCAMGeoEditor.py:860 +#: flatcamEditors/FlatCAMGeoEditor.py:858 #: flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "Valor Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:862 +#: flatcamEditors/FlatCAMGeoEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "Valor para a ação de deslocamento no eixo Y." -#: flatcamEditors/FlatCAMGeoEditor.py:872 +#: flatcamEditors/FlatCAMGeoEditor.py:870 #: flatcamEditors/FlatCAMGrbEditor.py:5274 flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "Deslocar Y" -#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:901 #: flatcamEditors/FlatCAMGrbEditor.py:5305 flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "Espelhar no X" -#: flatcamEditors/FlatCAMGeoEditor.py:905 -#: flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 #: flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" @@ -3901,17 +3952,17 @@ msgstr "" "Espelha as formas selecionadas sobre o eixo X.\n" "Não cria uma nova forma." -#: flatcamEditors/FlatCAMGeoEditor.py:910 +#: flatcamEditors/FlatCAMGeoEditor.py:908 #: flatcamEditors/FlatCAMGrbEditor.py:5312 flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "Espelhar no Y" -#: flatcamEditors/FlatCAMGeoEditor.py:918 +#: flatcamEditors/FlatCAMGeoEditor.py:916 #: flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "Ponto de Referência" -#: flatcamEditors/FlatCAMGeoEditor.py:920 +#: flatcamEditors/FlatCAMGeoEditor.py:918 #: flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" @@ -3933,12 +3984,12 @@ msgstr "" "- ou digitar as coordenadas no formato (x, y) no campo\n" " Ponto de Ref. e clicar em Espelhar no X(Y)" -#: flatcamEditors/FlatCAMGeoEditor.py:932 +#: flatcamEditors/FlatCAMGeoEditor.py:930 #: flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "Ponto:" -#: flatcamEditors/FlatCAMGeoEditor.py:934 +#: flatcamEditors/FlatCAMGeoEditor.py:932 #: flatcamEditors/FlatCAMGrbEditor.py:5336 flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -3949,7 +4000,7 @@ msgstr "" "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:944 +#: flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:5348 flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -3960,353 +4011,353 @@ msgstr "" "botão esquerdo na tela junto com a tecla\n" "SHIFT pressionada. Em seguida, clique no botão Adicionar para inserir." -#: flatcamEditors/FlatCAMGeoEditor.py:1059 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 #: flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "Transformação cancelada. Nenhuma forma selecionada." -#: flatcamEditors/FlatCAMGeoEditor.py:1260 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 #: flatcamEditors/FlatCAMGrbEditor.py:5657 msgid "No shape selected. Please Select a shape to rotate!" msgstr "Nenhuma forma selecionada. Por favor, selecione uma forma para girar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1263 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 #: flatcamEditors/FlatCAMGrbEditor.py:5660 flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "Aplicando Girar" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 #: flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "Girar concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "O giro não foi executado" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 #: flatcamEditors/FlatCAMGrbEditor.py:5715 msgid "No shape selected. Please Select a shape to flip!" msgstr "" "Nenhuma forma selecionada. Por favor, selecione uma forma para espelhar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1312 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 #: flatcamEditors/FlatCAMGrbEditor.py:5718 flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "Aplicando Espelhamento" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 #: flatcamEditors/FlatCAMGrbEditor.py:5758 flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "Concluído o espelhamento no eixo Y" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 #: flatcamEditors/FlatCAMGrbEditor.py:5767 flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "Concluído o espelhamento no eixo Y" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "O espelhamento não foi executado" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 #: flatcamEditors/FlatCAMGrbEditor.py:5789 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:1370 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 #: flatcamEditors/FlatCAMGrbEditor.py:5792 flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "Inclinando" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 #: flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "Inclinação no eixo X concluída" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "Inclinação no eixo Y concluída" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "A inclinação não foi executada" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 #: flatcamEditors/FlatCAMGrbEditor.py:5854 msgid "No shape selected. Please Select a shape to scale!" msgstr "" "Nenhuma forma selecionada. Por favor, selecione uma forma para redimensionar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1418 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 #: flatcamEditors/FlatCAMGrbEditor.py:5857 flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "Redimensionando" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 #: flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "Redimensionamento no eixo X concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 #: flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "Redimensionamento no eixo Y concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "O redimensionamento não foi executado" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 #: flatcamEditors/FlatCAMGrbEditor.py:5915 msgid "No shape selected. Please Select a shape to offset!" msgstr "" "Nenhuma forma selecionada. Por favor, selecione uma forma para deslocar!" -#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 #: flatcamEditors/FlatCAMGrbEditor.py:5918 flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "Deslocando" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 #: flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "Deslocamento no eixo X concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 #: flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "Deslocamento no eixo Y concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "O deslocamento não foi executado" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 #: flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "Girar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1497 -#: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 +#: flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 #: flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 #: flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "Digite um valor para o ângulo (graus)" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 #: flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "Rotação da geometria concluída" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "Rotação da geometria cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 #: flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "Deslocamento no eixo X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1516 -#: flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 +#: flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 #: flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "Digite um valor para a distância" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 #: flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "Deslocamento da forma no eixo X concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "Deslocamento da forma no eixo X cancelado" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 #: flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "Deslocamento no eixo Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1544 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 #: flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "Deslocamento da forma no eixo Y concluído" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "Deslocamento da forma no eixo Y cancelado" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 #: flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "Inclinação no eixo X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1561 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 #: flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "Inclinação no eixo X concluída" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "Inclinação no eixo X cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 #: flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "Inclinação no eixo Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 #: flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "Inclinação no eixo Y concluída" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "Inclinação no eixo Y cancelada" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 -#: flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 +#: flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "Clique no ponto central ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1953 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 #: flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "Clique no ponto Perímetro para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "Círculo adicionado." -#: flatcamEditors/FlatCAMGeoEditor.py:2018 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 #: flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "Clique no ponto inicial ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2020 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 #: flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "Clique no ponto 3 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2022 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 #: flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "Clique no ponto de parada ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2027 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 #: flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "Clique no ponto de parada para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2029 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 #: flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "Clique no ponto 2 para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2031 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 #: flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "Clique no ponto central para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "Direção: %s" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 #: flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Modo: Iniciar -> Parar -> Centro. Clique no ponto inicial ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2056 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 #: flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Modo: Ponto 1 -> Ponto 3 -> Ponto 2. Clique no Ponto 1 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2059 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 #: flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Modo: Centro -> Iniciar -> Parar. Clique no ponto central ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "Arco adicionado." -#: flatcamEditors/FlatCAMGeoEditor.py:2217 -#: flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 +#: flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "Clique no primeiro canto ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "Clique no canto oposto para completar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "Retângulo adicionado." -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 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:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "Polígono adicionado." -#: flatcamEditors/FlatCAMGeoEditor.py:2317 -#: flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 +#: flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 #: flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "Retrocedeu um ponto ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "Caminho concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "Nenhuma forma selecionada. Selecione uma forma para explodir" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "Polígono explodido em linhas." -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 msgid "MOVE: No shape selected. Select a shape to move" msgstr "MOVER: Nenhuma forma selecionada. Selecione uma forma para mover" -#: flatcamEditors/FlatCAMGeoEditor.py:2520 -#: flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." -msgstr "MOVER: Clique no ponto de referência ..." +msgstr " MOVER: Clique no ponto de referência ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr " Clique no ponto de destino ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "Movimento de Geometria(s) concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "Geometria(s) copiada(s)." -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -4314,96 +4365,96 @@ msgstr "" "Fonte não suportada. Apenas Regular, Bold, Italic e BoldItalic são " "suportados. Erro" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "Nenhum texto para adicionar." -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr " Texto adicionado." -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "Criar buffer de geometria ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2768 -#: flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 +#: flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "Buffer cancelado. Nenhuma forma selecionada." -#: flatcamEditors/FlatCAMGeoEditor.py:2793 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 #: flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "Buffer concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "Buffer Interno concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "Buffer Externo concluído." -#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 #: flatcamEditors/FlatCAMGrbEditor.py:2087 msgid "Select a shape to act as deletion area ..." msgstr "Selecione uma forma para atuar como área de exclusão ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2890 -#: flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 #: flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "Clique para pegar a forma a apagar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2919 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 #: flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "Clique para apagar ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2949 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 #: flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "Apagado." -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "Criar geometria de pintura ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3006 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 #: flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "Transformações de forma ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "Editando Geometria MultiGeo, ferramenta" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "com diâmetro" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "Cópia cancelada. Nenhuma forma selecionada." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 -#: flatcamGUI/FlatCAMGUI.py:3388 flatcamGUI/FlatCAMGUI.py:3401 -#: flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 +#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 +#: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Clique no ponto alvo." -#: flatcamEditors/FlatCAMGeoEditor.py:4330 -#: flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 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:4451 -#: flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 +#: flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -4411,60 +4462,60 @@ msgstr "" "Valor de buffer negativo não é aceito. Use o Buffer interior para gerar uma " "forma 'interna'" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 -#: flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 +#: flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "Nada selecionado para armazenamento em buffer." -#: flatcamEditors/FlatCAMGeoEditor.py:4466 -#: flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 +#: flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "Distância inválida para armazenamento em buffer." -#: flatcamEditors/FlatCAMGeoEditor.py:4490 -#: flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 +#: flatcamEditors/FlatCAMGeoEditor.py:4587 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:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "Buffer de geometria completa criado." -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "Valor de buffer negativo não é aceito." -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 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:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "Buffer de Geometria interna criado." -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "Buffer de Geometria externa criado." -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "" "Não foi possível fazer a Pintura. O valor de sobreposição deve ser menor do " "que 1.00 (100%%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "Nada selecionado para pintura." -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "Valor inválido para" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -4472,7 +4523,7 @@ 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:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "Pintura concluída." @@ -4622,62 +4673,62 @@ msgstr "Aberturas movidas." msgid "Done. Apertures copied." msgstr "Aberturas copiadas." -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "Editor Gerber" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "Aberturas" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "Tabela de Aberturas para o Objeto Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "Código" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "Tipo" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/PreferencesUI.py:6183 flatcamGUI/PreferencesUI.py:6212 -#: flatcamGUI/PreferencesUI.py:6314 flatcamTools/ToolCopperThieving.py:260 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/PreferencesUI.py:6201 flatcamGUI/PreferencesUI.py:6230 +#: flatcamGUI/PreferencesUI.py:6332 flatcamTools/ToolCopperThieving.py:260 #: flatcamTools/ToolCopperThieving.py:300 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Tamanho" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "Dim" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "Índice" #: flatcamEditors/FlatCAMGrbEditor.py:2415 -#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:251 +#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "Código de Abertura" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Tipo de abertura: circular, retângulo, macros etc" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "Tamanho da abertura:" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4785,9 +4836,9 @@ msgstr "" " - 'Chanfrado:' o canto é uma linha que conecta diretamente os recursos " "reunidos no canto" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 -#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 +#: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "Buffer" @@ -4863,8 +4914,8 @@ msgstr "Limpar" msgid "Clear all the markings." msgstr "Limpar todas as marcações." -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "Adicionar Matriz de Pads" @@ -5087,9 +5138,9 @@ msgstr "Substituirá o texto da caixa Localizar pelo texto da caixa Substituir." 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:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "Todos" @@ -5139,10 +5190,8 @@ msgstr "Abrir arquivo" #: flatcamEditors/FlatCAMTextEditor.py:207 #: flatcamEditors/FlatCAMTextEditor.py:212 -#, fuzzy -#| msgid "Export GCode ..." msgid "Export Code ..." -msgstr "Exportar G-Code ..." +msgstr "Exportar código ..." #: flatcamEditors/FlatCAMTextEditor.py:215 msgid "Export Code cancelled." @@ -5153,7 +5202,7 @@ msgid "Code Editor content copied to clipboard ..." msgstr "Conteúdo do Code Editor copiado para a área de transferência ..." #: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 -#: flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "Alternar Painel" @@ -5205,7 +5254,7 @@ msgstr "Documento\tD" msgid "Will create a new, empty Document Object." msgstr "Criará um novo Objeto Documento vazio." -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "Abrir" @@ -5214,15 +5263,15 @@ msgstr "Abrir" msgid "Open &Project ..." msgstr "Abrir &Projeto ..." -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "Abrir &Gerber ...\tCTRL+G" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "Abrir &Excellon ...\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "Abrir G-&Code ..." @@ -5242,22 +5291,22 @@ msgstr "Arquivos Recentes" msgid "Scripting" msgstr "Scripting" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 -#: flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "Novo Script ..." -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 -#: flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 +#: flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "Abrir Script ..." -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 -#: flatcamGUI/FlatCAMGUI.py:2176 flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:2188 flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "Executar Script ..." -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -5287,23 +5336,27 @@ msgstr "&DXF como Objeto de Geometria ..." msgid "&DXF as Gerber Object ..." msgstr "&DXF como Objeto Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 como objeto de geometria ..." + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "Exportar" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "Exportar &SVG ..." -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "Exportar DXF ..." -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "Exportar &PNG ..." -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -5313,11 +5366,11 @@ msgstr "" "A imagem salva conterá as informações\n" "visuais atualmente na área gráfica FlatCAM." -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "Exportar &Excellon ..." -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -5327,11 +5380,11 @@ msgstr "" "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:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "Exportar &Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -5341,61 +5394,61 @@ msgstr "" "O formato das coordenadas, das unidades de arquivo e dos zeros\n" "são definidos em Preferências -> Exportar Gerber." -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "Backup" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "Importar preferências de um arquivo ..." -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "Exportar Preferências para um arquivo ..." -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 -#: flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 +#: flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "Salvar" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "&Salvar Projeto ..." -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "S&alvar Projeto Como ...\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "Salvar Cópia do Pr&ojeto ..." -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "Sair" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 -#: flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "Editar" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "Editar Objeto\tE" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "Fechar Editor\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "Conversão" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "&Unir Geo/Gerber/Exc -> Geo" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -5409,27 +5462,27 @@ msgstr "" "- Geometria\n" " em um novo objeto Geometria." -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "Unir Excellon(s) -> Excellon" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 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:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "Unir Gerber(s) -> Gerber" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 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:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "Converter Único para MultiGeo" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -5437,11 +5490,11 @@ msgstr "" "Converterá um objeto Geometria do tipo single_geometry\n" "em um tipo multi_geometry." -#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "Converter MultiGeo para Único" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -5449,696 +5502,702 @@ msgstr "" "Converterá um objeto Geometria do tipo multi_geometry\n" "em um tipo single_geometry." -#: flatcamGUI/FlatCAMGUI.py:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "Converter Qualquer para Geo" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "Converter Qualquer para Gerber" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "&Copiar\tCTRL+C" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "Excluir\tDEL" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "Definir Origem\tO" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "Ir para a localização\tJ" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "Alternar Unidades\tQ" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "&Selecionar Tudo\tCTRL+A" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "&Preferências\tSHIFT+P" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "Opções" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "Gi&rar Seleção\tSHIFT+(R)" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "Inclinar no eixo X\tSHIFT+X" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "Inclinar no eixo Y\tSHIFT+Y" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "Espelhar no eixo &X\tX" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "Espelhar no eixo &Y\tY" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "Ver fonte\tALT+S" -#: flatcamGUI/FlatCAMGUI.py:369 +#: flatcamGUI/FlatCAMGUI.py:380 msgid "Tools DataBase\tCTRL+D" msgstr "Banco de Dados de Ferramentas\tCTRL+D" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "Ver" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "Habilitar todos os gráficos\tALT+1" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "Desabilitar todos os gráficos\tALT+2" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "Desabilitar os não selecionados\tALT+3" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "&Zoom Ajustado\tV" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "&Zoom +\t=" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "&Zoom -\t-" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "Redesenha Todos\tF5" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "Alternar o Editor de Códigos\tSHIFT+E" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "Alternar &Tela Cheia\tALT+F10" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "Al&ternar Área de Gráficos\tCTRL+F10" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "Al&ternar Projeto/Sel/Ferram\t`" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "Al&ternar Encaixe na Grade\tG" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "Al&ternar Encaixe na Grade\tALT+G" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "Al&ternar Eixo\tSHIFT+G" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "Alternar Área de Trabalho\tSHIFT+W" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "Objetos" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "Linha de &Comando\tS" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "Ajuda" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "Ajuda Online\tF1" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "Reportar um bug" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "Especificação Excellon" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "Especificação Gerber" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "Lista de Atalhos\tF3" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "Canal no YouTube\tF4" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "Adicionar Círculo\tO" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "Adicionar Arco\tA" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "Adicionar Retângulo\tR" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "Adicionar Polígono\tN" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "Adicionar Caminho\tP" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "Adicionar Texto\tT" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "Unir Polígonos\tU" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "Interseção de Polígonos\tE" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "Subtração de Polígonos\tS" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "Caminho de Corte\tX" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "Copiar Geom\tC" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "Excluir Forma\tDEL" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "Mover\tM" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "Ferramenta Buffer\tB" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "Ferramenta de Pintura\tI" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "Ferramenta de Transformação\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "Alternar Encaixe de Canto\tK" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr ">Editor Excellon<" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "Adicionar Matriz de Furos\tA" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "Adicionar Furo\tD" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "Adic. Matriz de Ranhuras\tQ" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "Adicionar Ranhura\tW" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "Redimensionar Furo(s)\tR" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "Copiar\tC" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "Excluir\tDEL" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "Mover Furo(s)\tM" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr ">Editor Gerber<" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "Adicionar Pad\tP" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "Adicionar Matriz de Pads\tA" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "Adicionar Trilha\tT" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "Adicionar Região\tN" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "Poligonizar\tALT+N" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "Adicionar SemiDisco\tE" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "Adicionar Disco\tD" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "Buffer\tB" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "Escala\tS" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "Marcar Área\tALT+A" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "Borracha\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "Transformar\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "Habilitar Gráfico" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "Desabilitar Gráfico" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "Gerar CNC" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "Ver Fonte" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "Propriedades" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "Barra de Ferramentas de Arquivos" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "Barra de Ferramentas Editar" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "Barra de Ferramentas Ver" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "Barra de Ferramentas Shell" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "Barra de Ferramentas Ferramentas" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "Barra de Ferramentas Editor Excellon" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "Barra de Ferramentas Editor de Geometria" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "Barra de Ferramentas Editor Gerber" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "Barra de Ferramentas Grade" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "Abrir projeto" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "Salvar projeto" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "Nova Geometria em Branco" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "Novo Gerber em Branco" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "Novo Excellon em Branco" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "Salvar objeto e fechar o editor" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "&Excluir" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 -#: flatcamGUI/FlatCAMGUI.py:1653 flatcamGUI/FlatCAMGUI.py:2157 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1665 flatcamGUI/FlatCAMGUI.py:2169 #: flatcamTools/ToolDistance.py:30 flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "Ferramenta de Distância" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "Ferramenta Distância Min" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 -#: flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "Definir Origem" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "Ir para a localização" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "&Redesenhar" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "Limpar gráfi&co" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "Zoom +" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "Zoom -" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 -#: flatcamGUI/FlatCAMGUI.py:1893 flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1905 flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "Zoom Ajustado" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "Linha de &Comando" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "PCB de 2 Faces" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 #: flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "Ferramenta de Recorte" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 -#: flatcamGUI/ObjectUI.py:550 flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 +#: flatcamGUI/ObjectUI.py:555 flatcamGUI/ObjectUI.py:1712 +#: flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "Ferramenta NCC" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "Ferramenta de Painel" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "Ferramenta de Filme" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "Ferramenta Pasta de Solda" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 #: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Ferramenta Subtrair" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "Ferramenta de Regras" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 #: flatcamTools/ToolOptimal.py:34 flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "Ferramenta Ideal" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "Calculadoras" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 -#: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:2208 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "Ferramenta de QRCode" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 msgid "Copper Thieving Tool" msgstr "Ferramenta de Adição de Cobre" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2212 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 msgid "Fiducials Tool" msgstr "Ferramenta de Fiduciais" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 -#: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 -#: flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 +msgid "Calibration Tool" +msgstr "Calibração" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 +#: flatcamGUI/FlatCAMGUI.py:830 flatcamGUI/FlatCAMGUI.py:2216 +#: flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "Selecionar" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "Adicionar Furo" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "Adicionar Matriz do Furos" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1960 flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "Adicionar Ranhura" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "Adicionar Matriz de Ranhuras" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 -#: flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 +#: flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "Redimensionar Furo" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "Copiar Furo" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "Excluir Furo" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "Mover Furo" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "Adicionar Círculo" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "Adicionar Arco" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "Adicionar Retângulo" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "Adicionar Caminho" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "Adicionar Polígono" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "Adicionar Texto" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "Adicionar Buffer" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "Pintar Forma" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 -#: flatcamGUI/FlatCAMGUI.py:1910 flatcamGUI/FlatCAMGUI.py:1938 -#: flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 +#: flatcamGUI/FlatCAMGUI.py:1922 flatcamGUI/FlatCAMGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "Borracha" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "União de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "Explosão de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "Interseção de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "Subtração de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "Caminho de Corte" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "Copiar Forma(s)" -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "Excluir Forma '-'" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 -#: flatcamGUI/FlatCAMGUI.py:1917 flatcamGUI/FlatCAMGUI.py:1942 -#: flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 +#: flatcamGUI/FlatCAMGUI.py:1929 flatcamGUI/FlatCAMGUI.py:1954 +#: flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "Transformações" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "Mover Objetos " -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "Adicionar Pad" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 -#: flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "Adicionar Trilha" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "Adicionar Região" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 -#: flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 +#: flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "Poligonizar" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 -#: flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 +#: flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "SemiDisco" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 -#: flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "Disco" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 -#: flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "Marcar Área" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1961 -#: flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:1973 +#: flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "Mover" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "Encaixar na Grade" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "Distância de encaixe Grade X" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "Distância de encaixe Grade Y" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -6146,66 +6205,63 @@ msgstr "" "Quando ativo, o valor em Grid_X\n" "é copiado para o valor Grid_Y." -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "Encaixar no canto" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "Distância magnética max." -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 -msgid "Project" -msgstr "Projeto" - -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Selecionado" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "Área de Gráfico" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "Geral" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "Gerber" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "Geometria" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "Trabalho CNC" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "Ferramentas" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "Ferramentas 2" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "Utilitários" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "Importar Preferências" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -6219,11 +6275,11 @@ msgstr "" "FlatCAM salva automaticamente o arquivo 'factory_defaults'\n" "na primeira inicialização. Não exclua esse arquivo." -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "Exportar Preferências" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." @@ -6231,23 +6287,23 @@ msgstr "" "Exporta um conjunto completo de configurações do FlatCAM em um arquivo\n" "salvo no HDD." -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "Abrir a Pasta Pref" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 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:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" msgstr "Aplicar" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." msgstr "Aplica as preferências atuais sem salvar em um arquivo." -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -6255,530 +6311,530 @@ msgstr "" "Salva as configurações atuais no arquivo 'current_defaults'\n" "que armazena as preferências padrão de trabalho." -#: flatcamGUI/FlatCAMGUI.py:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 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:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "Mostra Lista de Teclas de Atalho" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "Alterna para a Aba Projeto" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "Alterna para a Aba Selecionado" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "Alterna para a Aba Ferramentas" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "Novo Gerber" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "Editar Objeto (se selecionado)" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "Ir para a Coordenada" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "Novo Excellon" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "Mover Obj" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "Nova Geometria" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "Alternar Unidades" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "Abre Ferramenta Propriedades" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "Girar 90º sentido horário" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "Alterna Linha de Comando" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 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:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "Espelhar no Eixo X" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "Espelhar no Eixo Y" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "Copiar Obj" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Open Tools Database" msgstr "Abre Banco de Dados de Ferramentas" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "Abrir Excellon" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "Abrir Gerber" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "Novo Projeto" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "Ferramenta de Importação de PDF" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "Salvar Projeto Como" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "Alternar Área de Gráficos" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "Copiar Obj_Name" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "Alternar o Editor de Códigos" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "Alternar o Eixo" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 -#: flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 +#: flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "Ferramenta Distância Mínima" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "Abrir Preferências" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "Girar 90° sentido anti-horário" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "Executar um Script" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "Alternar Área de Trabalho" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "Inclinação no eixo X" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "Inclinação no eixo Y" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "PCB 2 Faces" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "Transformações" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "Pasta de Solda" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "Ferramenta de Filme PCB" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "Área Sem Cobre (NCC)" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "Área de Pintura" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "Ferramenta de Verificação de Regras" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "Ver Arquivo Fonte" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "Ferramenta de Recorte" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "Habilitar todos os Gráficos" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "Desabilitar todos os Gráficos" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "Desabilitar os gráficos não selecionados" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "Alternar Tela Cheia" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "Abortar a tarefa atual (normalmente)" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "Abrir Manual Online" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "Abrir Tutoriais Online" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "Atualizar Gráfico" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "Excluir Objeto" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "Alternativo: Excluir Ferramenta" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "(esquerda da Tecla_1) Alterna Área do Bloco de Notas (lado esquerdo)" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "Des(h)abilitar Gráfico" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "Desmarca todos os objetos" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "Lista de Teclas de Atalho" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "Editor de Geometria" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "Desenha um Arco" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "Copiar Geo" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 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:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "Interseção de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "Ferramenta de Pintura" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "Ir para a Localização (x, y)" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "Alternar Encaixe de Canto" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "Mover Geometria" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Within Add Arc will cycle through the ARC modes" msgstr "Em Adicionar Arco, alterna o tipo de arco" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "Desenha um Polígono" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "Desenha um Círculo" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "Desenha um Caminho" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "Desenha um Retângulo" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "Ferram. de Subtração de Polígono" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "Ferramenta de Texto" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "União de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "Espelhar no Eixo X" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "Espelhar no Eixo Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "Inclinação no eixo X" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "Inclinação no eixo Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "Ferramenta Transformar" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "Deslocamento no eixo X" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "Deslocamento no eixo Y" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "Salvar Objeto e Fechar o Editor" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "Corte de Polígonos" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "Girar Geometria" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "Concluir desenho para certas ferramentas" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "Abortar e retornar à Seleção" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "Excluir Forma" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "Editor Excellon" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "Copiar Furo(s)" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "Adicionar Furo" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "Mover Furo(s)" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "Adicionar Ferramenta" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "Excluir Furo(s)" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "Alternativo: Excluir Ferramenta(s)" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "Editor Gerber" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "Adicionar Disco" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "Adicionar SemiDisco" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 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:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 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:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "Alternativo: Excluir Abertura" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "Ferramenta Apagar" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "Marcar Área" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "Poligonizar" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "Ferramenta Transformação" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "Alternar Visibilidade" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "Novo" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "Geometria" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "Grades" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "Limpar Gráfico" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "Redesenhar" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "Editor de Geometria" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "Caminho" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "Retângulo" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "Círculo" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "Polígono" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "Arco" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "União" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "Interseção" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "Substração" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "Cortar" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "Pad" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "Matriz de Pads" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "Trilha" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "Região" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "Editor Exc" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" @@ -6786,7 +6842,7 @@ msgstr "" "Medição relativa.\n" "Em relação à posição do último clique" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" @@ -6794,27 +6850,27 @@ msgstr "" "Medição absoluta.\n" "Em relação à posição (X=0, Y=0)" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "Travar Barras de Ferramentas" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "Ferramenta de Re&corte" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "Selecionar 'Esc'" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "Copiar Objetos" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "Mover Objetos" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6826,12 +6882,12 @@ msgstr "" "fora do primeiro item. No final, pressione a tecla ~X~ ou\n" "o botão da barra de ferramentas." -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 -#: flatcamGUI/FlatCAMGUI.py:3010 flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 +#: flatcamGUI/FlatCAMGUI.py:3023 flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "Aviso" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -6839,7 +6895,7 @@ msgstr "" "Por favor, selecione itens de geometria\n" "para executar a ferramenta de interseção." -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -6847,7 +6903,7 @@ msgstr "" "Por favor, selecione itens de geometria\n" "para executar a ferramenta de subtração." -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." @@ -6855,52 +6911,52 @@ msgstr "" "Por favor, selecione itens de geometria\n" "para executar a ferramenta de união." -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "Cancelado. Nada selecionado para excluir." -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "Cancelado. Nada selecionado para copiar." -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "Cancelado. Nada selecionado para mover." -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "Nova Ferramenta ..." -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "Digite um diâmetro de ferramenta" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "Adicionar ferramenta cancelado ..." -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "Sair da ferramenta de medição ..." -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "Ocioso." -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "Aplicativo iniciado ..." -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "Olá!" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "Abrir Projeto ..." -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "Sair" @@ -6937,85 +6993,89 @@ msgstr "Fator" #: flatcamGUI/ObjectUI.py:102 msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"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." +"geométricos deste objeto.\n" +"Expressões são permitidas. Por exemplo: 1 / 25.4" -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "Realiza a operação de dimensionamento." -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "Altera a posição deste objeto." -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "Vetor" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"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)." +"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:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "Executa a operação de deslocamento." -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "Objeto Gerber" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 -#: flatcamGUI/ObjectUI.py:1083 flatcamGUI/ObjectUI.py:1663 -#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 -#: flatcamGUI/PreferencesUI.py:3110 flatcamGUI/PreferencesUI.py:3599 -msgid "Plot Options" -msgstr "Opções de Gráfico" - -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 -#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 -#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:190 -msgid "Solid" -msgstr "Preenchido" - -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 -msgid "Solid color polygons." -msgstr "Polígonos com cor sólida." - -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" -msgstr "M-Cores" - -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 -msgid "Draw polygons in different colors." -msgstr "Desenha polígonos em cores diferentes." - -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 -#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 -#: flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "Gráfico" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 -#: flatcamGUI/ObjectUI.py:1129 flatcamGUI/ObjectUI.py:1773 -#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3116 -#: flatcamGUI/PreferencesUI.py:3610 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 +#: flatcamGUI/ObjectUI.py:1166 flatcamGUI/ObjectUI.py:1855 +#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3118 +#: flatcamGUI/PreferencesUI.py:3628 msgid "Plot (show) this object." msgstr "Mostra o objeto no gráfico." -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 -#: flatcamGUI/ObjectUI.py:1089 flatcamGUI/ObjectUI.py:1693 -#: flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 +#: flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "Gráfico" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 +#: flatcamGUI/ObjectUI.py:1120 flatcamGUI/ObjectUI.py:1745 +#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 +#: flatcamGUI/PreferencesUI.py:3112 flatcamGUI/PreferencesUI.py:3617 +msgid "Plot Options" +msgstr "Opções de Gráfico" + +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 +#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 +#: flatcamGUI/PreferencesUI.py:6153 flatcamTools/ToolCopperThieving.py:190 +msgid "Solid" +msgstr "Preenchido" + +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 +msgid "Solid color polygons." +msgstr "Polígonos com cor sólida." + +#: flatcamGUI/ObjectUI.py:192 +msgid "Multi-Color" +msgstr "Multicolorido" + +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 +msgid "Draw polygons in different colors." +msgstr "Desenha polígonos em cores diferentes." + +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 +#: flatcamGUI/ObjectUI.py:1126 flatcamGUI/ObjectUI.py:1775 +#: flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Nome" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -7025,11 +7085,11 @@ msgstr "" "Quando desmarcada, serão excluídas todas as formas de marcas\n" "desenhadas na tela." -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "Marcar Todos" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -7039,15 +7099,15 @@ msgstr "" "Quando desmarcado, serão apagadas todas as formas de marcas\n" "desenhadas na tela." -#: flatcamGUI/ObjectUI.py:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "Marque as instâncias de abertura na tela." -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "Roteamento de Isolação" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." @@ -7055,7 +7115,7 @@ msgstr "" "Cria um objeto Geometria com caminho de\n" "ferramenta para cortar polígonos externos." -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -7067,41 +7127,39 @@ msgstr "" "Quando 'ponta em V' for selecionada, o diâmetro da\n" "ferramenta dependerá da profundidade de corte escolhida." -#: flatcamGUI/ObjectUI.py:296 -#, fuzzy -#| msgid "V-shape" +#: flatcamGUI/ObjectUI.py:301 msgid "V-Shape" -msgstr "Ponta-V" +msgstr "Forma-V" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 -#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:3992 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 +#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:4010 #: flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "Diâmetro da Ponta" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 -#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:3994 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 +#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:4012 #: flatcamTools/ToolNonCopperClear.py:233 msgid "The tip diameter for V-Shape Tool" msgstr "O diâmetro da ponta da ferramenta em forma de V" -#: flatcamGUI/ObjectUI.py:315 flatcamGUI/ObjectUI.py:1313 -#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4004 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 +#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4022 #: flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "Ângulo Ponta-V" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 -#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4006 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 +#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4024 #: flatcamTools/ToolNonCopperClear.py:244 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:331 flatcamGUI/ObjectUI.py:1332 -#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3179 -#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCutOut.py:135 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 +#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3181 +#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7109,7 +7167,7 @@ msgstr "" "Profundidade de corte (negativo)\n" "abaixo da superfície de cobre." -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -7122,11 +7180,11 @@ msgstr "" "atual do recurso Gerber, use um valor negativo para\n" "este parâmetro." -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "Passes" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." @@ -7134,24 +7192,24 @@ msgstr "" "Largura da isolação em relação à\n" "largura da ferramenta (número inteiro)." -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "Sobreposição" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "" "Quanto (fração) da largura da ferramenta é sobreposta a cada passagem da " "ferramenta." -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "Tipo de Fresamento" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 msgid "" "Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -7162,29 +7220,29 @@ msgstr "" "ferramenta\n" "- convencional: útil quando não há compensação de folga" -#: flatcamGUI/ObjectUI.py:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "Subida" -#: flatcamGUI/ObjectUI.py:394 +#: flatcamGUI/ObjectUI.py:399 msgid "Conventional" msgstr "Convencional" -#: flatcamGUI/ObjectUI.py:399 +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "Combinar" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "Combinar todos os passes em um objeto" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "\"Segue\"" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" @@ -7194,11 +7252,11 @@ msgstr "" "Isso significa que ele cortará\n" "no meio do traço." -#: flatcamGUI/ObjectUI.py:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "Exceto" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" @@ -7208,12 +7266,12 @@ msgstr "" "a área do objeto abaixo será subtraída da geometria\n" "de isolação." -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "Tipo Obj" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -7225,22 +7283,22 @@ msgstr "" "Esta seleção ditará o tipo de objetos que preencherão\n" "a caixa de combinação 'Objeto'." -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "Objeto" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 msgid "Object whose area will be removed from isolation geometry." msgstr "Objeto cuja área será removida da geometria de isolação." -#: flatcamGUI/ObjectUI.py:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" msgstr "Escopo" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 msgid "" "Isolation scope. Choose what to isolate:\n" "- 'All' -> Isolate all the polygons in the object\n" @@ -7250,16 +7308,16 @@ msgstr "" "- 'Tudo' -> Isola todos os polígonos no objeto\n" "- 'Seleção' -> Isola uma seleção de polígonos." -#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "Seleção" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 msgid "Isolation Type" msgstr "Tipo de Isolação" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -7279,24 +7337,24 @@ msgstr "" "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:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "Completa" -#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/ObjectUI.py:492 msgid "Ext" msgstr "Ext" -#: flatcamGUI/ObjectUI.py:488 +#: flatcamGUI/ObjectUI.py:493 msgid "Int" msgstr "Int" -#: flatcamGUI/ObjectUI.py:493 +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "Gerar Geometria de Isolação" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -7317,11 +7375,11 @@ msgstr "" "desejado é cortar a isolação dentro do recurso Gerber, use uma\n" "ferramenta negativa diâmetro acima." -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "Buffer de Geometria Sólida" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -7333,11 +7391,11 @@ msgstr "" "Clicar neste botão criará o buffer da geometria\n" "necessário para a isolação." -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "Limpa N-cobre" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." @@ -7345,7 +7403,8 @@ msgstr "" "Cria um objeto Geometria com caminho de ferramenta\n" "para cortar todas as regiões com retirada de cobre." -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -7353,11 +7412,11 @@ msgstr "" "Cria o Objeto de Geometria\n" "para roteamento de zona sem cobre." -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "Recorte da placa" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7366,17 +7425,17 @@ msgstr "" "Cria caminhos da ferramenta para cortar\n" "o PCB e separá-lo da placa original." -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." msgstr "Gera a geometria para o recorte da placa." -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "Zona sem cobre" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -7390,12 +7449,12 @@ msgstr "" "objeto. Pode ser usado para remover todo o\n" "cobre de uma região especificada." -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 #: flatcamGUI/PreferencesUI.py:1534 flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "Margem Limite" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -7406,27 +7465,27 @@ msgstr "" "desenhando uma caixa em volta de todos os\n" "objetos com esta distância mínima." -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 #: flatcamGUI/PreferencesUI.py:1549 flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "Geo Arredondado" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "A geometria resultante terá cantos arredondados." -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 #: flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "Gerar Geo" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Caixa Delimitadora" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -7434,7 +7493,7 @@ msgstr "" "Crie uma geometria em torno do objeto Gerber.\n" "Forma quadrada." -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -7442,7 +7501,7 @@ msgstr "" "Distância das bordas da caixa\n" "para o polígono mais próximo." -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -7453,32 +7512,33 @@ msgstr "" "cantos arredondados, o seu raio\n" "é igual à margem." -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "Gera o objeto Geometria." -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "Objeto Excellon" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "Círculos preenchidos ou vazados." -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "Furos" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 -#: flatcamTools/ToolProperties.py:162 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:2952 flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "Ranhuras" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "Deslocamento Z" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7490,7 +7550,7 @@ msgstr "" "Quando Trocar Ferramentas estiver marcado, este valor\n" " será mostrado como T1, T2 ... Tn no Código da Máquina." -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 #: flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" @@ -7499,19 +7559,19 @@ msgstr "" "Diâmetro da Ferramenta. É a largura do corte no material\n" "(nas unidades atuais do FlatCAM)." -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 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:752 +#: flatcamGUI/ObjectUI.py:769 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:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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" @@ -7522,7 +7582,7 @@ msgstr "" "ponta.\n" "Este valor pode compensar o parâmetro Profundidade de Corte Z." -#: flatcamGUI/ObjectUI.py:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -7530,18 +7590,18 @@ msgstr "" "Alterna a exibição da ferramenta atual. Isto não seleciona a ferramenta para " "geração do G-Code." -#: flatcamGUI/ObjectUI.py:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "Criar Trabalho CNC" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." msgstr "Cria um objeto de trabalho CNC para a furação." -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -7549,7 +7609,7 @@ msgstr "" "Profundidade do furo (negativo)\n" "abaixo da superfície de cobre." -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -7557,12 +7617,12 @@ msgstr "" "Altura da ferramenta durante os\n" "deslocamentos sobre o plano XY." -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 -#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 +#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "Troca de Ferramentas" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -7570,23 +7630,23 @@ msgstr "" "Pausa para troca de ferramentas. Inclua a sequência\n" "de troca de ferramentas em G-Code (em Trabalho CNC)." -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "Altura para a troca" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 -#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 +#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "Posição do eixo Z (altura) para a troca de ferramenta." -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "Altura Z Inicial" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -7594,25 +7654,25 @@ msgstr "" "Altura da ferramenta antes de iniciar o trabalho.\n" "Exclua o valor se você não precisar deste recurso." -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 -#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 +#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "Altura Z Final" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 -#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 +#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3288 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:874 flatcamGUI/ObjectUI.py:1469 -#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3319 -#: flatcamGUI/PreferencesUI.py:5479 flatcamTools/ToolSolderPaste.py:264 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 +#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/PreferencesUI.py:5497 flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "Taxa de Avanço Z" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7624,12 +7684,12 @@ msgstr "" "Também chamado de avanço de 'Mergulho'.\n" "Para movimento linear G01." -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 -#: flatcamGUI/PreferencesUI.py:2583 flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 +#: flatcamGUI/PreferencesUI.py:2585 flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "Taxa de Avanço Rápida" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7642,12 +7702,12 @@ msgstr "" "Usado para movimento rápido G00.\n" "É útil apenas para Marlin. Ignore para outros casos." -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 -#: flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 +#: flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "Velocidade do Spindle" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -7655,8 +7715,8 @@ msgstr "" "Velocidade do spindle\n" "em RPM (opcional)" -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 -#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/PreferencesUI.py:2441 flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7664,12 +7724,12 @@ msgstr "" "Pausa para permitir que o spindle atinja sua\n" "velocidade antes de cortar." -#: flatcamGUI/ObjectUI.py:931 flatcamGUI/ObjectUI.py:1541 -#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 +#: flatcamGUI/PreferencesUI.py:2446 flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "Número de unidades de tempo para o fuso residir." -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7677,13 +7737,13 @@ msgstr "" "O arquivo de pós-processamento (JSON) que define\n" "a saída G-Code." -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 -#: flatcamGUI/PreferencesUI.py:2599 flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 +#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "Profundidade Z da Sonda" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 -#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 +#: flatcamGUI/PreferencesUI.py:2603 flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7691,21 +7751,21 @@ msgstr "" "Profundidade máxima permitida para a sonda.\n" "Valor negativo, em unidades atuais." -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 -#: flatcamGUI/PreferencesUI.py:2612 flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 +#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "Avanço da Sonda" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 -#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 +#: flatcamGUI/PreferencesUI.py:2616 flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "Velocidade de Avanço usada enquanto a sonda está operando." -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "G-Code" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7717,19 +7777,19 @@ msgstr "" "Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras/fendas serão\n" "convertidas em uma série de furos." -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "Criar G-Code Furos" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "Gera o arquivo G-Code para o CNC." -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "Furação" -#: flatcamGUI/ObjectUI.py:1019 +#: flatcamGUI/ObjectUI.py:1044 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" @@ -7740,20 +7800,20 @@ msgstr "" "os diâmetros dos furos que serão fresados.\n" "Use a coluna # para selecionar." -#: flatcamGUI/ObjectUI.py:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "Diâmetro da Broca" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "Diâmetro da ferramenta." -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "Geo Furos" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -7761,11 +7821,11 @@ msgstr "" "Cria o Objeto Geometria com\n" "os caminhos da ferramenta de FUROS." -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "Diâmetro da Fresa" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7773,11 +7833,11 @@ msgstr "" "Diâmetro da ferramenta de corte\n" "quando fresar fendas (ranhuras)." -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "Geo Ranhuras" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -7785,11 +7845,11 @@ msgstr "" "Cria o Objeto Geometria com\n" "os caminhos da ferramenta de RANHURAS." -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "Objeto Geometria" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -7819,22 +7879,23 @@ msgstr "" "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:1127 flatcamGUI/ObjectUI.py:1771 -#: flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 +#: flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "Mostrar" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 -#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 +#: flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:6172 +#: flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "Dia" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "TF" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7844,7 +7905,7 @@ msgstr "" "Quando Trocar Ferramentas estiver marcado, no evento este valor\n" " será mostrado como T1, T2 ... Tn" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -7862,7 +7923,7 @@ msgstr "" "geometria.\n" "- Personalizado -> Será considerado o valor digitado." -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -7885,7 +7946,7 @@ msgstr "" "Para Isolação, usa-se uma velocidade de avanço menor, pois é usada uma broca " "com ponta fina." -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -7915,7 +7976,7 @@ msgstr "" "Escolher o tipo de ferramenta Em Forma de V automaticamente alterará o tipo " "de operação para Isolação." -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -7933,7 +7994,7 @@ msgstr "" "desativado o gráfico na tela\n" "para a ferramenta correspondente." -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -7945,7 +8006,7 @@ msgstr "" "O valor pode ser positivo para corte 'por fora'\n" "e negativo para corte 'por dentro'." -#: flatcamGUI/ObjectUI.py:1230 +#: flatcamGUI/ObjectUI.py:1267 msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." @@ -7953,11 +8014,11 @@ msgstr "" "Adiciona uma nova ferramenta à Tabela de Ferramentas\n" "com o diâmetro especificado." -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" msgstr "Adiciona Ferramenta do Banco de Dados" -#: flatcamGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1277 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." @@ -7965,7 +8026,7 @@ msgstr "" "Adiciona uma nova ferramenta à Tabela de Ferramentas\n" "do Banco de Dados de Ferramentas." -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7973,7 +8034,7 @@ msgstr "" "Copia uma seleção de ferramentas na Tabela de Ferramentas selecionando " "primeiro uma linha na Tabela de Ferramentas." -#: flatcamGUI/ObjectUI.py:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7981,7 +8042,7 @@ msgstr "" "Exclui uma seleção de ferramentas na Tabela de Ferramentas selecionando " "primeiro uma linha na Tabela de Ferramentas." -#: flatcamGUI/ObjectUI.py:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -7989,13 +8050,13 @@ msgstr "" "Os dados usados para criar o G-Code.\n" "Cada loja de ferramentas possui seu próprio conjunto de dados." -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "Multi-Profundidade" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -8007,18 +8068,18 @@ msgstr "" "cortar várias vezes até o Corte Z é\n" "alcançado." -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "Profundidade de cada passe (positivo)." -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "Altura da ferramenta ao mover sem cortar." -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -8026,18 +8087,18 @@ msgstr "" "Sequência de troca de ferramentas incluída\n" "no Código da Máquina (Pausa para troca de ferramentas)." -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "Avanço X-Y" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 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:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -8046,7 +8107,7 @@ msgstr "" "Velocidade de corte no plano Z em unidades por minuto.\n" "Também é chamado de Mergulho." -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -8058,11 +8119,12 @@ msgstr "" "Para o movimento rápido G00.\n" "É útil apenas para Marlin, ignore em outros casos." -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." -msgstr "Re-cortar o primeiro ponto" +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +msgid "Re-cut" +msgstr "Re-cortar" -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 +#: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -8073,7 +8135,7 @@ msgstr "" "do primeiro com o último corte, gera-se um corte\n" "próximo à primeira seção de corte." -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -8083,12 +8145,12 @@ msgstr "" "Se o pós-processador LASER é usado,\n" "este valor é a potência do laser." -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "Pós-processador" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -8096,11 +8158,11 @@ 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:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" msgstr "Aplicar parâmetros a todas as ferramentas" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." @@ -8108,7 +8170,7 @@ msgstr "" "Os parâmetros no formulário atual serão aplicados\n" "em todas as ferramentas da Tabela de Ferramentas." -#: flatcamGUI/ObjectUI.py:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" @@ -8118,19 +8180,19 @@ msgstr "" "Clique no cabeçalho para selecionar todos ou Ctrl + Botão Esquerdo do Mouse\n" "para seleção personalizada de ferramentas." -#: flatcamGUI/ObjectUI.py:1616 +#: flatcamGUI/ObjectUI.py:1670 msgid "Generate CNCJob object" msgstr "Gera o objeto de Trabalho CNC" -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "Gera o objeto de Trabalho CNC." -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" -msgstr "Área de Pintura" +#: flatcamGUI/ObjectUI.py:1689 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Inicia a ferramenta de pintura na guia Ferramentas." -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -8141,19 +8203,15 @@ msgstr "" "inteira de um polígono (remove todo o cobre).\n" "Você será solicitado a clicar no polígono desejado." -#: flatcamGUI/ObjectUI.py:1639 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Inicia a ferramenta de pintura na guia Ferramentas." - -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1737 msgid "CNC Job Object" msgstr "Objeto de Trabalho CNC" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "Tipo de Gráfico" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -8164,15 +8222,15 @@ msgstr "" "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:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "Deslocamento" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "Exibir Anotação" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -8182,11 +8240,11 @@ msgstr "" "Quando marcado, exibirá números para cada final\n" "de uma linha de deslocamento." -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." msgstr "Dist. percorrida" -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -8194,11 +8252,11 @@ msgstr "" "Essa é a distância total percorrida no plano XY,\n" "nas unidades atuais." -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "Tempo estimado" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -8206,11 +8264,11 @@ 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:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "Tabela de Ferra. CNC" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -8233,24 +8291,24 @@ msgstr "" "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:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "P" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "Atualizar Gráfico" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "Atualiza o gráfico." -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "Exportar Código CNC" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -8258,11 +8316,12 @@ msgstr "" "Exporta e salva em arquivo\n" "o G-Code para fazer este objeto." -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "Incluir no Início do Código CNC" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 +#: flatcamGUI/PreferencesUI.py:3776 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8270,19 +8329,12 @@ msgstr "" "Digite aqui os comandos G-Code que você gostaria\n" "de adicionar ao início do arquivo G-Code gerado." -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -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/ObjectUI.py:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Incluir no Final do Código CNC" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 +#: flatcamGUI/PreferencesUI.py:3792 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8292,19 +8344,11 @@ msgstr "" "de adicionar ao final do arquivo G-Code gerado.\n" "M2 (Fim do programa)" -#: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file. I.e.: M2 (End of program)" -msgstr "" -"Digite aqui os comandos G-Code que você gostaria de adicionar ao final do " -"arquivo gerado. M2 (Fim do programa)" - -#: flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "G-Code para Troca de Ferramentas" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8327,26 +8371,30 @@ msgstr "" "como modelo o arquivo de pós-processamento 'Customização da troca de " "ferramentas'." -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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 os comandos do G-Code que você gostaria de executar quando o " -"evento do Troca de Ferramentas for encontrado.\n" -"Este será um G-Code personalizado ou uma Macro para Troca de Ferramenta. As " -"variáveis do FlatCAM são circundadas pelo símbolo '%'.\n" -"ATENÇÃO: pode ser usado apenas com um arquivo de pós-processamento que tenha " -"'toolchange_custom' em seu nome." +"Digite aqui qualquer comando do código G que você deseja\n" +"gostaria de ser executado quando o evento de troca de ferramentas é " +"encontrado.\n" +"Isso constituirá um GCode 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:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "Usar Macro de Troca de Ferramentas" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -8354,7 +8402,7 @@ msgstr "" "Marque esta caixa se você quiser usar a macro G-Code para Troca de " "Ferramentas." -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -8364,160 +8412,160 @@ msgstr "" "no evento Troca de Ferramentas.\n" "Elas devem estar cercadas pelo símbolo '%'" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "Parâmetros" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "Parâmetros do FlatCAM CNC" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "número da ferramenta" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "diâmetro da ferramenta" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "para Excellon, número total de furos" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" -msgstr "coordenada X para troca de ferramenta" +msgstr "Coordenada X para troca de ferramenta" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" -msgstr "coordenada Y para troca de ferramenta" +msgstr "Coordenada Y para troca de ferramenta" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "Coordenada Z para troca de ferramenta" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "profundidade de corte" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "altura para deslocamentos" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "valor do passe para corte múltiplas profundidade" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "velocidade do spindle" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 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:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "Ver Código CNC" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 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:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "Salvar Código CNC" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 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:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "Objeto Script" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "Preenchimento Automático" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 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:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "Objeto Documento" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 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:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "Tipo de Fonte" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "Tamanho da Fonte" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "Alinhamento" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "Esquerda" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "Centro" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "Direita" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "Justificado" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "Cor da Fonte" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "Define a cor da fonte para o texto selecionado" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "Cor da Seleção" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 msgid "Set the selection color when doing text selection." msgstr "Define a cor da seleção quando selecionando texto." -#: flatcamGUI/ObjectUI.py:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "Tamanho da Aba" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 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." @@ -8581,7 +8629,8 @@ msgstr "" msgid "Wk. Orientation" msgstr "Orientação" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" @@ -8591,12 +8640,12 @@ msgstr "" "- Retrato\n" "- Paisagem" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" msgstr "Retrato" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" msgstr "Paisagem" @@ -8994,7 +9043,7 @@ msgid "App Preferences" msgstr "Preferências do aplicativo" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -9012,7 +9061,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "mm" @@ -9332,8 +9381,12 @@ msgstr "" msgid "Gerber General" msgstr "Gerber Geral" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "M-Cores" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "Passos do Círculo" @@ -9364,13 +9417,13 @@ msgstr "As unidades usadas no arquivo Gerber." #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "in" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "Zeros" @@ -9388,13 +9441,13 @@ msgstr "" "TZ: remove os zeros à direita e mantém os zeros à esquerda." #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" @@ -9403,8 +9456,8 @@ msgstr "TZ" msgid "Gerber Options" msgstr "Opções Gerber" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "Conv." @@ -9416,8 +9469,8 @@ msgstr "Combinar Passes" msgid "Gerber Adv. Options" msgstr "Opções Avançadas" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "Opções Avançadas" @@ -9467,8 +9520,8 @@ msgstr "" "padrão.\n" "<>: Não altere isso, a menos que você saiba o que está fazendo !!!" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -9501,7 +9554,7 @@ msgstr "Tolerância para a simplificação de polígonos." msgid "Gerber Export" msgstr "Exportar Gerber" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "Opções da Exportação" @@ -9513,7 +9566,7 @@ msgstr "" "Os parâmetros definidos aqui são usados no arquivo exportado\n" "ao usar a entrada de menu Arquivo -> Exportar -> Exportar Gerber." -#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "Int/Decimais" @@ -9545,8 +9598,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "Uma lista de parâmetros do Editor Gerber." -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "Lim. de seleção" @@ -9590,8 +9643,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "Dimensão" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "Diâmetros das ferramentas de corte, separadas por ','" @@ -9599,8 +9652,8 @@ msgstr "Diâmetros das ferramentas de corte, separadas por ','" msgid "Linear Pad Array" msgstr "Matriz Linear de Pads" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "Direção Linear" @@ -9608,13 +9661,13 @@ msgstr "Direção Linear" msgid "Circular Pad Array" msgstr "Matriz Circular de Pads" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "Direção Circular" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -9622,8 +9675,8 @@ msgstr "" "Sentido da matriz circular.\n" "Pode ser CW = sentido horário ou CCW = sentido anti-horário." -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "Ângulo Circular" @@ -9710,7 +9763,7 @@ msgid "Default values for INCH are 2:4" msgstr "Valores padrão para Polegadas: 2:4" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -9719,7 +9772,7 @@ msgstr "" "da parte inteira das coordenadas de Excellon." #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -9739,7 +9792,7 @@ msgstr "Valores padrão para Métrico: 3:3" msgid "Default Zeros" msgstr "Padrão Zeros" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -9862,11 +9915,11 @@ msgstr "" "Parâmetros usados para criar um objeto de Trabalho CNC\n" "para a furação." -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "Tempo de espera" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -9878,19 +9931,19 @@ msgstr "" "Quando escolher 'Ranhuras' ou 'Ambos', as ranhuras serão\n" "convertidos para furos." -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "Cria geometria para furação." -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "Padrões" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "Opções Avançadas Excellon" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -9900,21 +9953,19 @@ msgstr "" "Esses parâmetros estão disponíveis somente para\n" "o nível avançado do aplicativo." -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "Troca de ferramenta X,Y" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "Posição X,Y para troca de ferramentas." -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 -#, fuzzy -#| msgid "Spindle dir." +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 msgid "Spindle direction" msgstr "Sentido de Rotação" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -9926,11 +9977,11 @@ msgstr "" "- CW = sentido horário ou\n" "- CCW = sentido anti-horário" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "Mergulho Rápido" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -9942,11 +9993,11 @@ msgstr "" "na velocidade mais rápida disponível.\n" "AVISO: o movimento é feito nas Coordenadas X,Y de troca de ferramentas." -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "Recolhimento Rápido" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -9962,11 +10013,11 @@ msgstr "" "- 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/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "Exportar Excellon" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -9974,11 +10025,11 @@ msgstr "" "Os parâmetros definidos aqui são usados no arquivo exportado\n" "ao usar a entrada de menu Arquivo -> Exportar -> Exportar Excellon." -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "A unidade usada no arquivo Excellon gerado." -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -9990,11 +10041,11 @@ msgstr "" "Aqui é definido o formato usado quando as coordenadas\n" "fornecidas não usam ponto." -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "Formato" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -10010,15 +10061,15 @@ msgstr "" "Deve ser especificado LZ (manter zeros à esquerda)\n" "ou TZ (manter zeros à direita)." -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "Decimal" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "Não Decimal" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10030,11 +10081,11 @@ msgstr "" "LZ: mantém os zeros à esquerda e remove os zeros à direita.\n" "TZ: mantém os zeros à direita e remove os zeros à esquerda." -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "Tipo de Ranhura" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -10048,19 +10099,19 @@ msgstr "" "Se PERFURADO as ranhuras serão exportadas\n" "usando o comando Perfuração (G85)." -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "Roteado" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "Perfurado (G85)" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "Parâmetros do Editor Excellon." -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -10073,19 +10124,19 @@ msgstr "" "retângulo de seleção Aumenta o desempenho ao mover um\n" "grande número de elementos geométricos." -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "Novo Diâmetro" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "Matriz Linear de Furos" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "Matriz Circular de Furos" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -10097,19 +10148,19 @@ msgstr "" "Valor mínimo: -359.99 graus.\n" "Valor máximo: 360.00 graus." -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "Matriz Linear de Ranhuras" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "Matriz Circular de Ranhuras" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "Geometria Geral" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -10117,11 +10168,11 @@ msgstr "" "Número de etapas do círculo para a aproximação linear\n" "de Geometria círculo e arco." -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "Opções de Geometria" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -10131,11 +10182,11 @@ msgstr "" "traçando os contornos deste objeto\n" "Geometria." -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "Profundidade por Passe" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -10148,11 +10199,11 @@ msgstr "" "Tem valor positivo, embora seja uma fração\n" "da profundidade, que tem valor negativo." -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "Opções Avançadas" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -10162,12 +10213,13 @@ msgstr "" "Esses parâmetros estão disponíveis somente para\n" "o nível avançado do aplicativo." -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "Troca de ferramenta X-Y" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -10175,13 +10227,11 @@ msgstr "" "Altura da ferramenta ao iniciar o trabalho.\n" "Exclua o valor se você não precisar deste recurso." -#: flatcamGUI/PreferencesUI.py:3508 -#, fuzzy -#| msgid "Seg. X size" +#: flatcamGUI/PreferencesUI.py:3526 msgid "Segment X size" msgstr "Tamanho do Segmento X" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -10191,13 +10241,11 @@ msgstr "" "Útil para nivelamento automático.\n" "Valor 0 significa que não há segmentação no eixo X." -#: flatcamGUI/PreferencesUI.py:3524 -#, fuzzy -#| msgid "Seg. Y size" +#: flatcamGUI/PreferencesUI.py:3542 msgid "Segment Y size" msgstr "Tamanho do Segmento Y" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -10207,15 +10255,15 @@ msgstr "" "Útil para nivelamento automático.\n" "Valor 0 significa que não há segmentação no eixo Y." -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "Editor de Geometria" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "Parâmetros do Editor de Geometria." -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -10227,11 +10275,11 @@ msgstr "" "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/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "Trabalho CNC Geral" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -10239,21 +10287,21 @@ msgstr "" "O número de etapas de círculo para G-Code.\n" "Aproximação linear para círculos e formas de arco." -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "Diâmetro Desl." -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 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/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "Decimais das Coord." -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -10261,11 +10309,11 @@ msgstr "" "Número de decimais a ser usado para as coordenadas\n" "X, Y, Z no código do CNC (G-Code, etc.)" -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "Decimais do Avanço" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -10273,11 +10321,11 @@ 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/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "Tipo de coordenada" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -10289,19 +10337,19 @@ msgstr "" "- Absoluta G90 -> a referência é a origem x=0, y=0\n" "- Incremental G91 -> a referência é a posição anterior" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "Absoluta G90" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "Incremental G91" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" msgstr "Forçar final de linha no estilo Windows" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." @@ -10309,63 +10357,63 @@ msgstr "" "Quando marcado forçará um final de linha no estilo Windows\n" "(\\r\\n) em sistemas operacionais não Windows." -#: flatcamGUI/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "Opções de Trabalho CNC" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "Exportar G-Code" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "Incluir no Início do G-Code" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "Incluir no final do G-Code" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "Opções Avançadas" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" -msgstr "profundidade Z para o corte" +msgstr "Profundidade Z para o corte" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" -msgstr "altura Z para deslocamentos" +msgstr "Altura Z para deslocamentos" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 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/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "Tamanho da Fonte" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 msgid "The font size of the annotation text. In pixels." msgstr "O tamanho da fonte do texto de anotação, em pixels." -#: flatcamGUI/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "Cor da Fonte" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "Define a cor da fonte para os textos de anotação." -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "Opções Área Sem Cobre (NCC)" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "Diâmetro" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolNonCopperClear.py:223 msgid "" @@ -10377,11 +10425,11 @@ msgstr "" "- 'Ponta-V'\n" "- Circular" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "Ponta-V" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 #: flatcamTools/ToolNonCopperClear.py:264 msgid "" @@ -10391,11 +10439,11 @@ msgstr "" "Profundidade de corte no material. Valor negativo.\n" "Em unidades FlatCAM." -#: flatcamGUI/PreferencesUI.py:4039 +#: flatcamGUI/PreferencesUI.py:4057 msgid "The new tool diameter (cut width) to add in the tool table." msgstr "Diâmetro da nova ferramenta a ser adicionada na tabela de ferramentas." -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 #: flatcamTools/ToolNonCopperClear.py:172 msgid "" @@ -10408,13 +10456,13 @@ msgstr "" "ferramenta\n" "- convencional: útil quando não há compensação de folga" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "Ordem das Ferramentas" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 #: flatcamTools/ToolNonCopperClear.py:192 flatcamTools/ToolPaint.py:154 #: flatcamTools/ToolPaint.py:164 @@ -10436,17 +10484,17 @@ msgstr "" "automaticamente a ordem\n" "decrescente e este controle é desativado." -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "Crescente" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "Decrescente" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10464,14 +10512,14 @@ msgstr "" "Valores maiores = processamento lento e execução lenta no CNC devido\n" " ao número de caminhos." -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "Margem da caixa delimitadora." -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -10482,22 +10530,22 @@ msgstr "" "
Baseado em semente: para fora a partir de uma semente." "
Linhas retas: linhas paralelas." -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "Conectar" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "Contorno" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "Maquinagem Restante" -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -10514,7 +10562,7 @@ msgstr "" "retiradas com a ferramenta anterior.\n" "Se não estiver marcada, usa o algoritmo padrão." -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -10526,11 +10574,11 @@ msgstr "" "A retirada de cobre terminará a uma distância dos recursos de cobre.\n" "O valor pode estar entre 0 e 10 unidades FlatCAM." -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "Valor do deslocamento" -#: flatcamGUI/PreferencesUI.py:4192 +#: flatcamGUI/PreferencesUI.py:4210 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10541,26 +10589,26 @@ msgstr "" "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/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 #: flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "Própria" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "Área" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "Ref" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "Referência" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -10579,19 +10627,19 @@ msgstr "" "- 'Objeto de Referência' - retirará o cobre dentro da área do objeto " "especificado." -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "Normal" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "Progressivo" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "Gráfico NCC" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 msgid "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10599,28 +10647,26 @@ msgstr "" "- 'Normal' - plotagem normal, realizada no final do trabalho de NCC\n" "- 'Progressivo' - após cada forma ser gerada, ela será plotada." -#: flatcamGUI/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "Opções da Ferramenta de Recorte" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "Diâmetro" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 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/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 -#, fuzzy -#| msgid "Obj kind" +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 msgid "Object kind" msgstr "Tipo de objeto" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -10631,15 +10677,15 @@ msgstr "" "objeto Gerber de contorno PCB.
- Painel: um painel de objetos " "Gerber PCB, composto por muitos contornos PCB individuais." -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "Único" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "Painel" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10648,11 +10694,11 @@ msgstr "" "Margem além das bordas. Um valor positivo\n" "tornará o recorte do PCB mais longe da borda da PCB" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "Tamanho da Ponte" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10663,11 +10709,11 @@ msgstr "" "para manter a placa conectada ao material\n" "circundante (de onde o PCB é recortado)." -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "Pontes" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10691,11 +10737,11 @@ msgstr "" "- 2TB: 2*topo + 2*baixo\n" "- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "Forma Convexa" -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10703,11 +10749,11 @@ msgstr "" "Cria uma forma convexa ao redor de toda a PCB.\n" "Utilize somente se o tipo de objeto de origem for Gerber." -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "Opções de PCB 2 Faces" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -10715,36 +10761,36 @@ msgstr "" "Uma ferramenta para ajudar na criação de um\n" "PCB de dupla face usando furos de alinhamento." -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "Diâmetro" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "Diâmetro da broca para os furos de alinhamento." -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "Espelhar Eixo:" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Espelha verticalmente (X) ou horizontalmente (Y)." -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "Ponto" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "Caixa" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" -msgstr "Eixo de Ref." +msgstr "Eixo de Ref" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -10753,33 +10799,15 @@ msgstr "" "O eixo deve passar por um ponto ou cortar o centro de uma caixa especificada (em um objeto FlatCAM)." -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "Opções da Ferramenta de Pintura" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "Parâmetros:" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -msgid "" -"How much (fraction) 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 (fração) é 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." - -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 msgid "" "How to select Polygons to be painted.\n" @@ -10803,15 +10831,15 @@ msgstr "" "- 'Todos os polígonos' - a Pintura será iniciada após o clique.\n" "- 'Objeto de Referência' - pintará dentro da área do objeto especificado." -#: flatcamGUI/PreferencesUI.py:4596 +#: flatcamGUI/PreferencesUI.py:4614 msgid "Sel" msgstr "Seleção" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "Mostrar Pinturas" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 msgid "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10819,11 +10847,11 @@ msgstr "" "- 'Normal' - plotagem normal, realizada no final do trabalho de pintura\n" "- 'Progressivo' - após cada forma ser gerada, ela será plotada." -#: flatcamGUI/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "Opções da Ferramenta de Filme" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" @@ -10833,11 +10861,11 @@ msgstr "" "ou Geometria FlatCAM.\n" "O arquivo é salvo no formato SVG." -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "Tipo de Filme" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -10853,19 +10881,19 @@ msgstr "" "em branco em uma tela preta.\n" "O formato do arquivo do filme é SVG ." -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "Cor do Filme" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 msgid "Set the film color when positive film is selected." msgstr "Define a cor do filme, se filme positivo estiver selecionado." -#: flatcamGUI/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Borda" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -10885,11 +10913,11 @@ msgstr "" "brancos como o restante e podem ser confundidos\n" "com os limites, se não for usada essa borda)." -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Espessura da Linha" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 " @@ -10900,11 +10928,11 @@ msgstr "" "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/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Ajustes do Filme" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -10914,11 +10942,11 @@ msgstr "" "especialmente as laser.\n" "Esta seção fornece as ferramentas para compensar as distorções na impressão." -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Escala da Geometria de Filme" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -10926,21 +10954,21 @@ msgstr "" "Um valor maior que 1 esticará o filme\n" "enquanto um valor menor que 1 o reduzirá." -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "Fator X" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Fator Y" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Inclinar a Geometria de Filme" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -10948,17 +10976,17 @@ msgstr "" "Valores positivos inclinam para a direita\n" "enquanto valores negativos inclinam para a esquerda." -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Ângulo X" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "Ângulo Y" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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." @@ -10966,57 +10994,57 @@ 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/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Esquerda Inferior" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Esquerda Superior" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Direita Inferior" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Direita Superior" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Espelhar geometria de filme" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 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/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Ambos" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Espelhar eixo" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" msgstr "SVG" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" msgstr "PNG" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" msgstr "PDF" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "Tipo de Filme:" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -11028,33 +11056,23 @@ msgstr "" "- 'PNG' -> imagem raster\n" "- 'PDF' -> formato de documento portátil" -#: flatcamGUI/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" msgstr "Orientação da Página" -#: flatcamGUI/PreferencesUI.py:4835 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" -"Pode ser:\n" -"- Retrato\n" -"- Paisagem" - -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" msgstr "Tamanho da Página" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." msgstr "Uma seleção de tamanhos de página padrão ISO 216." -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "Opções da Ferramenta Criar Painel" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11064,11 +11082,11 @@ msgstr "" "Cada elemento é uma cópia do objeto de origem espaçado\n" "dos demais por uma distância X, Y." -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "Espaço entre Colunas" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11076,11 +11094,11 @@ msgstr "" "Espaçamento desejado entre colunas do painel.\n" "Nas unidades atuais." -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "Espaço entre Linhas" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11088,36 +11106,36 @@ msgstr "" "Espaçamento desejado entre linhas do painel.\n" "Nas unidades atuais." -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "Colunas" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "Número de colunas do painel desejado" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "Linhas" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "Número de linhas do painel desejado" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "Gerber" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "Geo" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "Tipo de Painel" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11127,11 +11145,11 @@ msgstr "" "- Gerber\n" "- Geometria" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "Restringir dentro de" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11145,11 +11163,11 @@ msgstr "" "o painel final terá tantas colunas e linhas quantas\n" "couberem completamente dentro de área selecionada." -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "Largura (DX)" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11157,11 +11175,11 @@ msgstr "" "A largura (DX) na qual o painel deve caber.\n" "Nas unidades atuais." -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "Altura (DY)" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11169,15 +11187,15 @@ msgstr "" "A altura (DY) na qual o painel deve se ajustar.\n" "Nas unidades atuais." -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "Opções das Calculadoras" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Calculadora Ferramenta Ponta-em-V" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -11187,11 +11205,11 @@ msgstr "" "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/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Diâmetro da Ponta" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11199,11 +11217,11 @@ msgstr "" "Diâmetro da ponta da ferramenta.\n" "Especificado pelo fabricante." -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Ângulo da Ponta" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -11211,7 +11229,7 @@ msgstr "" "Ângulo na ponta da ferramenta.\n" "Especificado pelo fabricante." -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -11219,11 +11237,11 @@ msgstr "" "Profundidade para cortar o material.\n" "No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)." -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Calculadora Eletrolítica" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " @@ -11233,27 +11251,27 @@ msgstr "" "(via/pad/furos) usando um método como tinta grahite ou tinta \n" "hipofosfito de cálcio ou cloreto de paládio." -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Comprimento da Placa" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "Comprimento da placa, em centímetros." -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Largura da Placa" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "Largura da placa, em centímetros." -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Densidade de Corrente" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11261,21 +11279,21 @@ msgstr "" "Densidade de corrente para passar pela placa.\n" "Em Ampères por Pés Quadrados ASF." -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Espessura do Cobre" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 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/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "Opções Transformações" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." @@ -11283,19 +11301,19 @@ msgstr "" "Várias transformações que podem ser aplicadas\n" "a um objeto FlatCAM." -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "Inclinar" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "Fator para redimensionamento no eixo X." -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Fator para redimensionamento no eixo Y." -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11303,7 +11321,7 @@ msgstr "" "Redimensiona o(s) objeto(s) selecionado(s)\n" "usando o Fator de Escala X para ambos os eixos." -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11314,27 +11332,27 @@ msgstr "" "de origem quando marcado, e o centro da maior caixa delimitadora\n" "do objeto selecionado quando desmarcado." -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "X" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "Distância para deslocar no eixo X, nas unidades atuais." -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Y" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 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/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "Referência do Espelhamento" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11355,11 +11373,11 @@ msgstr "" "- ou digitar as coordenadas no formato (x, y) no campo\n" " Ponto de Ref. e clicar em Espelhar no X(Y)" -#: flatcamGUI/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "Referência do Espelhamento" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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" @@ -11369,11 +11387,11 @@ msgstr "" "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/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "Opções da Ferramenta Pasta de Solda" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11381,48 +11399,48 @@ msgstr "" "Uma ferramenta para criar G-Code para dispensar pasta\n" "de solda em um PCB." -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "Diâmetros dos bicos, separados por ','" -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "Diâmetro do Novo Bico" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 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/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" msgstr "Altura Inicial" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "A altura (Z) que inicia a distribuição de pasta de solda." -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" msgstr "Altura para Distribuir" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 msgid "The height (Z) when doing solder paste dispensing." msgstr "Altura (Z) para distribuir a pasta de solda." -#: flatcamGUI/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" msgstr "Altura Final" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "Altura (Z) após a distribuição de pasta de solda." -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "Altura para Deslocamento" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11430,15 +11448,15 @@ msgstr "" "Altura (Z) para deslocamento entre pads\n" "(sem dispensar pasta de solda)." -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "Altura Troca de Ferram." -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "Altura (Z) para trocar ferramenta (bico)." -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11446,11 +11464,11 @@ msgstr "" "Posição X,Y para trocar ferramenta (bico).\n" "O formato é (x, y) onde x e y são números reais." -#: flatcamGUI/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Avanço (velocidade) para movimento no plano XY." -#: flatcamGUI/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11458,11 +11476,11 @@ msgstr "" "Avanço (velocidade) para movimento vertical\n" "(no plano Z)." -#: flatcamGUI/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" msgstr "Avanço Z Distribuição" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11470,11 +11488,11 @@ msgstr "" "Avanço (velocidade) para subir verticalmente\n" "para a posição Dispensar (no plano Z)." -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "Velocidade Spindle FWD" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11482,19 +11500,19 @@ msgstr "" "A velocidade do dispensador ao empurrar a pasta de solda\n" "através do bico do distribuidor." -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "Espera FWD" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "Pausa após a dispensação de solda." -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "Velocidade Spindle REV" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11502,11 +11520,11 @@ msgstr "" "A velocidade do dispensador enquanto retrai a pasta de solda\n" "através do bico do dispensador." -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "Espera REV" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11514,15 +11532,15 @@ msgstr "" "Pausa após o dispensador de pasta de solda retrair, para permitir o " "equilíbrio de pressão." -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "Arquivos que controlam a geração de G-Code." -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "Opções da ferramenta Substração" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11530,21 +11548,21 @@ msgstr "" "Uma ferramenta para subtrair um objeto Gerber ou Geometry\n" "de outro do mesmo tipo." -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "Fechar caminhos" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 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/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "Opções das Regras" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -11553,20 +11571,20 @@ msgstr "" "conjunto\n" "das regras de fabricação." -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "Tamanho do Traçado" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 msgid "This checks if the minimum size for traces is met." msgstr "Verifica se o tamanho mínimo para traçados é atendido." -#: flatcamGUI/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -11575,16 +11593,16 @@ msgstr "Verifica se o tamanho mínimo para traçados é atendido." msgid "Min value" msgstr "Valor Min" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "Mínimo tamanho de traçado aceito." -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "Espaço Cobre Cobre" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." @@ -11592,23 +11610,23 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de cobre\n" "é atendido." -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "Espaço mínimo aceitável." -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "Espaço Cobre Contorno" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -11616,11 +11634,11 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de cobre\n" "e o contorno é atendido." -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "Espaço Silk Silk" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." @@ -11628,13 +11646,13 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de silkscreen\n" "é atendido." -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "Espaço Silk Máscara de Solda" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -11642,13 +11660,13 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de silkscreen\n" "e máscara de solda é atendido." -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "Espaço Silk Contorno" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -11656,12 +11674,12 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de silkscreen\n" "e o contorno é atendido." -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "Máscara de Solda Mínima" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -11669,13 +11687,13 @@ msgstr "" "Verifica se o espaço mínimo entre recursos de máscara de solda\n" "é atendido." -#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "Anel Anular Mínimo" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -11683,16 +11701,16 @@ msgstr "" "Verifica se o anel de cobre mínimo deixado pela perfuração\n" "de um buraco em um pad é atendido." -#: flatcamGUI/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "Valor mínimo do anel." -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "Espaço Entre Furos" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." @@ -11700,16 +11718,16 @@ msgstr "" "Verifica se o espaço mínimo entre furos\n" "é atendido." -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "Espaço mínimo entre furos." -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "Tamanho Furo" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -11717,11 +11735,11 @@ msgstr "" "Verifica se os tamanhos dos furos\n" "estão acima do limite." -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "Opções de Ferramentas Ideais" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -11729,20 +11747,20 @@ msgstr "" "Uma ferramenta para encontrar a distância mínima entre\n" "cada dois elementos geométricos Gerber" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Precisão" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 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/PreferencesUI.py:5855 +#: flatcamGUI/PreferencesUI.py:5873 msgid "QRCode Tool Options" msgstr "Opções Ferramenta QRCode" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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." @@ -11750,11 +11768,11 @@ 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/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 msgid "Version" msgstr "Versão" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11762,11 +11780,11 @@ msgstr "" "A versão QRCode pode ter valores de 1 (caixas 21x21)\n" "a 40 (caixas 177x177)." -#: flatcamGUI/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 msgid "Error correction" msgstr "Correção de erros" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -11782,11 +11800,11 @@ msgstr "" "Q = máximo de 25%% dos erros pode ser corrigido\n" "H = máximo de 30%% dos erros pode ser corrigido." -#: flatcamGUI/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 msgid "Box Size" msgstr "Tamanho da Caixa" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11794,11 +11812,11 @@ msgstr "" "O tamanho da caixa controla o tamanho geral do QRCode\n" "ajustando o tamanho de cada caixa no código." -#: flatcamGUI/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 msgid "Border Size" msgstr "Tamanho da Borda" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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." @@ -11806,23 +11824,23 @@ 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/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "Dado QRCode" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 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/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 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/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "Polaridade" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11832,17 +11850,17 @@ msgstr "" "Pode ser desenhado de forma negativa (os quadrados são claros)\n" "ou de maneira positiva (os quadrados são opacos)." -#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Negativo" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Positivo" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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" @@ -11854,7 +11872,7 @@ msgstr "" "ser adicionado como positivo. Se for adicionado a um arquivo Gerber\n" "de cobre, talvez o QRCode possa ser adicionado como negativo." -#: flatcamGUI/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" @@ -11863,31 +11881,31 @@ msgstr "" "A caixa delimitadora, significando o espaço vazio que circunda\n" "a geometria QRCode, pode ter uma forma arredondada ou quadrada." -#: flatcamGUI/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 msgid "Rounded" msgstr "Arredondado" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "Cor de Preenchimento" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)." -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "Cor de Fundo" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "Define a cor de fundo do QRCode." -#: flatcamGUI/PreferencesUI.py:6043 +#: flatcamGUI/PreferencesUI.py:6061 msgid "Copper Thieving Tool Options" msgstr "Opções da ferramenta Adição de Cobre" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." @@ -11895,16 +11913,16 @@ msgstr "" "Uma ferramenta para gerar uma Adição de cobre que pode ser adicionada\n" "para um arquivo Gerber selecionado." -#: flatcamGUI/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." msgstr "Número de etapas (linhas) usadas para interpolar círculos." -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 msgid "Clearance" msgstr "Espaço" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -11914,26 +11932,25 @@ msgstr "" "(o preenchimento de polígono pode ser dividido em vários polígonos)\n" "e os vestígios de cobre no arquivo Gerber." -#: flatcamGUI/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "Seleção de Área" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "Objeto de Referência" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "Referência:" -#: flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6126 msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is " -"copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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." @@ -11944,103 +11961,103 @@ msgstr "" "- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " "especificado." -#: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "Retangular" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" msgstr "Mínima" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Tipo de Caixa:" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- '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/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" msgstr "Pontos" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 msgid "Squares Grid" msgstr "Quadrados" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 msgid "Lines Grid" msgstr "Linhas" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 msgid "Fill Type:" msgstr "Tipo de Preenchimento:" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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' - o cobre será adicionado como um polígono sólido.\n" +"- '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/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 msgid "Dots Grid Parameters" msgstr "Parâmetros dos Pontos" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 msgid "Dot diameter in Dots Grid." msgstr "Diâmetro dos Pontos." -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 msgid "Spacing" msgstr "Espaçamento" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." msgstr "Distância entre dois pontos." -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 msgid "Squares Grid Parameters" msgstr "Parâmetros dos Quadrados" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." msgstr "Lado do quadrado." -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." msgstr "Distância entre dois quadrados." -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 msgid "Lines Grid Parameters" msgstr "Parâmetros das Linhas" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." msgstr "Espessura das Linhas." -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." msgstr "Distância entre duas linhas." -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" msgstr "Parâmetros da Barra" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -12048,29 +12065,27 @@ msgstr "" "Parâmetros usados para a barra de assalto.\n" "Barra = borda de cobre para ajudar no revestimento do furo do padrão." -#: flatcamGUI/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 -#, fuzzy -#| msgid "Bounding box margin." +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 msgid "Bounding box margin for robber bar." -msgstr "Margem da caixa delimitadora." +msgstr "Margem da caixa delimitadora para Robber Bar." -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" msgstr "Espessura" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." msgstr "Espessura da barra." -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" msgstr "Máscara do Revestimento Padrão" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." msgstr "Gera uma máscara para o revestimento padrão." -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -12078,16 +12093,16 @@ 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/PreferencesUI.py:6298 +#: flatcamGUI/PreferencesUI.py:6316 msgid "Fiducials Tool Options" msgstr "Opções da Ferramenta de Fiduciais" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "Parâmetros usados para esta ferramenta." -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -12097,45 +12112,45 @@ msgstr "" "caso contrário, é o tamanho do fiducial.\n" "A abertura da máscara de solda é o dobro disso." -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "Auto" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "Manual" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "Modo:" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- '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/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "Acima" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "Abaixo" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "Segundo fiducial" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 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" +"- '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" @@ -12146,19 +12161,19 @@ msgstr "" "- 'Nenhum' - não há um segundo fiducial. A ordem é: canto inferior esquerdo, " "superior direito." -#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "Cruz" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "Xadrez" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "Tipo de Fiducial" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -12170,19 +12185,19 @@ msgstr "" "- 'Cruz' - linhas cruzadas fiduciais.\n" "- 'Xadrez' - padrão de xadrez fiducial." -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "Espessura da linha" -#: flatcamGUI/PreferencesUI.py:6414 +#: flatcamGUI/PreferencesUI.py:6432 msgid "Calibration Tool Options" msgstr "Opções da Ferramenta de Calibração" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "Tipo de Fonte" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -12195,27 +12210,27 @@ msgstr "" "pad para o Gerber\n" "- Livre -> clique livremente na tela para adquirir os pontos de calibração" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "Livre" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "Altura (Z) para deslocamento entre os pontos." -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "Verificação Z" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "Altura (Z) para verificar o ponto." -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "Ferramenta Zero Z" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." @@ -12223,83 +12238,115 @@ msgstr "" "Inclui uma sequência para zerar a altura (Z)\n" "da ferramenta de verificação." -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "Altura (Z) para montar a sonda de verificação." -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Segundo Ponto" + +#: flatcamGUI/PreferencesUI.py:6532 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 Gcode 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/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Esquerda Superior" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Direita Inferior" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "Associação de Arquivos Excellon" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "Restaurar" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "Restaure a lista de extensões para o estado padrão." -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "Excluir Tudo" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "Excluir todas as extensões da lista." -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "Lista de extensões" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 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/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "Extensão" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 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/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "Adicionar Extensão" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "Adiciona uma nova extensão à lista" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "Excluir Extensão" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "Exclui uma extensão da lista" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "Aplicar Associação" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12311,33 +12358,33 @@ msgstr "" "Elas serão ativas após o próximo logon.\n" "Isso funciona apenas no Windows." -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "Associação de arquivos G-Code" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "Associação de arquivos Gerber" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "Palavras-chave do preenchimento automático" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 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/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "Excluir todas as palavras-chave do preenchimento automático da lista." -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "Lista de palavras-chave" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -12349,23 +12396,23 @@ msgstr "" "O preenchimento automático está instalado\n" "no Editor de Código e na Linha de Comandos Tcl." -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 msgid "A keyword to be added or deleted to the list." msgstr "Uma palavra-chave a ser adicionada ou excluída da lista." -#: flatcamGUI/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "Adicionar palavra-chave" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "Adiciona uma palavra-chave à lista" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "Excluir palavra-chave" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "Exclui uma palavra-chave da lista" @@ -12395,16 +12442,15 @@ msgstr "" "precisa editar o objeto Excellon resultante e\n" "alterar os diâmetros para os valores reais." -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" -"{e_code} Erro do Analisador Excellon.\n" -"Análise falhou. Linha {l_nr}: {line}\n" +"Erro do Analisador Excellon.\n" +"Análise falhou. Linha" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12422,11 +12468,14 @@ msgstr "Fonte não suportada. Tente outra." msgid "Gerber processing. Parsing" msgstr "Processando Gerber. Analisando" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "linhas" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "Coordenadas faltando, linha ignorada" @@ -12442,7 +12491,7 @@ 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:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "Processando Gerber. Unindo polígonos" @@ -12482,6 +12531,22 @@ msgstr "Inclinação Gerber pronta." msgid "Gerber Rotate done." msgstr "Rotação Gerber pronta." +#: flatcamParsers/ParseHPGL2.py:176 +msgid "HPGL2 processing. Parsing" +msgstr "Processando HPGL2 . Analisando" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line" +msgstr "Linha HPGL2" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line Content" +msgstr "Conteúdo da linha HPGL2" + +#: flatcamParsers/ParseHPGL2.py:409 +msgid "HPGL2 Parser ERROR" +msgstr "ERRO do Analisador HPGL2" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Calculadoras" @@ -12570,43 +12635,47 @@ msgstr "" msgid "Calc. Tool" msgstr "Calculadoras" -#: flatcamTools/ToolCalibration.py:36 -msgid "Calibration Tool" -msgstr "Calibração" +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Parâmetros do G-Code" -#: flatcamTools/ToolCalibration.py:66 +#: 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:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." msgstr "" -"Escolha quatro pontos clicando dentro dos furos.\n" +"Escolha quatro pontos clicando na tela.\n" "Esses quatro pontos devem estar nos quatro\n" -"cantos (o máximo possível) do objeto Excellon." +"(o máximo possível) cantos do objeto." -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 #: flatcamTools/ToolPanelize.py:66 flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "Tipo de Objeto" -#: flatcamTools/ToolCalibration.py:101 +#: flatcamTools/ToolCalibration.py:211 msgid "Source object selection" msgstr "Seleção do objeto fonte" -#: flatcamTools/ToolCalibration.py:103 +#: flatcamTools/ToolCalibration.py:213 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:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "Pontos de Calibração" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." @@ -12614,56 +12683,56 @@ msgstr "" "Contém os pontos de calibração esperados e\n" "os medidos." -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "Alvo" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "Delta Encontrado" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 msgid "Bot Left X" msgstr "Esquerda Inferior X" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 msgid "Bot Left Y" msgstr "Esquerda Inferior Y" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 msgid "Origin" msgstr "Origem" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 msgid "Bot Right X" msgstr "Direita Inferior X" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 msgid "Bot Right Y" msgstr "Direita Inferior Y" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 msgid "Top Left X" msgstr "Esquerda Superior X" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 msgid "Top Left Y" msgstr "Esquerda Superior Y" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 msgid "Top Right X" msgstr "Direita Superior X" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 msgid "Top Right Y" msgstr "Direita Superior Y" -#: flatcamTools/ToolCalibration.py:258 +#: flatcamTools/ToolCalibration.py:370 msgid "Get Points" msgstr "Obter Pontos" -#: flatcamTools/ToolCalibration.py:260 +#: flatcamTools/ToolCalibration.py:372 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" @@ -12675,35 +12744,39 @@ msgstr "" "Esses quatro pontos devem estar nos quatro cantos do\n" "objeto." -#: flatcamTools/ToolCalibration.py:281 +#: flatcamTools/ToolCalibration.py:393 msgid "STEP 2: Verification GCode" msgstr "PASSO 2: G-Code de Verificação" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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." +"Gere o arquivo GCode 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:288 -msgid "GCode Parameters" -msgstr "Parâmetros do G-Code" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Parâmetros usados nesta ferramenta para criar o G-Code." - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Gerar o G-Code" -#: flatcamTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:432 msgid "STEP 3: Adjustments" msgstr "PASSO 3: Ajustes" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" @@ -12713,15 +12786,15 @@ msgstr "" "encontradas ao verificar o padrão PCB. As diferenças devem ser preenchidas\n" "nos campos Encontrados (Delta)." -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 msgid "Calculate Factors" msgstr "Calculas Fatores" -#: flatcamTools/ToolCalibration.py:400 +#: flatcamTools/ToolCalibration.py:463 msgid "STEP 4: Adjusted GCode" msgstr "PASSO 4: G-Code ajustado" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." @@ -12729,51 +12802,59 @@ msgstr "" "Gera o arquivo G-Code de verificação ajustado com\n" "os fatores acima." -#: flatcamTools/ToolCalibration.py:407 +#: flatcamTools/ToolCalibration.py:470 msgid "Scale Factor X:" msgstr "Fator de Escala X:" -#: flatcamTools/ToolCalibration.py:419 +#: flatcamTools/ToolCalibration.py:482 msgid "Scale Factor Y:" msgstr "Fator de Escala Y:" -#: flatcamTools/ToolCalibration.py:431 +#: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" msgstr "Aplicar Fatores de Escala" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "Aplica os fatores de escala nos pontos de calibração." -#: flatcamTools/ToolCalibration.py:443 -#, fuzzy -#| msgid "Angle X:" +#: flatcamTools/ToolCalibration.py:506 msgid "Skew Angle X:" -msgstr "Ângulo X:" +msgstr "Ângulo de inclinação X:" -#: flatcamTools/ToolCalibration.py:456 -#, fuzzy -#| msgid "Angle Y:" +#: flatcamTools/ToolCalibration.py:519 msgid "Skew Angle Y:" -msgstr "Ângulo Y:" +msgstr "Ângulo de inclinação Y:" -#: flatcamTools/ToolCalibration.py:469 +#: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" msgstr "Aplicar Fatores de Inclinação" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "Aplica os fatores de inclinação nos pontos de calibração." -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 msgid "Generate Adjusted GCode" msgstr "Gerar o G-Code Ajustado" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +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 "" +"Gere o arquivo GCode de verificação ajustado com\n" +"os fatores definidos acima.\n" +"Os parâmetros do GCode podem ser reajustados\n" +"antes de clicar neste botão." + +#: flatcamTools/ToolCalibration.py:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "PASSO 5: Calibrar Objetos FlatCAM" -#: flatcamTools/ToolCalibration.py:563 +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." @@ -12781,27 +12862,27 @@ msgstr "" "Ajustar os objetos FlatCAM\n" "com os fatores determinados e verificados acima." -#: flatcamTools/ToolCalibration.py:572 +#: flatcamTools/ToolCalibration.py:641 msgid "Adjusted object type" msgstr "Tipo de objeto ajustado" -#: flatcamTools/ToolCalibration.py:574 +#: flatcamTools/ToolCalibration.py:643 msgid "Type of the FlatCAM Object to be adjusted." msgstr "Tipo do objeto FlatCAM a ser ajustado." -#: flatcamTools/ToolCalibration.py:585 +#: flatcamTools/ToolCalibration.py:654 msgid "Adjusted object selection" msgstr "Seleção do objeto ajustado" -#: flatcamTools/ToolCalibration.py:587 +#: flatcamTools/ToolCalibration.py:656 msgid "The FlatCAM Object to be adjusted." msgstr "Objeto FlatCAM a ser ajustado." -#: flatcamTools/ToolCalibration.py:594 +#: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" msgstr "Calibrar" -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." @@ -12809,7 +12890,7 @@ msgstr "" "Ajustar (dimensionar e/ou inclinar) os objetos\n" "com os fatores determinados acima." -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 @@ -12819,7 +12900,7 @@ msgstr "" msgid "Reset Tool" msgstr "Redefinir Ferramenta" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 @@ -12829,51 +12910,55 @@ msgstr "Redefinir Ferramenta" msgid "Will reset the tool parameters." msgstr "Redefinirá os parâmetros da ferramenta." -#: flatcamTools/ToolCalibration.py:688 -msgid "Calibrate Tool" -msgstr "Ferramenta de Calibração" - -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "Ferramenta inicializada" -#: flatcamTools/ToolCalibration.py:747 +#: flatcamTools/ToolCalibration.py:824 msgid "There is no source FlatCAM object selected..." msgstr "Não há nenhum objeto FlatCAM de origem selecionado..." -#: flatcamTools/ToolCalibration.py:768 +#: flatcamTools/ToolCalibration.py:845 msgid "Get First calibration point. Bottom Left..." msgstr "Obtenha o primeiro ponto de calibração. Inferior Esquerdo..." -#: flatcamTools/ToolCalibration.py:820 -msgid "Get Second calibration point. Bottom Right..." -msgstr "Obtenha o segundo ponto de calibração. Inferior Direito..." +#: flatcamTools/ToolCalibration.py:906 +msgid "Cancelled by user request." +msgstr "Cancelado por solicitação do usuário." -#: flatcamTools/ToolCalibration.py:824 -msgid "Get Third calibration point. Top Left..." -msgstr "Obtenha o terceiro ponto de calibração. Superior Esquerdo ..." +#: flatcamTools/ToolCalibration.py:912 +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:828 +#: flatcamTools/ToolCalibration.py:916 +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:920 msgid "Get Forth calibration point. Top Right..." msgstr "Obtenha o quarto ponto de calibração. Superior Direito..." -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "Feito. Todos os quatro pontos foram adquiridos." -#: flatcamTools/ToolCalibration.py:857 -msgid "Verification GCode for FlatCAM Calibrate Tool" +#: flatcamTools/ToolCalibration.py:955 +msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "G-Code de Verificação para a Ferramenta de Calibração FlatCAM" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "G-Code Viewer" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 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:1041 flatcamTools/ToolCalibration.py:1137 +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 msgid "There is no FlatCAM object selected..." msgstr "Não há nenhum objeto FlatCAM selecionado ..." @@ -12893,23 +12978,23 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:131 msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is " -"copper cleared.\n" +"- '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." +"- '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/ToolNonCopperClear.py:451 flatcamTools/ToolPaint.py:332 msgid "Ref. Type" -msgstr "Tipo de Ref." +msgstr "Tipo de Ref" #: flatcamTools/ToolCopperThieving.py:140 msgid "" @@ -12937,33 +13022,13 @@ msgstr "Referência Geometria" #: flatcamTools/ToolCopperThieving.py:151 #: flatcamTools/ToolNonCopperClear.py:462 flatcamTools/ToolPaint.py:343 msgid "Ref. Object" -msgstr "Objeto de Ref." +msgstr "Objeto de Ref" #: flatcamTools/ToolCopperThieving.py:153 #: flatcamTools/ToolNonCopperClear.py:464 flatcamTools/ToolPaint.py:345 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:175 -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." - -#: flatcamTools/ToolCopperThieving.py:197 -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." - #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" msgstr "Inserir adição de cobre" @@ -13093,9 +13158,9 @@ msgstr "Área de Adição de Cobre." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 -#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1155 -#: flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1156 +#: flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 #: flatcamTools/ToolSub.py:492 flatcamTools/ToolSub.py:507 @@ -13105,18 +13170,16 @@ msgid "Could not retrieve object" msgstr "Não foi possível recuperar o objeto" #: flatcamTools/ToolCopperThieving.py:764 -#: flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "Clique no ponto inicial da área." #: flatcamTools/ToolCopperThieving.py:815 -#, fuzzy -#| msgid "Click the end point of the paint area." msgid "Click the end point of the filling area." -msgstr "Clique no ponto final da área." +msgstr "Clique no ponto final da área de preenchimento." #: flatcamTools/ToolCopperThieving.py:821 -#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 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 " @@ -13151,12 +13214,12 @@ msgid "Geometry not supported for bounding box" msgstr "Geometria não suportada para caixa delimitadora" #: flatcamTools/ToolCopperThieving.py:1061 -#: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "Nenhum objeto disponível." #: flatcamTools/ToolCopperThieving.py:1098 -#: flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "O tipo do objeto de referência não é suportado." @@ -13206,8 +13269,6 @@ msgid "Object to be cutout" msgstr "Objeto a ser recortado" #: flatcamTools/ToolCutOut.py:214 -#, fuzzy -#| msgid "Convex Sh." msgid "Convex Shape" msgstr "Forma Convexa" @@ -13285,7 +13346,7 @@ msgid "" 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." +"de Geometria que é usado como objeto de recorte. " #: flatcamTools/ToolCutOut.py:317 msgid "Geometry object used to create the manual cutout." @@ -13348,7 +13409,7 @@ msgid "" "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." +"'2tb', 4 ou 8. Preencha um valor correto e tente novamente. " #: flatcamTools/ToolCutOut.py:501 flatcamTools/ToolCutOut.py:674 msgid "" @@ -13366,8 +13427,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "Recorte concluído." -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "Objeto não encontrado" @@ -13450,10 +13511,6 @@ msgstr "Objeto Excellon a ser espelhado." msgid "Geometry Obj to be mirrored." msgstr "Objeto Geometria a ser espelhado." -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "Eixo de Referência:" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "Ponto/Caixa de Referência" @@ -13693,10 +13750,17 @@ msgstr "MEDIÇÃO: Clique no ponto Inicial ..." msgid "MEASURING: Click on the Destination point ..." msgstr "MEDIÇÃO: Clique no ponto Final ..." -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "MEDIÇÃO: Resultado D(x) = {d_x} | D(y) = {d_y} | Distância = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "MEDINDO" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +msgid "Result" +msgstr "Resultado" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +msgid "Distance" +msgstr "Distância" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -13753,11 +13817,11 @@ msgstr "" 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:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "Os objetos se cruzam ou tocam em" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "Pulou para o ponto médio entre os dois objetos selecionados" @@ -13778,8 +13842,6 @@ msgid "Coordinates" msgstr "Coordenadas" #: flatcamTools/ToolFiducials.py:99 -#, fuzzy -#| msgid "Top right" msgid "Top Right" msgstr "Direita Superior" @@ -13787,6 +13849,16 @@ msgstr "Direita Superior" msgid "Second Point" msgstr "Segundo Ponto" +#: 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:258 msgid "Copper Gerber" msgstr "Gerber Cobre" @@ -13986,34 +14058,38 @@ msgstr "" "Nenhum objeto FlatCAM selecionado. Carregue um objeto para Caixa e tente " "novamente." -#: flatcamTools/ToolFilm.py:680 +#: flatcamTools/ToolFilm.py:673 +msgid "No FlatCAM object selected." +msgstr "Nenhum objeto FlatCAM selecionado." + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Gerando Filme ..." -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 msgid "Export positive film" msgstr "Exportar filme positivo" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 msgid "Export positive film cancelled." msgstr "Exportar filme positivo cancelado." -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 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:784 +#: flatcamTools/ToolFilm.py:794 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 " +" 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:796 +#: 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." @@ -14021,7 +14097,7 @@ 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:814 +#: flatcamTools/ToolFilm.py:824 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14029,24 +14105,24 @@ 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:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 msgid "Export negative film" msgstr "Exportar filme negativo" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 msgid "Export negative film cancelled." msgstr "Exportar filme negativo cancelado." -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "Nenhuma caixa de objeto. Usando" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 msgid "Film file exported to" msgstr "Arquivo filme exportado para" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "Gerando Filme ... Por favor, aguarde." @@ -14353,111 +14429,111 @@ msgstr "" msgid "Generate Geometry" msgstr "Gerar Geometria" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "Nova Ferramenta" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 msgid "Please enter a tool diameter to add, in Float format." msgstr "Insira um diâmetro de ferramenta para adicionar, no formato Flutuante." -#: flatcamTools/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "Adição cancelada. Ferramenta já está na Tabela de Ferramentas." -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "Nova ferramenta adicionada à Tabela de Ferramentas." -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "A ferramenta da Tabela de Ferramentas foi editada." -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" "Editar cancelado. O novo valor de diâmetro já está na tabela de ferramentas." -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "Exclusão falhou. Selecione uma ferramenta para excluir." -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "Ferramenta(s) excluída(s) da Tabela de Ferramentas." -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 msgid "Wrong Tool Dia value format entered, use a number." msgstr "Valor errado para o diâmetro. Use um número." -#: flatcamTools/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "Nenhuma ferramenta selecionada na Tabela." -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "Clique no ponto final da área." -#: flatcamTools/ToolNonCopperClear.py:1413 -#: flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 +#: flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "Retirando cobre da área..." -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "Ferramenta NCC iniciada. Lendo parâmetros." -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Ferramenta NCC. Preparando polígonos." -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 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/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "Ferramenta NCC. Cálculo de áreas 'vazias'." -#: flatcamTools/ToolNonCopperClear.py:1629 -#: flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 -#: flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 -#: flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 +#: flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 +#: flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 +#: flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "Criar Buffer concluído" -#: flatcamTools/ToolNonCopperClear.py:1747 -#: flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 +#: flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "O objeto selecionado não é adequado para retirada de cobre." -#: flatcamTools/ToolNonCopperClear.py:1752 -#: flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 +#: flatcamTools/ToolNonCopperClear.py:2109 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/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Ferramenta NCC. Cálculo de área 'vazia' concluído." -#: flatcamTools/ToolNonCopperClear.py:1772 -#: flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 +#: flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "NCC. Ferramenta com Diâmetro = " -#: flatcamTools/ToolNonCopperClear.py:1775 -#: flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 +#: flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "iniciada." -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14469,24 +14545,24 @@ msgstr "" "geometria pintada.\n" "Altere os parâmetros de pintura e tente novamente." -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "Retirada de cobre concluída." -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 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/ToolNonCopperClear.py:1943 -#: flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 +#: flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "ferramentas" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "Retirada de cobre por usinagem de descanso concluída." -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -14494,7 +14570,7 @@ msgstr "" "Retirada de cobre por usinagem de descanso concluída, mas a isolação está " "quebrada por" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -14798,72 +14874,72 @@ msgstr "" "- '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:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "Ferramenta de Pintura. Lendo parâmetros." -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "Não foi possível recuperar o objeto: %s" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "Não é possível pintar geometrias MultiGeo" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 msgid "Click on a polygon to paint it." msgstr "Clique em um polígono para pintá-lo." -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Clique no ponto inicial da área de pintura." -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 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:1138 +#: flatcamTools/ToolPaint.py:1140 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:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "Ferramenta de Pintura." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "Tarefa normal de pintura de polígono iniciada." -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "Fazendo buffer de polígono..." -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "Nenhum polígono encontrado." -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "Pintando o polígono..." -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "A geometria não pode ser pintada completamente" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -14871,9 +14947,9 @@ 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:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14885,36 +14961,36 @@ msgstr "" "geometria pintada.\n" "Altere os parâmetros de pintura e tente novamente." -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "Pintura concluída." -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "Pintura de polígonos iniciada ..." -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "Pintando políginos..." -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "Ferramenta de Pintura. Iniciada a pintura total." -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "Pintura com diâmetro = " -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "iniciada" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" @@ -14922,33 +14998,33 @@ msgstr "" "Não foi possível pintar todos. Tente uma combinação diferente de parâmetros, " "ou um método diferente de pintura" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "Pintura concluída." -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "Iniciada a pintura total com usinagem de descanso." -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "Pintura total com usinagem de descanso concluída." -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "Iniciada a pintura de área." -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "Pintura de Área concluída." -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "Iniciada a pintura de área com usinagem de descanso." -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "" "Ferramenta de Pintura. Iniciada a pintura de área com usinagem de descanso." @@ -15083,7 +15159,7 @@ msgstr "Colunas ou Linhas com valor zero. Altere-os para um inteiro positivo." #: flatcamTools/ToolPanelize.py:485 msgid "Generating panel ... " -msgstr "Gerando painel ..." +msgstr "Gerando painel … " #: flatcamTools/ToolPanelize.py:769 msgid "Generating panel ... Adding the Gerber code." @@ -15359,8 +15435,6 @@ msgid "GCode Geometry" msgstr "Geometria G-Code" #: flatcamTools/ToolProperties.py:435 -#, fuzzy -#| msgid "Tool Data" msgid "Data" msgstr "Dados" @@ -15474,10 +15548,8 @@ msgid "Export PNG" msgstr "Exportar PNG" #: flatcamTools/ToolQRCode.py:789 -#, fuzzy -#| msgid "Export PNG cancelled." msgid " Export PNG cancelled." -msgstr "Exportar PNG cancelado." +msgstr " Exportar PNG cancelado." #: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" @@ -15947,41 +16019,41 @@ msgstr "" msgid "Generating Solder Paste dispensing geometry..." msgstr "Gerando geometria dispensadora de Pasta de Solda ..." -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "Não há objeto de Geometria disponível." -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 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:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "Trabalho CNC para Ferramenta de Pasta de Solda criado" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 msgid "SP GCode Editor" msgstr "Editor SP G-Code" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 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:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "Nenhum G-Code no objeto" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "Exportar G-Code ..." -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "Arquivo G-Code com dispensador de pasta de solda salvo em" @@ -16282,16 +16354,16 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "Limites de TclCommand concluídos." -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "Esperando -caixa." -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "Não foi possível recuperar o objeto caixa" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." @@ -16300,11 +16372,11 @@ msgstr "" "como 1: 'ref', 'all'.\n" "Retirada de cobre falhou." -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "Esperando -x e -y ." -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." @@ -16333,6 +16405,110 @@ 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." +#, python-brace-format +#~ msgid "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" +#~ msgstr "" +#~ "[selected] {kind} criado/selecionado: {name}" + +#, python-brace-format +#~ msgid "[selected]{name} selected" +#~ msgstr "[selected]{name} selecionado" + +#, python-brace-format +#~ msgid "{l_save}/Project_{date}" +#~ msgstr "{l_save}/Project_{date}" + +#, python-format +#~ msgid "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." +#~ msgstr "" +#~ "Quanto da largura da ferramenta (fração) é sobreposto em cada passagem da " +#~ "ferramenta.\n" +#~ "Exemplo:\n" +#~ "Um valor de 0.25 significa uma sobreposição de 25%% do diâmetro 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." + +#~ msgid "Paint Area" +#~ msgstr "Área de Pintura" + +#~ 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." + +#~ msgid "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. I.e.: M2 (End of program)" +#~ msgstr "" +#~ "Digite aqui os comandos G-Code que você gostaria de adicionar ao final do " +#~ "arquivo gerado. M2 (Fim do programa)" + +#~ msgid "" +#~ "Can be:\n" +#~ "- Portrait\n" +#~ "- Lanscape" +#~ msgstr "" +#~ "Pode ser:\n" +#~ "- Retrato\n" +#~ "- Paisagem" + +#~ 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." + +#~ 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' - o cobre será adicionado como 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." + +#~ msgid "" +#~ "Generate GCode file to locate and align the PCB by using\n" +#~ "the four points acquired above." +#~ msgstr "" +#~ "Gere o arquivo G-Code para localizar e alinhar o PCB usando\n" +#~ "os quatro pontos adquiridos acima." + +#~ msgid "Calibrate Tool" +#~ msgstr "Ferramenta de Calibração" + +#~ msgid "Axis Ref:" +#~ msgstr "Eixo de Referência:" + +#, python-brace-format +#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#~ msgstr "MEDIÇÃO: Resultado D(x) = {d_x} | D(y) = {d_y} | Distância = {d_z}" + #~ msgid "" #~ "#\n" #~ "# CREATE A NEW FLATCAM TCL SCRIPT\n" diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index eb578993aabb80b1230d3511a63d24c53f5a564e..b751000298c8be84d0b49ec4b6787b3a82b9e96f 100644 GIT binary patch delta 67600 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�$Wf&um#o(r{c^g@k%59*!n3F;x0XP_-X zBWF)cM*Dcw3&~sz(hTEJ-+{XEer$tZFF{nNKGrW&qV$|3$A{s>ug8O)IDs6(W4`RpMrgSPCe@w>u8#>FkM~t%$l*0P7&q7W8PpFaqj+&X*7==mxXER(F zwFNi)ANj8nI?a9%>aP$ZsY?R8M~ zk5Ef^1dHHPRPbh-Y_@bxM?JI-`>x@oYbZFyqO~h(W_qKx-XW;yU5MJzHlb$VJJbyQ zftu1ZQ{8@ns#iuG-vkw`BT(tR8MWm8aSF{TB%c-${HvGls0-(sZfRK_wG=%t8;*DF zE3pjqi>M__IKyVLC@PCaqRv~4dU|d{b@VsviHT=M=*unN`+$Ph>K4|+Otb8#-JYmC z{~FcvEBHNWlxTK@mxKE6AKP<2;aq#M=!Uw%SyT)>!y%Y#UPSQcxgVis@;}sDbJQp9 z{l8pL;EzpETk9Ou0h?U?ENUbVP*WK(--0ziYDr>H`#}TLOmskH)kmlpSdALUb<}md z1-3L9u!Qoz00pH_C#;PdQ5(f8T#CIGMg)J+oN$qC!8=hmPO#Xv)NH8h6h^%-Y(ytkl>BT+NG5a-|(^!c+)uiKIcFK!6Gu(as6oL434moOd&#;&pv*G1j91!^zv zhk9I(!clBcALDGUm*gvAi1WW#OU&T*_4dQ*^-U4pYK|MQnHk`?bX&>)C>ru@=f+rf zhh1>vPFv#>sGdJ`#@}T(&W)PV5~!(fiwfGlSOq7bmg2bcA!_QA@3t7ok2=5MZt`C@ z_<#nT_zCKQ-=Wgy9_qW?f3Ya_{CgvU?}FQ5I_j17*&4UPTGXeY&cB3;m0vMCCfIK~ zU?J3Z$_-I7+t)u}Z>7U5>vV=H`% zdN#B?77_f7=v366KmIshK;kE;9dRY<1?38=LvN9E^}SRlY@?}w`S_qG>W1@B8^>2z z9IxX@OmxzYn}oXX7SvS#g2a>;@04{QA!>@Vpk^XBcEe(*rCSuVlQ&!30sB#FbqW)Jl4TB=j=kOP*Zpn6}0bAkLS$iEe1y7XVgE%Vgy;4Z!C8DT(I|rS*SOy ztJny`z9s)FQ)oh=3eH7M{Z-UR?xUtE`9+)3e5eho0_x#02^Bk+Q5|}K!4h1uhgd?? z7MucuUy7|9>>SAH-=xc;O&R%$ZXV3c;g!R--bfE@9b;xA^4nn_v>c+?<2gqOl9*QEUoVU zXj2$@!`8egPT=@h)KZ?n3s~bPoBA|ATkw@Z%~Um17PUdm@EG4UtVHeECsAv27j?nX zH`yQPz%JCEROk7{PONp?E;s-cY?ClQ?!rp=8)`$!@vA*m`=VlL59<1nzu8RrEhxm$ zFbPK+^_W#31d<(TS z^&Z;~rDL!%^>e5oO#H;~y?PzmQH+qb5Fzxe*;Fr!> zP-(LUl^qxHf7tkiwO_^$sK3S*IQXUg1atGWf%x1E`&`blk{bf0&1g=CimB|8s7R7a62g zxA>7ku=<#Z&lh79?nEu|b<|S+huR@S2_p3(;(M1V#L{pNTVno%k-^vS6R-yLEQun6 zz50D@M12_^$G=>CSK`QE3F0S-3}T}(YM&T^3c4?_5+20q_zuV7^rVrV{`>P@!eo(N zSU5qGJTmxqdv8)k1{=tXRCeG=R8ZDP9T{Z93e>}BH`c=wsQn>j8k>RIsI2LVdMb{@ zintKVL0$rN-#{B)7Q4L0Sv_QILUbob)&G%W_~O+O~NeH4D#m{T`odtDXO;iU)VhUV_%7SgE4*r0879`AP z=fz+~>V5|bnyOK#r`uvwESy7K@F!IMM&yqSzIw@ns&_$kXc8)B_To^yfK{-10iqix zp<*RoL7S2Ms2f+s9?Jg?6cW&I3YAuuQ9ZwfnyNU3Yzm`MH*AUOz%qih`ITc0x^5w6;ebFd4_=Jyh`YE^1SG5*0)*aT-=G zX2E+7HIT=s8GMD>z!DU<9keliPJJ>ewsMzn`CpSl1sYDFW*|;UGbMgWJqk7A<47`i z_b~<^qArvz#+EP^L)1H=I`F=$4|DaAsC{A@Y6;e$uchaFwz=&VobuybbE> zwQo@y&|7D&(l+u27)AR4RPfC~UFS7A$K`aEFHipK#HKXl zVQzcjBAi>nMpCen-Jmjl&2jHxFN|9`GWai}48j)F3szP;s@3cJ6tp)_LQUCxS6_!Q)c0T|e2TlVXf<1shp3t9SlyOp3MxBxVgr1L?Xhf) z$l%X%7a@O>qdH4_}u@ko;{a$*SCkmA=H$nYG5NMgvx@x=;NO_9S1aw z43_Qy$iiMsI})RetL z1yk1Mk=~qeeqg|8>c?8zg?>k6#cNdlXKiKaR|+*Vv6v8hqptS>ssjs9`^wiCr6HYk z4fjw>5o&E4PzqGEmqzUi9Z|tI)zx=kY3jF7>6HFGJFg__yf&^r0oBnpsPoUe`YX(# zDb3u*K8Qv2upg=;6Ywki7}eu)Z7r``pl;Y5^^BN+nyE#oJ^pK~h~Hr&Ow-P?sXJ;Q zGf`XpE)4$u=K%$MsTA4XZgd%S;m4@`A)--VBvBt593;evHCvSPWmFHnMyj ztzHVX@$^F7crs?gJsrvaC<;H(pdIV2Gij&D;JcbA)S6F1P3aoc4KLyde1M9XuAL); zzatupdYDZ{&B$tOhkGy%rt4xeoE6of5?y=?jwUoHNCu&%`eWyMR8LP~5qyXmS*EUb zJ#xGw(W0Qai#$lbhA(cI*d8+Sy1=M z+krOa_3;0lodtXpR~xTqH@g#(;1FCE2?Pu7PO#!magvZgAS59PPFV=<&fr?0xQ4~u zizLt%EiF)>P_#me6z=oRob=1rYrlKn_V7RF^`kR8yV;d(*9DZJ>Icep91BVU3qhId zji5}?*PtYN0~EVApe#mboVDKzf-(ic3I~8Pb@P<`xFGTQYc;3l1byPIvpy3jCs%7Q z1K16$3`T+ycqNz)+yct&c9LrU3c6^&SM7WWR!;*!(QgLI)U^kzf}=q`|H^|0Dy6{# zp!D=HCuc& zjv(J8Ye-s8cA8H#pMlL$jGbbw`a_`f;4UbEpM%n~EK{wXlm%r(>Vd+K11o{EL7B?a zpj@V(flZ0$m}cJ4@b~}ItpMILtkqgVVJlD;V>~EVt%;y4vK^oVNCsWt3s4+qnrS6i z9F(E00?Jf20jq;Oz%bANyMgb)nR5N_Jj+@GkH9eqf@fP(aSH59+kcKV5?_Fy(>@PQ z0}Ic!hJG6;i|_?F0Bkvr*M@eU4}cqKe_G%)zsh~%LhDGcXILlVE%2D^|ENVy^ZR+q zEVf?np8&_e&%DHXP%sCSk;t^vI$8^ZQMBiRa-@C&`-20QS^N41C~GG3a_f$$F(})) zEhtkr5R?&`1Db#TyM~Hv!;7HI*?Ulq)^aPXZ8s8>7b0809$?#**7n;D-lP2-ly|kR ztg`U=YAYeXwbqCX0Ta->56Z6U{H4=;7QF3C_P@-9&pN01&d?nNMbYmo^CF>z zf}ylef@=s=Y$InpczzR)Y``g7tf|Sp&AR)I1Lf*@9IOX++irDe87N2aV^9t}{~c^E zsWjMO4Ot8*t9Tu_61)zU1&8jm7TpF=7U5~I0r(J43HUqs1T414Y5rM#<|IquDkwK3KPY?$%8~59*IMmm71jY|m$U@s zj2{Y$-5O91tizym^p4{Dcr3oVC>0R|gIT~>P)@u=h1(R~QmF59nvYm3fU@m2fmgv3 z;018Oey91qU+)8!-&jz#>vFIhco390&p<9pZtWu#xn=S`Xa&v-%Fr|cWe7Wfa+dc6 zyvZ~K3dmdhpcg3e?FzpJWhx(ovifr#mXT!t1yT{m4M15Oy+Bc% z0S2?U4ukxLsAfCrG(TMW%Q2_+3HjLLmZPyJte(yVWonM9_DwK5ZT+NE8xQ6M6Twwr zA+X3P5+uIXh>9$x5U{tMm(5@Y+Rn4q{_YC4qkRs%1m-2Iy4T+!eS z+Iv8`+RgaR(mMl658r|^q#3WP+iS2D?Mk4`{W!1!xEgE-egozJbKhY97ot+`hP9g8 zfetbZ0Sm&9xM?l2iJ)AJR)DgqpMtVRoVTo7tgN6c#u{J**bejs_k)t)DNwEjH$gcW zUxK0^aGU)v3bk)ri>w_ei*6Vw{Aplqa1|H~-c{|wcdW(Q84gjRw77+yYqw+Feiw@2U3BpseO!Kw16XKUnv4#lWhx z%Yr^&Ur>5JNbyI3Ef~=~;7J15?m5km-<mdwWL!wU-L}?N5l8hb@Q=(BDjY3 z_;kAY_FHiuU7JEei$K{eh5dB%`u_^7LSiM;>*gP!g=EzEP-43>ee($3U^qoJ-ewgG)g3`@i2)=>Vg1Zryy=vjvogQO`hGEdF_QZ50>-_JVKEr<;Eb z6PjN)AE&(n7a;FjK-Wsr!@t3qv;zz2<`jBBxf<3hteXeXE$|raUPW}xy@iUasBSKj zOJF+!XY2cT%zXKnGBTMM!ZFN{lt0NUl>E=D&WN;t; zQcCOQ8xK>1bgeP%yP&N8fO5Lq{I2Kta=N*%2bH&aHXZDULY@k``9;C8;A`5`D_S_Z z5<`lk*vh*3SFXpZSW_{es%~DKGE~#eTeS(Gtbx1WCvZ!3-MqSPsll4SKDwq`H@|q` zt6I9Y4uv(fb@NN-n%1#0?poKH%WYsBa;=_j-nqnsc82;gC?k>5KsRq#h6L;8n^>2? zRKfNodj3V{;QF0-sT&Pb@L_J&u%JXPJy#VEo zD89M1h%SIVX?JL0t&!cJ98{mcVPNf+x_J@X3(AT22$aiuzE;+5XsXbiNM#g)LttJK zsNPyPzpt-j8{K@KAKF&8o&$ig2K?GFx8QKF77cZIx?2gvf(f+WgR(1Pd+6qu((65~DcA#s!f)S8*KW)Ee|xDMC(zsw-MlDt2-CHR zC`5saz~4aGhSU4#=FxitlslL|LE-y^TOH^KHlY1XVc7^>TS?F3z^P!?NL}*=mk(fM zh_`Ma+gF~&Zi}`~wt!e`k*x&fGMjafZa!LR4$8%4BDe;84bB4R$LU%p_{4;R(8V)}ICCrnLNE%imZqh4vxPEsJI55X+(WP;0RnU?Ti{!*uh_=#`)hX`bQM z;+zG_*X(OK)jP_d0nGW^`Y?xw6B3} zX=mB2n=iS-z?|^sf?~gEi#0MAK^d`EpiEi7R%@F!2fNWWKSeG9_yi0D zGwjjLm+w`;0OD(FsmK|99^4Cl5&^h3NjINV-U0uhZQE-(`V*APc3zKe{;1qJP^N0- zK5H%Q1^sDX17(pu0mWaI{T5aQT}w{0EP8InZh0lM=JheQ0$UUv;Rfm3Jl5kxe|Dt zu>#}=WiE?>^}%kcyE(Ceu!uS7K741GKw@7(zSx4l4 za2)NYp!6X6wsprd63j~b7AXAZpsezDpbT;0JJ#YV0ZL-QpiFUyYL5bC1eSnBWd9$a zG7ZLEP!5>>-&^;7hd?>8GT*fV6#|>k4gzH#4*`2JQY*m-+8=*l@zD<$%?a(Jyz`Reb#TE#TfnNiB z2_6LH`oH-Xt{FJ2`HZ;)yFRyWMBFc|k;?JX!ogq&`rm*R!78t;5$+GV%fVQx7#G1H z+JA#rz|ya+i^vD?KJACUGSmb*_nURKd-c1u3qJe9x)gnt zFbI^j&=5=jqrgz`9vCkCzpXX32^>m0=p*}|4r%K@T8ri@urBQrU@p-9$y#iALD35W z<>V>{ie58N^rnKcDA$4!Gv`=nADM**@AG;LA&Kp*jp#u#!zBPDX4iaZ(i^-YPdr-=icqhZ{++ z4Z^e(kAcu}<-jFl4{ay8<2Yzcf`3vD(;h;3KwzOwQsCzy&;sz^RGT>2;M0E|wGy}y z&W55~8YjJ|3k}CveFEnti4g?ui%~V&ZP4NIj!Acr@wiYMf?R&2qy{>5De?@cI@nB& zLSuYSpe&>ag~8v*`J+7~*m8?!{<{lDmr**Udd`;>XeKgxk(}!*@85- zOOQ9G-H;BIz^@!uLXFV7icH?5xDIZ?b_sFJ{vV(rbP+}zfsWE%Mtg!X&VX?v_Fqi>&fVBM)xW8_Vk)>;^I5z*%9K;9DgthMn7d3 zNP7eZD^$Q3oC;O9!2H!qRn>+loA&6A#rYKcoW%AshCVF?qPLh%>_sn*gm!{H=+4`- zKePK0nsVF<6;i#H`f@ewr`22wPbivpFM3@Ac|(;zL4rQQ;YD~^;BjN5RV1N_@MJq? zF)g`ofcGWA^P}GY8DDPf*0!r5l!ry75DN8DK^I~m^ez0p=-tM702rZq*Z{17vo7d! z?_tty+II9F(Jrexv_f?z34ha(ug2dpbgK9<2mQz-5>r16z5}zPAT$x>d(7pHca%0`$i@VANfOoR#42g#2pjiVud`8NwJrj+Y|t5AqHU9qH* zcfxrHyl+X!$vB=?T`wqh@Ry+L0eQPj^C0^Sy%cynz1H5*KCcqvmdgBAx(_7WULN9< zVtk4trGG&sf0oe@`qcuB-*eH5 z;^Po{bFoPWy3gaV00G~UKsZjiA;>IUQnZWqXUN;4R~Umq3?VOpP1*{-1a@Dbb4&$m zj;*|FBqTrHB2}o8z6X7w7U`J(Ur>^dm!?t}8UBgFIvlpfncVU1RmOjkL!zR-PvQGyk6mV35Q?urusQ%E9N# z%gt2hw2R?rf=YNN&UqQFhs<36C8PqqC&+S? zSCAQR@|koHgIyRG!FV^>3;n5rZ$y6>x?Pmh%}OrckKCAg6R;G4C%lrBY1Rn4wJ)e#MkqJ(d}Fb;97mg}%Y*!r)CZAZPTD)siKJeG z0F$K$=#Ip8CcOHVGtEW)CHxua?@^uMO+%A9t7%z{-whO(DW{9SBi@XI6$IleP_-@8 zf0Tr%_eHUa@CY~u=hxsL!SD_380tc|vE%zXwQ2;|2mg@@{2o~`e658il!(1heU*^e zm{d7E&)u1YW9W{mCd3`s1lL zBC7~wkKnz+<}Nxp;3t!1XZ+XoR%fs{_z~ezl|(6UA_{z7#-#Z;$ShqTnaXP7MX=YD z^2!|EP=d}x|7+@dz$HrWqe^lzor$BoBaudw_4unK@f+fNx^h%P8SyT%N##gnIJ^O> z$HL@shjyACEXD3CoF7qREPwIy1iO5c-{2nrmx5oZPDQIk3ZvJbMC8qtALOc00!QI6 zYrzzHqzt6q5~CCxxzq~spmPrWq3E=w*eLIj`-AerIuEk)^sFQ8W%#_Kf*zrLjrKfb zA1T|>TTJ5a%`kZnUCTm`YQPlYm*liUly21b!RN)jHjcmxF?a}Hi1*Dko)l?c;;au56`(Gk#yN|VF!bb6;TI%$hI%Sx zRrT9y4g8I~Ciz4)lNg}@0(_1$ zgHlr^S{9uj(2c?IL*xg+8px~SYYpWM@_Yo2OEY52koQ9OPke5s9&MM)40Hj5ohrj$ z3A~Zs*FvE$e4$zdx(y~_+zEa)9H$arYphK~?v)xWd!(%L-Vb~A8|GUr}DigYv3J6 zK8E^R>~GNig?1qApTLTYL`QTd5igq>6|?{8R07c$?V?_f0A0Xi7z&-hQ3jG3!jKAW zLtao#gS6+7L@4cVsK*gN=qx1&yRYaqpFT3bmi#d~H}QEM9lJGJZtV?$CZpT{K``Yw zMy)ZbjdC8cj7RX(IoY zMpBeAn9zKBPUANRO_~mlM0XI8uT#FFz5^Zk@wy*~P*Fws8=25(unp<+L z6ZlK)UZKNNTP=aM&$0j{>K4Pe4krzIxl$T01oJ}z^v$%gmwUtQ_RSraHWw^ePznYJ%`s*rd_~OHR`PK7^)u zqt_e%i{bZ^*R#E;6oRoDM?%%XqB!K^z}hq%g<$XeDl*cxedXU6$Y`ZHx;eSS{hu<$!=RX-nWfb}mp)<;}5Z1%t zFCK57r{blhu|=RMD|eZw2OcjD1jKs`$%&MyhM$_H0)w=&QCv>R2^9= z{fW)j*gU4p#7_foC_MQD7Ub5NDa{{nCT~Xc#z|>}0XR8Ka%ss>jm#=Q7r@CZ^863&$pU@eCd>Hi)&kz6&BaC@0~p zCXT!*59#@7f(w;aI3Im4#jt0TT#Z7gI>&H!94i_!~&zGwN#{ z*7`G*E8^rS%$5khRY79mwIcJzXxOQbLe5+J=BFG?BmT(%Zw>*%2;57J}ILkP_03rzYRNAj+A6v~${l8eSbp5v zW*XU0>WcG8lwcfeRy~iWJqE|8RQnEXp(gZrF8qTyY=eDs9Jfb)jgm^`s29PjfkJV`$5apCJ7lxy z$!i?=qJJ3PDcawl3rlM)JyPTk|Cp*z!0w93NVF8X-=f@+`YAbMg_glsLn1jSbrIyp zc&X~$et1HYaqt^McNS+;ags{2ssFBYQ+c`3D})cBVC<`7)0UE!>eE;u*Vt!D@m-qi zMR67ePRbm5DpU)+g|o3%Q_D-xa@5~}v(*%2SNKFFo$X&iC&(~C_mxkx|G5eLit-i8 zs}T%h4Lqg?o#|Ny+LuVMDfI++^_7ETU_8OPBL75vGW8E6QWWP6;WZ(F@z|8Z=LYx* z%1(lJMYp8tv^zhILIkgZaxaWFAn1vMs{~7>o*3suPpB{T!ss?7$#JxU(W?axf|r)g zp*H|OI|x1oSsxPlfbWCw_YtQoF>}jjMpDTRBL~VoP-=*BBQ=Em;ID(9fp$}5TUDUR z)P;^CZ-i5!{sgRGRW&}_Y0_AHZBfY!qcQf^@YhQC@_xlSn28vse*Wfr>MP-WiQ+8` zZ7Pv%YDAvF4<>kh<+KQa3ZOp;eh{N_lX@|1a!_ALklXlstaQuaqaf|VsR>E{Q!tzb z*2Ty`I1r;TC{BaF3jR;Uu-7TwMS?W7#|YwUg~zfxKCrhXQqGAMlm#t^6> z+GQytRKR3(zNF-lgwYYYMZF0fDS+J(<*OwDKUcxJ;wP0pqPv)+W5u^zB6Vf(3(n@i z%!|Tb@TQwLXiJsdP)z<{Ebd~l61Qzt=sIYBPrWg+bKoMCrkHgnC7}a&JA=&*WJO4; zo8pUXEB2Y;k47FzbOS$8DkH>vGuwX}nh(YXisvwTE!I#NmCF07p8g1M6V zKpdSAj?$o5Ttev$YryUmJqc!6@8<`5lQI0r$YGhVfhE2SA}e z;9sGhO9fl0lC-4UE5qNws1zo-HIy&V7n%bvmCC6^ni1!3^d-JFhT^LP((b4NE>eNk zq8tLxz)@?mA0|prlnRhnjf%zPU-X3@N~e(hOnFK|7w}hs`e2p#FY=+T?FdpSHwxQm z*GDOrn!gzYDNgX_$POyS^8`pweH6M!;78ETO4&-lybS*YH3dzu{ez_M2%n&9!6zzs z2>kET(f{i>UyhTsR1!s@5d_Gs5{y&B*az7e>KWmGt@L^ja2NVlNFpEj6@jm+Q4~L^ z)KmHLqJufGamyRZb(OR{^^K~YfP=vlp}$bBq!JuMfbkf%LU%p9Q01@_y7dXzMkTZa zo!`*ufPEY`9&`(#lM(EWY&!KR*w!A(KNTtUU<#E(;R8-8V3Yu_G#E&^ND|w@Z_vGq zadX;dO^%91~3v^Z@-_M9YqX=z=R|RZ|epb4ii0wYg zX;K!d2rm;EI4BpeF~HWO`l}^pwL{&Mayy)r#9$Gn3`*w}zZyD~NuVM9{~g&WlE?&Z zFs-?$;dmb9BRZW_Vl!38W}}x0JE5NxuOvDJsehE)A)(9|P9nI_7JBk6MqViVMFPjE z@0I|{_)GM3+J9kl9^Jv{+(1WY21!q%{gSdn@q~XAT?clr85x~qhS4@j#n*}=%!ctm z6{I)AG!o~nL81PXGL%#3G{L$2aaAfsVsi+4p~~VMo2s-Aq1S|fsg$0eE#MV`k&QBk z;$DQqvKSpkc!&Cr^lT9hYAdT&ILM2$FcqK~x)CZ#QHdf+p&Qsg1MjJTjg_`_2uwF0>tmDowpRr62tKIGGIoOt}JYrP4V>;Lk~_D*Bnx ziKi}@1ek_b|Pp5q{$vUz}>oq9QRUQvHXK%soptExb?75=0~LF7XyI=9)hy4SZ#gyNxn5gnq=JCdyA#=D`+Q8;fF767vIlQyRd(qI7a7ozK-M4hLTo{0HR2 z>ChYWQ)xav&LAHNFASZWl-)A_-BA=;N_H`71gatYK8^88l1obmNVE&QXvO>%e2bq} z_?v>PHwnDLz8UTIbny2y_7TJwj{gP3OFe(Is~BBEsjzYwrV^3nVoGBS!WqszIG&Ac zF2SCvQCJNBFl912&5%{0tV8a>ZXgNFqNJnkm8L_V(77#l+odoXmSzr1NJK@~;3r@l ztODH!9T=u3m{58g>Lfh}=hx943@?cCGkSl}j==U5Z5#T_(91+!=u1jp{FwbeOafC7 zE<@=$qcDtmJFphc>)>E3&XcLF_G9Ei<>7~7a~NMj zIpOD~EXRL-a3p@4%HxO@7-dn5upUYLj!{e1&V!Tr6d?z)edt%k@FotXQ1;_I5Wdg~ z91A@_zYq3f@$)U^KKe71P7iE~sN}n&>-NBSfnf-Z8q_mVKZk+PK#WJ>>;ZhC(JFw{ zr{eGvi9dnYj(SH*SNLt=O#-)3GBGMmRqsQQXC`o~G(P^4^M52teGm>nv6l+Gmv%;i zKR~${4iC~6>O}hiI(^^?C7?4DyPDK@D_h~uL(d1B>B{bV^j;JE7s@esi|JGwu$i3y zok`#s3JDC^K+1jUw+Jvy4bxb#GrR?qD%7VCs1^0!R8Q8@eohiERa+A1fb&130&OLj zAF?&rcESIzjAj}1`%|CiR#^{HJ?f5f5JI6fI5|V0OBkjHg}$er1KoPqJyO%M3LLBK z3n|`Vu^WuPo1oAzI(?0{I}V0ZIWLal2bIuU>L)E-tscrkKPu-dm6OpV znwzqilApwzgU`Vvl8FR`Hlq8J^7)2#UVIc+vb}PjEHo2FDHLasNLGv|P!BaFtX$eN zsV{>!j*PFMTbc45?G%-G6_PDZ`xy!Rfc`Y_5`jv<7g~zmHrj7gTX=kzYZFsp2C z;NU5S8|ZB;yw!@|cK7pN@7l_?jt!4?HEq+RMFm$xNMuxapCDJ8xR}t8(5P@%bWDOP zBvptkNOKvVs@jY0e);<&$Gp$qw%on`?PZ%DJ}efyU7^EWgX6>FTyf!p28YKd zc%mxXzOC=6Hq^E&op12q1Xqjj=)MX4JdfSBLAtT+gT1h))kIq+UvF2GDKL7>ww*5O z>d-GT-o^h3{lb;N6%*krEqWCf;tCs_;AuD8*4-ZPf9XK^vK1-^Rq||`Ypa*r?b`td zu`!X+3GuFY$uBxAoG3MX%eW#U$WY7;}*D(Jvv$w~QN?k#T99g!Ky#8}R?& zz!eb_m(cG&Nkl|OheWxCgvUijM23YVFo&tmnhmBmXuHCPghUNCMM0Y9^N zQ?$pi-L~D&&lT7qCYC9UNGM_KK42@6$raeZ?6a$#^tps_=YVZ@gt>}aL`H{e)`FI* zD>x=vmZxI135k(Kt;VF|9FpdclTjf)ABRU6%x zeSs|%&y0h%Zcfke6SgBcjWV}vT|8%R**^I>gJYs%;ygzm*~U1H*)MGlBm9}Iw5RPrXV2~MG)iwj>}M>QBlJ&O1rpa%U~GrzqRbgMjFA4i>=39**NJH*JXh!N zP*-E&dbYH&@2eaTW33h@l8*Edhat>pKh{@BY%Gh}+zy_e6YWjyo(+@jd72nsU9qPR z_Wdk^QFY0NkyF9N>I{#=9!qNo!Uo61!SoFrR@ybZgxZGYFfkDlsAmGqwy{ z!V`YozRGE2x^4F{#@x1VHG=NgdwK5MwfA*+$!cr(z`n}g81&X&By$*>jyWuAEyeIY z8|J;W+nlV*@IIbd@9Y`vo_8PY^=-CFo?0L6{T$g=q$DOENEwqdEhRB!y0zGho_4Qd z{-s^Xhm(_BDdUrOB=1i?sMg^syH_nANVKm8I#kilHJoUua{TlroPE@2{Q(Ndy|uJzAt5#%WQi1Hz{SZFjJ-lxssQo zaunXa=m@QjW1dX>ePnCLa%Xg$trm9fiPFJpvy zJF|ISjq}Pk-l*i~$Yx}|>&WgYkj~K~t8eoB%x65z<~pL`^Fck+=m$s~J{ zcX&qRaTG{zB#w9FHF|k@SM)3_<|zF?*=9+#9V?v>JEMSG&uavgcBC`x)g3`bwg5+- zocsUFxo`5$lyS*>QpOqe$2qduQ>Gc?t2>$(@ntS{Bp<-z{?e|LNwmmmhA>@HPnnc_ zz<6KX(bVQ^%&Ft_FQ0rA)q@P$xRjYL`s0yi%B+-$4DC$DajWSec~5F*eHS+L%A4`O zQ}GA$h+md6zj$^u;r^hNF;Iga7||EAJ}nl53{%sC3L2(z}! zbi`&b#$?cQc;Up@G2P*BEKl-s<;N+x$o5D?mB~5E!a2;2O~k2@IfEld`n1gdg$uX1 zFvo*P>?RqPe>-A~%w=~N#T`USVvwer!;{vz1RrDe7&qweV~MR4jyW1fT(Z#UH|>e$ z@QQ|(?5P>+xb4jJuW2{N4R#c7lrq+wV{^R4^L}gb`nYGv~7pW7OGM(-E zFBkS8m$CYwo<}#A#9rgxK|Pyy3Ass0o@dlwnMom`z4u)~8IRZPBhGm_}LGop9I7$0CpIlEcWI^N=}yoTMxO zS!;>b5;C?wa#ZqMc;v|AXIwAg$Y>K(cx#@%;GGX+e(aHadMm6z?|Y~$%l;OU_H=NGpn;;7Ik+;_y4)5VUVQ8 z%63uDZX646W-?|Lac1!JE8^VgbXo&3Gtik|Rd)t**~neOIX<1|XnE(^Y@Wo%&gM3w zWn*WsaiozmNBaM4LC*SeFTHXaQ=2%mRPha@_pCd{T&8`xpjumW44#Lp*%2;%tg#ZZ zqIaV;&2zAcbA*2ub8(t$mo+YjkEdr3XK$Y@t5~5NY2uGAA@LlFaQ5`Iw`pi(slYYO zE7qCK$T-M3QU1x0UN*@Ab-TAP)|tZ?7V6C6SvSb}$ve+7NiJowxJlmWBF{beJ}5iN zvwFC5f{(E?(OKHKJl^5*6dUKvYcukUcV;whk8}EzWL6HPIeF*>O{VL=kAoy`42?o7 zy>ja2acP}mUUE#Ws^yhCn>o95QJvqiJdD?aoq6nRqWA3_x%0{KX|8@cEcuCdIV0ux z{6D)WfPtLtF1d!CYH^!r)Y|84*2cPH zWHHOkakk3(Lihjw)-iFPbA4aG6T)LWUy?bI zEGmvk4ovw+Vvb9hLZJP=fhiN@{A9)ba{)5ypK}JG%g*~ zeLO7=>79LzdjTx#-Y0ZNQMn9rE%s$AThqZ=#yXnC)l`OSw_M4MD?`0AmjK*J$t$& zSt~APAX7nSS>wfdy<~P@S<`aM;gMBmF2#Muy#so-{7L3nGo2SVsXgcwW+uw(7vdqHpGlSA&&fyoWA(~to8m0!`T3e&HqhAlL2sGg92n~+=rFfP*12bn hFX26Zf6)K3W&JOv>C@o;-QVN$Nw45A4taTR{2#Y2uG#dZ%cHcWmAu$b) zF&@4}?(fC>+v;hNzIid22=k&oFO3PYwzCDMr``p1qwyFQm!i&J>puSy!_-e<8qfE< za}-k2a36KTYt)6Jo|`eK3zo%X*c_8%4@`rjQRmM`jr=oAi{D`iyzbhcI1|3G4rRyq z+}|tg8p>e}>b0;L&cpopJC=&z;xD-w^``%LUPtQZF%A~}kIrJ5SIi7ndd=uLuF)IM zn}|Q6?$hF}=Z(cHsNY&FnEOhe_i_c)hWHJU_y#PhlSo4Kd+6 z5ndH+iw$rsHo<48HLV#x!i$d`QES}?GvO4hjT=xw`V2L5kqIKa;+O>0UL8Z&6cuYN zeG2bT=zzL#FXvFy1;(SYVy0_fh&p}^Dylc3rgj%1>Z0=`hqlrlUH#0BhnJjK+tkG)_ds zt3%l_hw`Erg<3SULj}p_*ax3t3G6_wD2SF|S-gRjFhkM^?+n?~4i(jTlUvlc!y(jX zp#~O}!ah%p>R1hYhE4Dt?(fx1Y3bA$HI?143=YFQxE&RIw^3X4znBKoq_UaGkHH3o zC24Ptsc?>KUyog>AHv+2BekVp6Z8wy@F4|F)n3$0M5VC{Hb6~nPt@A^s1Z%UCAb)e zVUe^E-T>T$TC$Ak%$%qZ7eOse1=P-33pJpw>B#@|OrcMM(qiem7Cb9aCv3uK{2DdF z%cza#32Nhs;$)>?TGWk7pl(nF6(j9Y=M6)hHwU%E>#z;}nV$UDl+?};;pM_%&NUcC z{R{?C>--rN6L)bsW_&Ng`v^DUBrKZIHl#f`m3o;>5nfe1=1deF;l-ie7&VivdWc00e7Q1oIbO)H$lzp0*pm} z6$N$R7;3FAyZS@a6u)vN$znaujM}>kqk^z2YNp1bHlRtU^jd&Ae;sN7yD%S~cJ2RR zUheND&KeQCNR&Zsm920N&P9zZYc}g(A=HH{q1qd|dOK9?^u^xjf$08s3~rY zO2hZ@B@RN(Snr$>URInWmH(enh{o?xYxoG2Mrm?c^kzl{O&QcwS4QpKHBlpPi0Wul zR2Fn}^}eX39few&X{e4ZclGt?>ww)9bb}M93!FoB;AiJO*Z!CD4QfW>=Z^3iVG`8& z9Z~1^Ky_#c>iQF0eJ(18MsS4&P2JC^8{c*H$IgFHJ&(*2;kCtts2lb| zoi`AJkvgY2m!g(nBdTMEP_c6cWAR!Z@?UEanb$tZj#|s2s0&uX%Gd;zuZu7SKSOos z6e`LuqHc5_wX?m!o0ukFg!dV~Kn-+tejE8Z)b;oH6m-LruHhD7f>Dg1r_BFP*MFH)xmd5M0ky{Br51;pa!@YyW&>V z%%&?zo%?(HC{)KRrR-(27xtmP7pq{-()L*Hi#4h5M(qQkG7;WIdBv^%d%t< zY`u7fdaCmF!tpCkq<*CWZ@+xrrXu-&iiQ)FEXqHwY+l8-9PnP12=8M)A6?a+a>=Vj zc&n)|L(M?B>NW#aQEAu+HAAgYYupo+=VM%bE~cQq4mE(?)yaPycz_0-cpkO3w^8j6 zQEBxSwRNVd5#hDKyr`g>j9RMM_yMj)9hbePZPDdX&;Mqa4f|sbT!6}&12xHi_2?!I zTBE0^3nZ*%Ynl~fsMkQ9&=bq!ROd<51>@JY&kLho(Hf&(K>DMC@k1s8s@{d zK85@g^3|~yk+xWi`c%|~FQTIM4eCPK>RNjZ%uRg&>RoX;md2k@*^s)Py{uNo%GAeW zB|L(f*?9G>BYt`cYABC-b!voKo4(G$s3;$anyC*_QN0wkk*s(1O{fm-LQVM{)W-D& zb>lb<+(Qes)D4jV`CfYpy5K~2z${cSEksS>D%2Y9#Bz8Xb>X-T?YJbU4yQ$RG$Sg8 za-#-T3>8B)QD52GIY$PclYbvmP?T;!owy%$q2s6inNk=l_A)y8m&;ZNhc9zn6-Ff+iQLht-`Ou^{y^sI~nP^@j65ER3;D z?f6!xr5l1;k~ygKT!5O%<*0#uit4~u&I9PHXJ;trz^m?qUr;mf*wtTSbLt72SrB$Y zeLfkrRnJ4E*H^B7+13Ac_4Lhc21;UYj;o3taBFk&U(uPeMTGZ0w!n7yHEJeOx3sh> zh`LcjRQmP9$@nFX#A2;1Hoig~_ZYPmCvI)^yr>S=#%LUXn%TLn$$zEQckY9Gs0+kv zV^JK7s#icoZCg|p^g#vZc+~lea0>241zVN(?fh1#JRgizaV=^`eSp=__t|GFP&kTT zMiABQ?3>BX_7Prt+EaG0kqyDc)VHH%rd~&Tf#`v&sgJ-Cn7)%e1)E?Y>eEr_cmV6; zRaExm>}>b(3sO)J&P1h4;x5+X7*zB&z+Bh?HHFhL3b&%(V0NK`>NwWGOQ)YaPC zVkPRmF@#^DVr?4|l)kr*f-ZOrwUeE}CK$h)MQuCOje4SjbtGyDCgUf#1P5aI?)KGd zD;B3-q=(HwZ`4|^#5(u`&cuv8)e(mNMNlB6O!&4>iSw zQB&F#bzEQPMAX*42o*cWQ7yxBI{IZl^1m#FeKe>e|Dr~ou789#2(zLN zT!c!ib*LHGi<@xQxlc<%P==?L!EyUb>pOitwSlXFZE2Qn3{?8aS_(T`?v^; z`$HnUSrpEp*0B9h>sepa$UnklxB&HHvcY|R5S0bjP<#F(RQf(cbvW)YJFg^a=4zv^ z-@(=UVSeiV2Nd#9*nt}HFQ}+aHr(>I3Tk8d5Ou;q=VMebMUSu%SH~pO8#z0oIyMlM z-osE!JO&lC%aDhj@9moZC@P&x@#6xW7;{ zkzkbFFe7To%A#hl32Mvkjaiicvnc2W+ng6sJ$->XG4*Jh!n~-SS4Q2a9cIDds9;)# zy1`D=ac5oqf9~_p7&|T_Dke%|@cge#K^JU+nz8|y7>A

;qJE&vWf7QE9r_wI>*B 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 diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 6a34d0b5..4bf61c5c 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: 2019-12-09 16:38+0200\n" +"POT-Creation-Date: 2019-12-14 02:48+0200\n" "PO-Revision-Date: \n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" @@ -13,22 +13,22 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 2.2.4\n" "X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: build\n" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: FlatCAMApp.py:988 +#: FlatCAMApp.py:999 msgid "FlatCAM is initializing ..." msgstr "Запуск FlatCAM ..." -#: FlatCAMApp.py:1566 +#: FlatCAMApp.py:1580 msgid "Could not find the Language files. The App strings are missing." msgstr "Не удалось найти языковые файлы. Строки приложения отсутствуют." -#: FlatCAMApp.py:1659 +#: FlatCAMApp.py:1673 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." @@ -36,7 +36,7 @@ msgstr "" "Запуск FlatCAM ...\n" "Инициализация рабочей области." -#: FlatCAMApp.py:1677 +#: FlatCAMApp.py:1691 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" @@ -46,7 +46,7 @@ msgstr "" "Инициализация рабочей области.\n" "Инициализация рабочей области завершена за" -#: FlatCAMApp.py:2373 +#: FlatCAMApp.py:2388 msgid "" "Type >help< to get started\n" "\n" @@ -54,12 +54,13 @@ msgstr "" "Введите >help< для начала работы\n" "\n" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "Новый проект - Не сохранён" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 +#: FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -67,47 +68,47 @@ msgstr "" "Инициализация холста.\n" "Инициализация холста завершена за" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "Выполнение Tcl-сценария ..." -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Найдены старые файлы настроек по умолчанию. Пожалуйста, перезагрузите " "приложение для обновления." -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "Открытие отменено." -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "Не удалось открыть файл конфигурации." -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "Не удалось открыть файл Excellon." -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "Не удалось открыть файл GCode." -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "Не удалось открыть файл Gerber." -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "Выберите объект Geometry, Gerber или Excellon для редактирования." -#: FlatCAMApp.py:3201 +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -116,82 +117,82 @@ msgstr "" "Одновременное редактирование геометрии в MultiGeo Geometry невозможно.\n" "Редактируйте только одну геометрию за раз." -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "Редактор активирован ..." -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "Закрыть редактор" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "Да" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "Нет" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "Отмена" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "Объект пуст после редактирования." -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Выберите объект Gerber, Geometry или Excellon для обновления." -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "обновлён, возврат в приложение ..." -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "Не удалось загрузить файл значений по умолчанию." -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "Не удалось прочитать файл значений по умолчанию." -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "Импорт настроек FlatCAM" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "Импорт настроек FlatCAM отменен." -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "Значения по умолчанию импортированы из" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "Экспорт настроек FlatCAM" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "Экспорт настроек FlatCAM отменён." -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 -#: FlatCAMApp.py:10375 FlatCAMApp.py:10514 FlatCAMCommon.py:378 -#: FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 +#: FlatCAMApp.py:10509 FlatCAMApp.py:10648 FlatCAMCommon.py:378 +#: FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -199,36 +200,36 @@ msgstr "" "В доступе отказано, сохранение невозможно.\n" "Скорее всего, другое приложение держит файл открытым и недоступным." -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "Не удаётся загрузить файл настроек." -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "Не удалось записать значения по умолчанию в файл." -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "Экспорт настроек в" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "Папка настроек FlatCAM открыта." -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "Не удалось открыть файл истории для записи." -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "Не удалось открыть файл последних проектов для записи." -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 msgid "An internal error has ocurred. See shell.\n" msgstr "Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -237,98 +238,63 @@ msgstr "" "Объект ({kind}) не выполнен, потому что: {error} \n" "\n" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "Конвертирование единиц в " -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" msgstr "СОЗДАЙТЕ НОВЫЙ TCL СЦЕНАРИЙ FLATCAM" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" msgstr "Учебное пособие по TCL здесь" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" msgstr "Список команд FlatCAM" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 -#, python-brace-format -msgid "" -"[selected] {kind} created/selected: {name}" -msgstr "" -"[selected] {kind} создан/выбран: {name}" +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" +msgstr "создан / выбрана" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "Прорисовка" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "О программе" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "Исходный код" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "Страница загрузок" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "Issue-трекер" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "Закрыть" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" msgstr "Под лицензией MIT" -#: FlatCAMApp.py:4448 -#| msgid "" -#| "\n" -#| "Licensed under the MIT license:\n" -#| "http://www.opensource.org/licenses/mit-license.php\n" -#| "\n" -#| "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:4483 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -376,74 +342,76 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4505 msgid "" -"Some of the icons used are from the following sources:

Icons by Icons8" +"Some of the icons used are from the following sources:
Icons by Icons8
Icons by oNline Web Fonts" msgstr "" "Некоторые из используемых значков взяты из следующих источников: " -"
Иконки сделаны
Иконки от Icons8" +"\" title=\"Flaticon\">www.flaticon.com

Иконки " +"от Icons8
Иконки " +"от oNline Web Fonts" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "Информация" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "Разработчики" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "Переводчики" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4555 msgid "License" msgstr "Лицензия" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "Пояснения" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "Разработчик" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "Статус" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "E-mail" -#: FlatCAMApp.py:4558 +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" msgstr "Куратор >=2019" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "Язык" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "Переводчик" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "Исправления" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 -#: flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 +#: flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "Диспетчер закладок" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -463,35 +431,35 @@ msgstr "" "Если вы не можете получить какую-либо информацию о бета-версии FlatCAM\n" "используйте ссылку на канал YouTube в меню «Справка»." -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "Альтернативный сайт" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "Настройки сохранены." -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "Не удалось загрузить файл с исходными значениями." -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "Не удалось прочитать файл с исходными значениями." -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "Не удалось записать исходные значения в файл." -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "Исходные значения сохранены." -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "Приложение сохраняет проект. Пожалуйста, подождите ..." -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -499,29 +467,29 @@ msgstr "" "Есть файлы/объекты, измененные в FlatCAM.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "Сохранить изменения" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов Excellon, зарегистрированные в FlatCAM." -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов GCode, зарегистрированные в FlatCAM." -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов Gerber, зарегистрированные в FlatCAM." -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Для объединения требуются как минимум два объекта. Объекты, выбранные в " "данный момент" -#: FlatCAMApp.py:5445 +#: FlatCAMApp.py:5481 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 " @@ -537,51 +505,51 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: FlatCAMApp.py:5457 +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" msgstr "Слияние Multigeo. Geometry завершено" -#: FlatCAMApp.py:5466 +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" msgstr "Слияние Geometry завершено" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Неудача. Присоединение Excellon работает только на объектах Excellon." -#: FlatCAMApp.py:5498 +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" msgstr "Слияние Excellon завершено" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Неудача. Объединение Gerber работает только на объектах Gerber." -#: FlatCAMApp.py:5526 +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" msgstr "Слияние Gerber завершено" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "Неудалось. Выберите объект Geometry и попробуйте снова." -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "Ожидается FlatCAMGeometry, получено" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "Объект Geometry был преобразован в тип MultiGeo." -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "Объект Geometry был преобразован в тип SingleGeo." -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "Единицы измерения" -#: FlatCAMApp.py:5799 +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -592,50 +560,50 @@ msgstr "" "масштабированию всех всех объектов.\n" "Продолжить?" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "Да" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "Конвертирование единиц в" -#: FlatCAMApp.py:5865 +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." msgstr "Изменение единиц отменено." -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "Плавающие вкладки" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "Настройки" -#: FlatCAMApp.py:6960 +#: FlatCAMApp.py:6996 msgid "Preferences applied." msgstr "Настройки применяются." -#: FlatCAMApp.py:7009 +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." msgstr "Настройки закрыты без сохранения." -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" "Пожалуйста, введите диаметр инструмента с ненулевым значением в float " "формате." -#: FlatCAMApp.py:7037 flatcamTools/ToolNonCopperClear.py:600 -#: flatcamTools/ToolPaint.py:510 flatcamTools/ToolSolderPaste.py:566 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 +#: flatcamTools/ToolPaint.py:511 flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "Добавление инструмента отменено" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -644,11 +612,11 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "Удалить объекты" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -656,100 +624,100 @@ msgstr "" "Вы уверены, что хотите удалить навсегда\n" "выделенные объекты?" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "Объект(ы) удалены" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "Объект(ы) удален" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "Кликните, чтобы указать начало координат ..." -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "Установка точки начала координат..." -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "Начало координат установлено" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "Координаты начала указаны, но неполны." -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "Перейти к ..." -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 #: flatcamEditors/FlatCAMExcEditor.py:3526 -#: flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 +#: flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 #: flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 #: flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "Готово." -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 msgid "No object is selected. Select an object and try again." msgstr "Объект не выбран. Выберите объект и попробуйте снова." -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7667 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Прерывание. Текущая задача будет закрыта как можно скорее..." -#: FlatCAMApp.py:7629 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "Текущая задача была закрыта по запросу пользователя ..." -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "Настройки отредактированы, но не сохранены." -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 -#: FlatCAMObj.py:4107 +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 +#: FlatCAMObj.py:4213 msgid "Tools Database" msgstr "База данных" -#: FlatCAMApp.py:7752 +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." msgstr "Инструменты в базе данных отредактированы, но не сохранены." -#: FlatCAMApp.py:7776 +#: FlatCAMApp.py:7820 msgid "Tool from DB added in Tool Table." msgstr "Инструмент из БД добавлен в таблицу инструментов." -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7822 msgid "Adding tool from DB is not allowed for this object." msgstr "Добавление инструмента из БД для данного объекта запрещено." -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -757,11 +725,11 @@ msgstr "" "Одно или несколько значений изменены.\n" "Вы хотите сохранить настройки?" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "Сохранить настройки" -#: FlatCAMApp.py:7838 +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -769,95 +737,95 @@ msgstr "" "Один или несколько инструментов изменены.\n" "Вы хотите обновить базу данных инструментов?" -#: FlatCAMApp.py:7840 +#: FlatCAMApp.py:7884 msgid "Save Tools Database" msgstr "Сохранить БД" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "Редактор кода" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "Не выбран объект для отражения по оси Y." -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "Отражение по оси Y завершено." -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 #: flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "Операция переворота не была выполнена." -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "Не выбран объект для отражения по оси Х." -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "Отражение по оси Х завершено." -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "Не выбран ни один объект для вращения." -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "Трансформация" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "Вращение завершено." -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "Вращение не было выполнено." -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "Не выбран ни один объект для наклона/сдвига по оси X." -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "Наклон по оси X выполнен." -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "Нет объекта, выбранного для наклона/сдвига по оси Y." -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "Наклон по оси Y выполнен." -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "Выбрать все" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "Снять выделение" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "Все объекты выделены." -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "Выбор объектов очищен." -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "Сетка вкл/откл" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1228 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamGUI/ObjectUI.py:1265 #: flatcamTools/ToolDblSided.py:185 flatcamTools/ToolDblSided.py:238 #: flatcamTools/ToolNonCopperClear.py:286 flatcamTools/ToolPaint.py:188 #: flatcamTools/ToolSolderPaste.py:121 flatcamTools/ToolSolderPaste.py:591 @@ -865,78 +833,77 @@ msgstr "Сетка вкл/откл" msgid "Add" msgstr "Добавить" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 #: flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 -#: flatcamGUI/FlatCAMGUI.py:1955 flatcamGUI/FlatCAMGUI.py:2279 -#: flatcamGUI/ObjectUI.py:1254 flatcamTools/ToolNonCopperClear.py:298 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 +#: flatcamGUI/FlatCAMGUI.py:1967 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/ObjectUI.py:1291 flatcamTools/ToolNonCopperClear.py:298 #: flatcamTools/ToolPaint.py:200 flatcamTools/ToolSolderPaste.py:127 #: flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "Удалить" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "Новая сетка ..." -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Пожалуйста, введите значение сетки с ненулевым значением в формате float." -#: FlatCAMApp.py:8347 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "Новая сетка добавлена" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "Сетка уже существует" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "Добавление новой сетки отменено" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" msgstr " Значение сетки не существует" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "Значение сетки удалено" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "Удаление значения сетки отменено" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "Список комбинаций клавиш" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" msgstr " Нет объекта, выбранного для копирования его имени" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "Координаты скопированы в буфер обмена." -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" -msgstr "[selected]{name} выбран" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +msgid "selected" +msgstr "выбранный" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9040 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -946,337 +913,361 @@ msgstr "" "Создание нового проекта удалит их.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:9012 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "Новый проект создан" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "Открыть Gerber" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "Открытие файла Gerber." -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "Открытие Gerber отменено." -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "Открыть Excellon" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "Открытие файла Excellon." -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." msgstr " Открытие Excellon отменено." -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "Открыть G-Code" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "Открытие файла G-Code." -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "Открытие G-Code отменено." -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "Открыть проект" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "Открытие проекта отменено." -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 +msgid "Open HPGL2" +msgstr "Открыть HPGL2" + +#: FlatCAMApp.py:9357 +msgid "Opening HPGL2 file." +msgstr "Открытие файла HPGL2." + +#: FlatCAMApp.py:9362 +msgid "Open HPGL2 file cancelled." +msgstr "Открытие HPGL2 отменено." + +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "Открыть файл конфигурации" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "Открытие конфигурации отменено." -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "Нет выбранных объектов." -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "Выберите объект Geometry для экспорта" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "Можно использовать только объекты Geometry, Gerber и CNCJob." -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "Экспорт SVG" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr " Экспорт SVG отменён." -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9463 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "Данные должны быть 3D массивом с последним размером 3 или 4" -#: FlatCAMApp.py:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "Экспорт PNG изображения" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "Экспорт PNG отменён." -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "" "Нет выбранных объектов. Пожалуйста, выберите Gerber объект для экспорта." -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "Ошибка. Только объекты Gerber могут быть сохранены как файлы Gerber..." -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "Сохранить исходный файл Gerber" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "Сохранение исходного кода файла Gerber отменено." -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "" "Нет выбранных объектов. Пожалуйста, выберите объект сценария для экспорта." -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9552 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" "Ошибка. Только объекты сценария могут быть сохранены как файлы TCL-" "сценария..." -#: FlatCAMApp.py:9476 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "Сохранить исходный файл сценария" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "Сохранение исходного кода файла сценария отменено." -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "Объект не выбран. Пожалуйста, выберите объект Document для экспорта." -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9596 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" "Ошибка. Только объекты Document могут быть сохранены как файлы Document..." -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "Сохранить исходный файл Document" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "Сохранение исходного кода файла Document отменено." -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "Объект не выбран. Пожалуйста, выберите Excellon объект для экспорта." -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "Ошибка. Только объекты Excellon могут быть сохранены как файлы Excellon..." -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "Сохранить исходный файл Excellon" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "Сохранение исходного кода файла Excellon отменено." -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "Объект не выбран. Пожалуйста, выберите отличный объект для экспорта." -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "Экспорт Excellon отменен." -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "" "Нет выбранных объектов. Пожалуйста, выберите Gerber объект для экспорта." -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "Экспорт Gerber" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "Экспорт Gerber отменен." -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "Можно использовать только объекты Geometry." -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "Экспорт DXF отменен." -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "Импорт SVG" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "Открытие SVG отменено." -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "Открытие DXF отменено." -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "Просмотр исходного кода выбранного объекта." -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "Загрузка..." -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Выберите файл Gerber или Excellon для просмотра исходного кода." -#: FlatCAMApp.py:9854 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "Редактор исходного кода" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 msgid "There is no selected object for which to see it's source file code." msgstr "Нет выбранного объекта, для просмотра исходного кода файла." -#: FlatCAMApp.py:9913 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "Не удалось загрузить исходный код выбранного объекта" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "Новый файл сценария создан в редакторе кода." -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "Открыть сценарий TCL" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "Открытие сценария отменено." -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "Выполнение файла FlatCAMScript." -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "Запустить сценарий TCL" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "Запуск сценария отменен." -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10147 msgid "TCL script file opened in Code Editor and executed." msgstr "Файл сценария открывается в редакторе кода и выполняется." -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "Сохранить проект как..." -#: FlatCAMApp.py:10111 -#, python-brace-format -msgid "{l_save}/Project_{date}" -msgstr "{l_save}/Project_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" +msgstr "Проект" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "Сохранение проекта отменено." -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10216 +msgid "The object is used by another application." +msgstr "Объект используется другим приложением." + +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 +msgid "Save Object as PDF ..." +msgstr "Сохранить объект как PDF ..." + +#: FlatCAMApp.py:10264 +msgid "Save Object PDF cancelled." +msgstr "Сохранить объект PDF отменен." + +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "Экспортирование SVG" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "Файл SVG экспортируется в" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10371 msgid "" "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" "Сохранение отменено, потому что исходный файл пуст. Попробуйте " "экспортировать файл Gerber." -#: FlatCAMApp.py:10383 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "Файл Excellon экспортируется в" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "Не удалось экспортировать файл Excellon." -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "Файл Gerber экспортируется в" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "Экспортирование Gerber" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "Не удалось экспортировать файл Gerber." -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "Файл DXF экспортируется в" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "Не удалось экспортировать файл DXF." -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -1284,84 +1275,86 @@ msgstr "" "В качестве параметра выбран не поддерживаемый тип. Поддерживаются только " "Geometry и Gerber" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "Импортирование SVG" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 -#: FlatCAMApp.py:10808 FlatCAMApp.py:10871 FlatCAMApp.py:10909 -#: flatcamTools/ToolImage.py:298 flatcamTools/ToolPDF.py:225 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 +#: FlatCAMApp.py:10942 FlatCAMApp.py:11005 FlatCAMApp.py:11072 +#: FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 +#: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "Открыт" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "Не удалось открыть файл" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "Не удаётся прочитать файл" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 -#: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 +#: FlatCAMObj.py:5004 flatcamEditors/FlatCAMGrbEditor.py:4110 +#: flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "Произошла внутренняя ошибка. Смотрите командную строку.\n" -#: FlatCAMApp.py:10722 +#: FlatCAMApp.py:10856 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Объект не является файлом Gerber или пуст. Прерывание создания объекта." -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "Открытие Gerber" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." msgstr " Открыть Gerber не удалось. Вероятно это не Gerber файл." -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "Это не Excellon файл." -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "Не удается открыть файл" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 #: flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "Геометрия не найдена в файле" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "Открытие Excellon." -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Не удалось открыть файл Excellon. Вероятно это не файл Excellon." -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "Чтение файла GCode" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "Не удалось открыть" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "Это не GCODE" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "Открытие G-Code." -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10994 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -1373,55 +1366,68 @@ msgstr "" " Попытка создать объект FlatCAM CNCJob из файла G-кода не удалась во время " "обработки" -#: FlatCAMApp.py:10885 +#: FlatCAMApp.py:11053 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"Объект не является файлом HPGL2 или пустым. Прерывание создания объекта." + +#: FlatCAMApp.py:11058 +msgid "Opening HPGL2" +msgstr "Открытие HPGL2" + +#: FlatCAMApp.py:11065 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Открыть HPGL2 не удалось. Вероятно, не файл HPGL2." + +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "Открытие TCL-сценария..." -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "Файл сценария открыт в редакторе кода." -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "Не удалось открыть TCL-сценарий." -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "Открытие файла конфигурации." -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "Не удалось открыть файл конфигурации" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "Загрузка проекта ... Пожалуйста, подождите ..." -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "Открытие файла проекта FlatCAM." -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "Не удалось открыть файл проекта" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "Загрузка проекта ... восстановление" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "Проект загружен из" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "Перерисовка всех объектов" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "Доступные команды:\n" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1433,51 +1439,51 @@ msgstr "" "Для дополнительной информации ведите help <имя_команды> .\n" "Пример: help open_gerber" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "Показывает список команд." -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "Не удалось загрузить список недавних файлов." -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "Не удалось прочитать список недавних файлов." -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "Не удалось загрузить список элементов последних проектов." -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "Не удалось проанализировать список последних элементов проекта." -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "Очистить недавние проекты" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "Очистить список" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "Список комбинаций клавиш" -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "Вкладка \"Выбранное\" - выбранный элемент на вкладке \"Проект\"" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "Описание" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "Нормальный порядок при работе в FlatCAM выглядит следующим образом:" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11768 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 " @@ -1487,7 +1493,7 @@ msgstr "" "или SVG-файл в FlatCAM с помощью панели инструментов, сочетания клавиш или " "просто перетащив в окно программы." -#: FlatCAMApp.py:11570 +#: FlatCAMApp.py:11771 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 " @@ -1497,7 +1503,7 @@ msgstr "" "перетащив его в окно программы или с помощью действий меню (или панели " "инструментов), предлагаемых в приложении." -#: FlatCAMApp.py:11573 +#: FlatCAMApp.py:11774 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 " @@ -1509,7 +1515,7 @@ msgstr "" "объекта на вкладке \"Проект\", вкладка \"Выбранное\" будет обновлена в " "соответствии с видом объекта: Gerber, Excellon, Geometry или CNCJob." -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11778 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 " @@ -1522,13 +1528,13 @@ msgstr "" "вкладке \"Выбранное\". Кроме того, двойной щелчок по объекту на холсте " "откроет вкладку \"Выбранное\" и заполнит ее, даже если она была не в фокусе." -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11782 msgid "" "You can change the parameters in this screen and the flow direction is like " "this:" msgstr "Вы можете изменить параметры на этом экране, и порядок будет таким:" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> " "Geometry Object --> Add tools (change param in Selected Tab) --> Generate " @@ -1542,7 +1548,7 @@ msgstr "" "необходимости, дополнительные команды в начало или конец GCode (опять же, " "во вкладке \"Выбранное\") -> Сохранить GCode (кнопка \"Сохранить CNC Code\")." -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11787 msgid "" "A list of key shortcuts is available through an menu entry in Help --> " "Shortcuts List or through its own key shortcut: F3." @@ -1550,24 +1556,24 @@ msgstr "" "Список комбинаций клавиш доступен через пункт меню Помощь --> Список " "комбинаций клавиш или через клавишу: F3." -#: FlatCAMApp.py:11647 +#: FlatCAMApp.py:11848 msgid "Failed checking for latest version. Could not connect." msgstr "" "Не удалось проверить обновление программы. Отсутствует интернет подключение ." -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "Не удается обработать информацию о последней версии." -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "FlatCAM в актуальном состоянии!" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1575,63 +1581,63 @@ msgstr "" "Новая версия FlatCAM доступна для загрузки:\n" "\n" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11875 msgid "info" msgstr "инфо" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "Все участки отключены." -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "Все не выбранные участки отключены." -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "Все участки включены." -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "Выбранные участки включены..." -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "Выбранные участки отключены..." -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "Включение участков ..." -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "Отключение участков ..." -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "Обработка…" -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "Проект сохранён в" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "Не удалось проверить файл проекта" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "Повторите попытку, чтобы сохранить его." -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "Не удалось проанализировать сохраненный файл проекта" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "Пользователь запросил выход из текущего задания." @@ -1713,7 +1719,7 @@ msgstr "Закладка удалена." msgid "Export FlatCAM Bookmarks" msgstr "Экспорт закладок FlatCAM" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "Закладки" @@ -1745,17 +1751,17 @@ msgstr "Импорт закладок FlatCAM отменен." msgid "Imported Bookmarks from" msgstr "Закладки импортированы из" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 -#: FlatCAMObj.py:4484 FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 +#: FlatCAMObj.py:4590 FlatCAMObj.py:4599 msgid "Iso" msgstr "Изоляция" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 -#: FlatCAMObj.py:3488 FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 +#: FlatCAMObj.py:3588 FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "Грубый" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "Конец" @@ -1764,12 +1770,12 @@ msgid "Tool Name" msgstr "Название инструмента" #: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 -#: flatcamGUI/ObjectUI.py:1219 flatcamTools/ToolNonCopperClear.py:271 +#: flatcamGUI/ObjectUI.py:1256 flatcamTools/ToolNonCopperClear.py:271 #: flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "Диаметр инструмента" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "Смещение" @@ -1777,8 +1783,8 @@ msgstr "Смещение" msgid "Custom Offset" msgstr "Пользовательское смещение" -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 -#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3973 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 +#: flatcamGUI/PreferencesUI.py:1626 flatcamGUI/PreferencesUI.py:3991 #: flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "Тип инструмента" @@ -1787,12 +1793,13 @@ msgstr "Тип инструмента" msgid "Tool Shape" msgstr "Форма инструмента" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 -#: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:1666 flatcamGUI/PreferencesUI.py:2334 +#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4036 +#: flatcamGUI/PreferencesUI.py:4290 flatcamGUI/PreferencesUI.py:5114 +#: flatcamTools/ToolCalculators.py:114 flatcamTools/ToolCutOut.py:132 +#: flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "Глубина резания" @@ -1812,9 +1819,9 @@ msgstr "V-Dia" msgid "V-Angle" msgstr "Угол V-образного инструмента" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "Отвод по Z" @@ -1834,8 +1841,8 @@ msgstr "Скорость подачи" msgid "Spindle Speed" msgstr "Скорость вращения шпинделя" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "Задержка" @@ -1843,42 +1850,46 @@ msgstr "Задержка" msgid "Dwelltime" msgstr "Задержка" -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 -#: flatcamGUI/PreferencesUI.py:2459 flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 +#: flatcamGUI/PreferencesUI.py:2461 flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "Постпроцессор" #: FlatCAMCommon.py:532 msgid "ExtraCut" -msgstr "ExtraCut" +msgstr "Дополнительный вырез" #: FlatCAMCommon.py:533 +msgid "E-Cut Length" +msgstr "Длина дополнительного разреза" + +#: FlatCAMCommon.py:534 msgid "Toolchange" msgstr "Смена инструментов" -#: FlatCAMCommon.py:534 +#: FlatCAMCommon.py:535 msgid "Toolchange XY" msgstr "Смена инструмента XY" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 -#: flatcamGUI/PreferencesUI.py:3262 flatcamGUI/PreferencesUI.py:6485 -#: flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 +#: flatcamGUI/PreferencesUI.py:3264 flatcamGUI/PreferencesUI.py:6503 +#: flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "Смена инструмента Z" -#: FlatCAMCommon.py:536 +#: FlatCAMCommon.py:537 msgid "Start Z" msgstr "Z начала" -#: FlatCAMCommon.py:537 +#: FlatCAMCommon.py:538 msgid "End Z" msgstr "Z окончания" -#: FlatCAMCommon.py:541 +#: FlatCAMCommon.py:542 msgid "Tool Index." msgstr "Порядок инструмента." -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 msgid "" "Tool name.\n" "This is not used in the app, it's function\n" @@ -1888,11 +1899,11 @@ msgstr "" "Это не используется в приложении, это функция\n" "служит в качестве примечания для пользователя." -#: FlatCAMCommon.py:547 +#: FlatCAMCommon.py:548 msgid "Tool Diameter." msgstr "Диаметр инструмента." -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1907,7 +1918,7 @@ msgstr "" "Внитреннее = смещение внутрь на половину диаметра инструмента\n" "Внешнее = смещение наружу на половину диаметра инструмента" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." @@ -1915,7 +1926,7 @@ msgstr "" "Пользовательское смещение.\n" "Значение, которое будет использоваться в качестве смещения от текущего пути." -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -1929,7 +1940,7 @@ msgstr "" "Грубый = грубая резка, низкая скорость подачи, несколько проходов\n" "Финишный = финишная резка, высокая скорость подачи" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -1943,7 +1954,7 @@ msgstr "" "B = шаровой наконечник фрезерного инструмента\n" "V = v-образный фрезерный инструмент" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." @@ -1951,7 +1962,7 @@ msgstr "" "Глубина резания.\n" "Глубина, на которой можно разрезать материал." -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" @@ -1961,7 +1972,7 @@ msgstr "" "Выбор этого параметра позволит выполнять обрезку в несколько проходов,\n" "при каждом проходе добавляется глубина параметра DPP." -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." @@ -1969,7 +1980,7 @@ msgstr "" "DPP. Глубина за проход.\n" "Значение, используемое для резки материала при каждом проходе." -#: FlatCAMCommon.py:581 +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." @@ -1977,7 +1988,7 @@ msgstr "" "V-Dia.\n" "Диаметр наконечника для инструментов V-образной формы." -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." @@ -1985,7 +1996,7 @@ msgstr "" "V-Agle.\n" "Угол накончика для инструментов V-образной формы." -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 msgid "" "Clearance Height.\n" "Height at which the milling bit will travel between cuts,\n" @@ -1995,7 +2006,7 @@ msgstr "" "Высота, на которой фреза будет перемещаться между срезами,\n" "над поверхностью материала, избегая всех приспособлений." -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." @@ -2003,7 +2014,7 @@ msgstr "" "FR. Скорость подачи\n" "Скорость на плоскости XY используется при резке материала." -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." @@ -2011,7 +2022,7 @@ msgstr "" "FR Z. Скорость подачи Z\n" "Скорость на плоскости Z." -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -2024,7 +2035,7 @@ msgstr "" "использовать\n" "команда G0 g-кода. В основном 3D принтеры." -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" @@ -2034,7 +2045,7 @@ msgstr "" "Если оставить его пустым, он не будет использоваться.\n" "Скорость вращения шпинделя в об/мин." -#: FlatCAMCommon.py:606 +#: FlatCAMCommon.py:607 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" @@ -2044,7 +2055,7 @@ msgstr "" "Отметьте это, если необходима задержка, для того чтобы разрешить\n" "шпинделю достичь его установленной скорости." -#: FlatCAMCommon.py:610 +#: FlatCAMCommon.py:611 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." @@ -2052,7 +2063,7 @@ msgstr "" "Время задержки.\n" "Задержка, позволяющая шпинделю достигать заданной скорости." -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" @@ -2062,7 +2073,7 @@ msgstr "" "Выбор файлов, которые изменят полученный G-code\n" "чтобы соответствовать в ряде случаев использования." -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -2077,7 +2088,23 @@ msgstr "" "так чтобы эта точка была покрыта этим дополнительным разрезом, для\n" "обеспечения полной изоляции." -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +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 "" +"Длина дополнительного среза.\n" +"Если проверено, после завершения изоляции дополнительный разрез\n" +"будут добавлены, где встречаются начало и конец изоляции\n" +"такой, что эта точка покрыта этим дополнительным разрезом\n" +"обеспечить полную изоляцию. Это длина\n" +"дополнительный разрез." + +#: FlatCAMCommon.py:631 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -2089,7 +2116,7 @@ msgstr "" "Вид смены инструмента определяется\n" "в файле препроцессора." -#: FlatCAMCommon.py:628 +#: FlatCAMCommon.py:636 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -2101,7 +2128,7 @@ msgstr "" "Определит положение точки в картезианском поле.\n" "где происходит смена инструмента." -#: FlatCAMCommon.py:633 +#: FlatCAMCommon.py:641 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." @@ -2109,7 +2136,7 @@ msgstr "" "Z смены инструмента .\n" "Положение на плоскости Z, в котором происходит событие смены инструмента." -#: FlatCAMCommon.py:636 +#: FlatCAMCommon.py:644 msgid "" "Start Z.\n" "If it's left empty it will not be used.\n" @@ -2120,7 +2147,7 @@ msgstr "" "Положение на плоскости Z для перемещения сразу после начала выполнения " "задания." -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." @@ -2128,11 +2155,11 @@ msgstr "" "Z Конечная \n" "Положение на плоскости Z для перемещения сразу после остановки задания." -#: FlatCAMCommon.py:661 +#: FlatCAMCommon.py:669 msgid "Add Tool to Tools DB" msgstr "Добавить инструмент в БД" -#: FlatCAMCommon.py:663 +#: FlatCAMCommon.py:671 msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." @@ -2140,37 +2167,37 @@ msgstr "" "Добавляет новый инструмент в базу данных.\n" "Вы можете отредактировать его после добавления." -#: FlatCAMCommon.py:666 +#: FlatCAMCommon.py:674 msgid "Remove Tool from Tools DB" msgstr "Удалить инструмент из БД" -#: FlatCAMCommon.py:668 +#: FlatCAMCommon.py:676 msgid "Remove a selection of tools in the Tools Database." msgstr "Удаляет выбранные инструменты из базы данных." -#: FlatCAMCommon.py:670 +#: FlatCAMCommon.py:678 msgid "Export Tool DB" msgstr "Экспорт БД" -#: FlatCAMCommon.py:672 +#: FlatCAMCommon.py:680 msgid "Save the Tools Database to a custom text file." msgstr "Сохраняет базу данных инструментов в пользовательский текстовый файл." -#: FlatCAMCommon.py:674 +#: FlatCAMCommon.py:682 msgid "Import Tool DB" msgstr "Импорт БД" -#: FlatCAMCommon.py:676 +#: FlatCAMCommon.py:684 msgid "Load the Tools Database information's from a custom text file." msgstr "" "Загрузка информации базы данных инструментов из пользовательского текстового " "файла." -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" msgstr "Добавить инструмент из БД" -#: FlatCAMCommon.py:688 +#: FlatCAMCommon.py:696 msgid "" "Add a new tool in the Tools Table of the\n" "active Geometry object after selecting a tool\n" @@ -2180,238 +2207,249 @@ msgstr "" "активной геометрии после выбора инструмента\n" "в базе данных." -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 msgid "Could not load Tools DB file." msgstr "Не удалось загрузить файл БД." -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 msgid "Failed to parse Tools DB file." msgstr "Не удалось прочитать файл БД." -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" msgstr "Загрузка FlatCAM БД из" -#: FlatCAMCommon.py:744 +#: FlatCAMCommon.py:752 msgid "Add to DB" msgstr "Добавить в БД" -#: FlatCAMCommon.py:746 +#: FlatCAMCommon.py:754 msgid "Copy from DB" msgstr "Копировать из БД" -#: FlatCAMCommon.py:748 +#: FlatCAMCommon.py:756 msgid "Delete from DB" msgstr "Удалить из БД" -#: FlatCAMCommon.py:998 +#: FlatCAMCommon.py:1026 msgid "Tool added to DB." msgstr "Инструмент добавлен в БД." -#: FlatCAMCommon.py:1019 +#: FlatCAMCommon.py:1047 msgid "Tool copied from Tools DB." msgstr "Инструмент скопирован из БД." -#: FlatCAMCommon.py:1037 +#: FlatCAMCommon.py:1065 msgid "Tool removed from Tools DB." msgstr "Инструмент удален из БД." -#: FlatCAMCommon.py:1048 +#: FlatCAMCommon.py:1076 msgid "Export Tools Database" msgstr "Экспорт БД" -#: FlatCAMCommon.py:1051 -#| msgid "Tool Data" +#: FlatCAMCommon.py:1079 msgid "Tools_Database" msgstr "Tools_Database" -#: FlatCAMCommon.py:1058 +#: FlatCAMCommon.py:1086 msgid "FlatCAM Tools DB export cancelled." msgstr "Экспорт FlatCAM БД отменён." -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 msgid "Failed to write Tools DB to file." msgstr "Не удалось записать БД в файл." -#: FlatCAMCommon.py:1094 +#: FlatCAMCommon.py:1122 msgid "Exported Tools DB to" msgstr "Экспорт БД в" -#: FlatCAMCommon.py:1101 +#: FlatCAMCommon.py:1129 msgid "Import FlatCAM Tools DB" msgstr "Импорт FlatCAM БД" -#: FlatCAMCommon.py:1104 +#: FlatCAMCommon.py:1132 msgid "FlatCAM Tools DB import cancelled." msgstr "Импорт FlatCAM БД отменен." -#: FlatCAMCommon.py:1147 +#: FlatCAMCommon.py:1175 msgid "Saved Tools DB." msgstr "Сохраненные БД." -#: FlatCAMCommon.py:1293 +#: FlatCAMCommon.py:1322 msgid "No Tool/row selected in the Tools Database table" msgstr "В таблице БД не выбрано ни одного инструмента/строки" -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." msgstr "Отмена добавление инструмента из БД." -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "Имя изменено с" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "на" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "Смещение..." -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +msgid "Scaling could not be executed." +msgstr "Масштабирование не может быть выполнено." + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +msgid "Scale done." +msgstr "Масштаб сделан." + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "Масштабирование..." -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "Наклон..." -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 #: flatcamGUI/PreferencesUI.py:1123 flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "Базовый" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 #: flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "Расширенный" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "Буферизация solid геометрии" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 #: flatcamTools/ToolCopperThieving.py:1199 #: flatcamTools/ToolCopperThieving.py:1211 -#: flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 -#: flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 -#: flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 +#: flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 +#: flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "Буферизация" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "Готово" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "Изоляция..." -#: FlatCAMObj.py:1063 +#: FlatCAMObj.py:1078 msgid "Click on a polygon to isolate it." msgstr "Нажмите на полигон, чтобы изолировать его." -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 msgid "Added polygon" msgstr "Добавленный полигон" -#: FlatCAMObj.py:1097 +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 msgid "Click to add next polygon or right click to start isolation." msgstr "" "Щелкните, чтобы добавить следующий полигон, или щелкните правой кнопкой " "мыши, чтобы начать изоляцию." -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 msgid "Removed polygon" msgstr "Удалённый полигон" -#: FlatCAMObj.py:1110 +#: FlatCAMObj.py:1132 msgid "Click to add/remove next polygon or right click to start isolation." msgstr "" "Щелкните, чтобы добавить/удалить следующий полигон, или щелкните правой " "кнопкой мыши, чтобы начать изоляцию." -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." msgstr "Полигон не обнаружен в указанной позиции." -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." msgstr "Список одиночных полигонов пуст. Отмена." -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 -#: flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +msgid "No polygon in selection." +msgstr "Нет полигона в выборе." + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 +#: flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "Геометрия изоляции не может быть сгенерирована." -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "Создана геометрия изоляции" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "Вычитание геометрии" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "Создание отверстия" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "Всего отверстий" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "Всего пазов" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 msgid "Please select one or more tools from the list and try again." msgstr "" "Пожалуйста, выберите один или несколько инструментов из списка и попробуйте " "еще раз." -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "Сверло больше, чем размер отверстия. Отмена." -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 -#: flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 +#: flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "Инструменты" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "№ инструмента" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 -#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:736 +#: flatcamEditors/FlatCAMExcEditor.py:2967 flatcamGUI/ObjectUI.py:753 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 #: flatcamTools/ToolPcbWizard.py:76 flatcamTools/ToolProperties.py:396 #: flatcamTools/ToolProperties.py:449 flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "Диаметр" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "№ отверстия" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "№ паза" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "Инструмент для прорезания пазов больше, чем размер отверстия. Отмена." -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "" "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth" "\"]" @@ -2419,7 +2457,7 @@ msgstr "" "Неправильный формат значения для self.defaults[\"z_pdepth\"] или self." "options[\"z_pdepth\"]" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self." "options[\"feedrate_probe\"]" @@ -2427,101 +2465,91 @@ msgstr "" "Неправильный формат значения для self.defaults[\"feedrate_probe\"] или self." "options[\"feedrate_probe\"]" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "Генерация кода ЧПУ" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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" -"но теперь есть только одно значение, а не два. " - -#: FlatCAMObj.py:3794 +#: FlatCAMObj.py:3896 msgid "Add from Tool DB" msgstr "Добавить инструмент из БД" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 -#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2154 -#: flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 +#: flatcamGUI/FlatCAMGUI.py:1966 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "Копировать" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 #: flatcamEditors/FlatCAMExcEditor.py:2459 -#: flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 -#: flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 -#: flatcamTools/ToolNonCopperClear.py:1464 flatcamTools/ToolPaint.py:838 -#: flatcamTools/ToolPaint.py:1022 flatcamTools/ToolPaint.py:2094 +#: flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 +#: flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 +#: flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 +#: flatcamEditors/FlatCAMGeoEditor.py:1240 +#: flatcamTools/ToolNonCopperClear.py:1057 +#: flatcamTools/ToolNonCopperClear.py:1465 flatcamTools/ToolPaint.py:840 +#: flatcamTools/ToolPaint.py:1024 flatcamTools/ToolPaint.py:2096 #: flatcamTools/ToolSolderPaste.py:879 flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "Неправильно введен формат значения, используйте числа." -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "" "Пожалуйста, введите нужный диаметр инструмента в формате числа с плавающей " "точкой." -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "Инструмент добавлен в таблицу инструментов." -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "Добавлен инструмент по умолчанию. Введен неправильный формат значения." -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "Ошибка. Выберите инструмент для копирования." -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "Инструмент скопирован в таблицу инструментов." -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "Инструмент был изменён в таблице инструментов." -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "Ошибка. Выберите инструмент для удаления." -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "Инструмент был удален из таблицы инструментов." -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 msgid "Parameters for" msgstr "Параметры для" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "Эта Geometry не может быть обработана, так как это" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "геометрия" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "Ошибка. Инструмент не выбран в таблице инструментов ..." -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -2529,46 +2557,46 @@ msgstr "" "Смещение выбранного в таблице инструментов инструмента не указано.\n" "Добавьте смещение инструмента или измените тип смещения." -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "Разбор G-кода ..." -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "Разбор G-кода завершен..." -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "Закончена обработка G-кода" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "Обработка G-кода завершилась ошибкой" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "Отмена. Пустой файл, он не имеет геометрии" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "Разбор G-кода завершен..." -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "CNCjob создан" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "" "Коэффициент масштабирования должен быть числом: целочисленным или с " "плавающей запятой." -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "Масштабирование Geometry выполнено." -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in " "the Offset field." @@ -2576,11 +2604,11 @@ msgstr "" "Необходима пара значений (x,y). Возможно, вы ввели только одно значение в " "поле \"Смещение\"." -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "Смещение Geometry выполнено." -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y)\n" @@ -2590,77 +2618,77 @@ msgstr "" "y)\n" "но теперь есть только одно значение, а не два." -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "Базовый" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "Расширенный" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "Построение..." -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "Экспорт GCode ..." -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "Экспорт Machine Code отменен ..." -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "Файл Machine Code сохранён в" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "Машинный код загружен в редактор кода" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "CNCJob объект не может быть обработан, так как" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "CNCJob object" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "G-code не имеет кода единиц измерения: G20 или G21" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "Отмена. Пользовательский код смены инструмента включен, но он пуст." -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 msgid "Toolchange G-code was replaced by a custom code." msgstr "G-code смены инструмента был заменен на пользовательский код." -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "Нет такого файла или каталога" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "Сохранено в" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 msgid "" "The used preprocessor file has to have in it's name: 'toolchange_custom'" msgstr "Используемый файл постпроцессора должен иметь имя: 'toolchange_custom'" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "Это не файл постпроцессора." -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "Редактор сценариев" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "Редактор Document" @@ -2685,7 +2713,7 @@ msgstr "Применить язык ..." msgid "Object renamed from {old} to {new}" msgstr "Объект переименован из {old} в {new}" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "Причина ошибки" @@ -2733,7 +2761,7 @@ msgstr "Не удалось наклонить. Объект не выбран" msgid "There is no such parameter" msgstr "Такого параметра нет" -#: camlib.py:2366 +#: camlib.py:2368 msgid "" "The Cut Z parameter has positive value. It is the depth value to drill into " "material.\n" @@ -2747,36 +2775,46 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" "Параметр \"Глубина резания\" равен нулю. Обрезки не будет , пропускается файл" -#: camlib.py:2450 +#: camlib.py:2389 camlib.py:3409 +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:2458 msgid "Creating a list of points to drill..." msgstr "Создание списка точек для сверления ..." -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "Открытие G-Code" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "Запуск G-кода для инструмента с диаметром" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "Координаты G91 не реализованы" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "Загруженный файл Excellon не имеет отверстий" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "Создание G-кода завершено..." -#: camlib.py:3050 +#: camlib.py:3061 msgid "" "The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, " "y) \n" @@ -2786,7 +2824,7 @@ msgstr "" "y)\n" "но теперь есть только одно значение, а не два." -#: camlib.py:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "" "Cut_Z parameter is None or zero. Most likely a bad combinations of other " "parameters." @@ -2794,7 +2832,7 @@ msgstr "" "Параметр \"Глубина резания\" равен None или пуст. Скорее всего неудачное " "сочетание других параметров." -#: camlib.py:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 msgid "" "The Cut Z parameter has positive value. It is the depth value to cut into " "material.\n" @@ -2808,11 +2846,11 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "Параметр \"Отвод по Z\" равен None или пуст." -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel " "between cuts.\n" @@ -2826,36 +2864,36 @@ msgstr "" "что это опечатка, приложение преобразует значение в положительное. Проверьте " "полученный CNC code (Gcode и т. д.)." -#: camlib.py:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "Параметр \"Отвод по Z\" равен нулю. Это опасно, файл пропускается" -#: camlib.py:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "Индексация геометрии перед созданием G-Code..." -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "Открытие G-Code..." -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "Создание G-кода завершено" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "путей проложено" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "Ожидалась Geometry, получили" -#: camlib.py:3303 +#: camlib.py:3316 msgid "" "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "Попытка создать CNC Job из объекта Geometry без solid_geometry." -#: camlib.py:3343 +#: camlib.py:3356 msgid "" "The Tool Offset value is too negative to use for the current_geometry.\n" "Raise the value (in module) and try again." @@ -2863,35 +2901,35 @@ msgstr "" "Значение смещения инструмента слишком отрицательно для current_geometry.\n" "Увеличте значение (в модуле) и повторите попытку." -#: camlib.py:3604 +#: camlib.py:3618 msgid " paths traced." msgstr " путей проложено." -#: camlib.py:3632 +#: camlib.py:3646 msgid "There is no tool data in the SolderPaste geometry." msgstr "В геометрии SolderPaste нет данных инструмента." -#: camlib.py:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "Закончено создание G-кода паяльной пасты" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "путей проложено." -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "Разбор файла GCode. Количество строк" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "Создание геометрии из проанализированного файла GCode. " -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "Координаты G91 не реализованы ..." -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "Объединение геометрии из разбираемых сегментов геометрии" @@ -3004,8 +3042,8 @@ msgstr "" "изменения размера." #: flatcamEditors/FlatCAMExcEditor.py:983 -#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2879 -#: flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamEditors/FlatCAMExcEditor.py:1052 flatcamGUI/FlatCAMGUI.py:2892 +#: flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "Отменено." @@ -3030,7 +3068,7 @@ msgstr "Готово. Перемещение отверстий завершен msgid "Done. Drill(s) copied." msgstr "Готово. Отверстия скопированы." -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "Редактор Excellon" @@ -3039,13 +3077,13 @@ msgstr "Редактор Excellon" msgid "Name:" msgstr "Имя:" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "Таблица инструментов" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -3065,8 +3103,8 @@ msgstr "" "Добавляет/Удаляет инструмент в списоке инструментов\n" "для этого Excellon объекта ." -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "Диаметр нового инструмента" @@ -3094,7 +3132,7 @@ msgstr "" "Удаляет инструмент из списка инструментов\n" "в выбранной строке таблицы инструментов." -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "Изменить размер сверла" @@ -3118,8 +3156,8 @@ msgstr "Изменить" msgid "Resize drill(s)" msgstr "Изменить размер сверла" -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "Добавить массив отверстий" @@ -3143,17 +3181,17 @@ msgstr "Линейный" #: flatcamEditors/FlatCAMExcEditor.py:1634 #: flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "Круг" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "Количество отверстий" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "Укажите, сколько свёрел должно быть в массиве." @@ -3164,14 +3202,14 @@ msgstr "Укажите, сколько свёрел должно быть в м #: flatcamEditors/FlatCAMExcEditor.py:1927 #: flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 -#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2970 +#: flatcamEditors/FlatCAMGrbEditor.py:2773 flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "Направление" #: flatcamEditors/FlatCAMExcEditor.py:1663 #: flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -3187,8 +3225,8 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 #: flatcamEditors/FlatCAMGrbEditor.py:2733 flatcamGUI/PreferencesUI.py:1946 -#: flatcamGUI/PreferencesUI.py:2884 flatcamGUI/PreferencesUI.py:2979 -#: flatcamGUI/PreferencesUI.py:3032 flatcamGUI/PreferencesUI.py:4804 +#: flatcamGUI/PreferencesUI.py:2886 flatcamGUI/PreferencesUI.py:2981 +#: flatcamGUI/PreferencesUI.py:3034 flatcamGUI/PreferencesUI.py:4822 #: flatcamTools/ToolFilm.py:256 msgid "X" msgstr "X" @@ -3197,8 +3235,8 @@ msgstr "X" #: flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 #: flatcamEditors/FlatCAMGrbEditor.py:2734 flatcamGUI/PreferencesUI.py:1947 -#: flatcamGUI/PreferencesUI.py:2885 flatcamGUI/PreferencesUI.py:2980 -#: flatcamGUI/PreferencesUI.py:3033 flatcamGUI/PreferencesUI.py:4805 +#: flatcamGUI/PreferencesUI.py:2887 flatcamGUI/PreferencesUI.py:2982 +#: flatcamGUI/PreferencesUI.py:3035 flatcamGUI/PreferencesUI.py:4823 #: flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "Y" @@ -3214,10 +3252,10 @@ msgstr "Y" #: flatcamEditors/FlatCAMGrbEditor.py:2735 #: flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -3226,14 +3264,14 @@ msgstr "Угол" #: flatcamEditors/FlatCAMExcEditor.py:1676 #: flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "Шаг" #: flatcamEditors/FlatCAMExcEditor.py:1678 #: flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "Подача = Расстояние между элементами массива." @@ -3263,25 +3301,25 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 #: flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "CW" #: flatcamEditors/FlatCAMExcEditor.py:1720 #: flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "CCW" #: flatcamEditors/FlatCAMExcEditor.py:1724 #: flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "Угол, под которым расположен каждый элемент в круговом массиве." @@ -3297,16 +3335,16 @@ msgstr "" "Параметры для добавления прорези (отверстие овальной формы)\n" "либо один, либо как часть массива." -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "Длина" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "Длина = длина слота." -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -3346,11 +3384,11 @@ msgstr "" "Выберите тип массива пазов для создания.\n" "Это может быть линейный X (Y) или круговой" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "Количество пазов" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "Укажите, сколько пазов должно быть в массиве." @@ -3363,7 +3401,7 @@ msgstr "" "Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " "инструмент. " -#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "Добавлен новый инструмент с диаметром" @@ -3436,7 +3474,7 @@ msgid "Round" msgstr "Круглый" #: flatcamEditors/FlatCAMGeoEditor.py:96 -#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5971 +#: flatcamEditors/FlatCAMGrbEditor.py:2552 flatcamGUI/PreferencesUI.py:5989 #: flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "Квадратный" @@ -3459,7 +3497,7 @@ msgid "Full Buffer" msgstr "Полный буфер" #: flatcamEditors/FlatCAMGeoEditor.py:133 -#: flatcamEditors/FlatCAMGeoEditor.py:2760 flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamEditors/FlatCAMGeoEditor.py:2758 flatcamGUI/FlatCAMGUI.py:1658 #: flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "Буфер" @@ -3467,9 +3505,9 @@ msgstr "Буфер" #: flatcamEditors/FlatCAMGeoEditor.py:145 #: flatcamEditors/FlatCAMGeoEditor.py:162 #: flatcamEditors/FlatCAMGeoEditor.py:179 -#: flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 -#: flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 +#: flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" @@ -3480,7 +3518,7 @@ msgstr "" msgid "Font" msgstr "Шрифт" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "Tекст" @@ -3488,13 +3526,13 @@ msgstr "Tекст" msgid "Text Tool" msgstr "Текст" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "Диаметр инструмента" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -3502,19 +3540,16 @@ msgstr "" "Диаметр инструмента\n" "используемого в этой операции." -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "Частота перекрытия" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, python-format +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3524,9 +3559,6 @@ msgid "" msgstr "" "Какая часть ширины инструмента будет перекрываться за каждый проход " "инструмента.\n" -"Пример:\n" -"Здесь значение 0.25 означает 25%% от диаметра инструмента, указанного выше.\n" -"\n" "Отрегулируйте значение, начиная с более низких значений\n" "и увеличивая его, если области, которые должны быть нарисованы, все ещё\n" "не окрашены.\n" @@ -3535,17 +3567,17 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "Отступ" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3553,13 +3585,13 @@ msgid "" "be painted." msgstr "Расстояние, которое не закрашивать до края полигона." -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "Метод" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -3567,30 +3599,30 @@ msgstr "" "Алгоритм отрисовки полигона:
Стандартный: Фиксированный шаг внутрь." "
По кругу: От центра наружу." -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "Стандартный" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "От центра по кругу" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "Прямая линия" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "Подключение:" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" @@ -3599,12 +3631,12 @@ msgstr "" "Рисовать линии между результирующей сегментами\n" " для минимизации подъёма инструмента." -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "Контур:" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" "Cut around the perimeter of the polygon\n" @@ -3613,86 +3645,86 @@ msgstr "" "Обрезка по периметру полигона\n" "для зачистки неровных краёв." -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "Нарисовать" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 -#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 +#: flatcamTools/ToolPaint.py:41 flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "Рисование" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "Рисование отменено. Фугура не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:599 -#: flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 -#: flatcamEditors/FlatCAMGeoEditor.py:2846 flatcamGUI/PreferencesUI.py:3138 +#: flatcamEditors/FlatCAMGeoEditor.py:597 +#: flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 +#: flatcamEditors/FlatCAMGeoEditor.py:2844 flatcamGUI/PreferencesUI.py:3140 #: flatcamTools/ToolProperties.py:120 flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "Инструменты" -#: flatcamEditors/FlatCAMGeoEditor.py:610 -#: flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 +#: flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:751 -#: flatcamGUI/FlatCAMGUI.py:2195 flatcamTools/ToolTransform.py:371 +#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamGUI/FlatCAMGUI.py:762 +#: flatcamGUI/FlatCAMGUI.py:2207 flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "Трансформация" -#: flatcamEditors/FlatCAMGeoEditor.py:611 -#: flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 +#: flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 -#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5189 +#: flatcamEditors/FlatCAMGrbEditor.py:5077 flatcamGUI/PreferencesUI.py:5207 #: flatcamTools/ToolTransform.py:25 flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "Вращение" -#: flatcamEditors/FlatCAMGeoEditor.py:612 +#: flatcamEditors/FlatCAMGeoEditor.py:610 #: flatcamEditors/FlatCAMGrbEditor.py:5013 flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "Наклон/Сдвиг" -#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGeoEditor.py:611 #: flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 -#: flatcamGUI/FlatCAMGUI.py:2271 flatcamGUI/ObjectUI.py:92 -#: flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 +#: flatcamGUI/FlatCAMGUI.py:2284 flatcamGUI/ObjectUI.py:92 +#: flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "Масштаб" -#: flatcamEditors/FlatCAMGeoEditor.py:614 +#: flatcamEditors/FlatCAMGeoEditor.py:612 #: flatcamEditors/FlatCAMGrbEditor.py:5015 flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "Зеркалирование (отражение)" -#: flatcamEditors/FlatCAMGeoEditor.py:615 -#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:124 -#: flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGeoEditor.py:613 +#: flatcamEditors/FlatCAMGrbEditor.py:5016 flatcamGUI/ObjectUI.py:121 +#: flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "Смещение" -#: flatcamEditors/FlatCAMGeoEditor.py:628 -#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:698 -#: flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGeoEditor.py:626 +#: flatcamEditors/FlatCAMGrbEditor.py:5029 flatcamGUI/FlatCAMGUI.py:709 +#: flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "Редактор" -#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGeoEditor.py:658 #: flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "Угол:" -#: flatcamEditors/FlatCAMGeoEditor.py:662 -#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5199 +#: flatcamEditors/FlatCAMGeoEditor.py:660 +#: flatcamEditors/FlatCAMGrbEditor.py:5063 flatcamGUI/PreferencesUI.py:5217 #: flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" @@ -3705,7 +3737,7 @@ msgstr "" "Положительные числа для движения по часовой стрелке.\n" "Отрицательные числа для движения против часовой стрелки." -#: flatcamEditors/FlatCAMGeoEditor.py:678 +#: flatcamEditors/FlatCAMGeoEditor.py:676 #: flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" @@ -3716,17 +3748,17 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур." -#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:699 #: flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "Угол X:" -#: flatcamEditors/FlatCAMGeoEditor.py:703 -#: flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 +#: flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 -#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5218 -#: flatcamGUI/PreferencesUI.py:5232 flatcamTools/ToolCalibration.py:445 -#: flatcamTools/ToolCalibration.py:458 +#: flatcamEditors/FlatCAMGrbEditor.py:5124 flatcamGUI/PreferencesUI.py:5236 +#: flatcamGUI/PreferencesUI.py:5250 flatcamTools/ToolCalibration.py:508 +#: flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." @@ -3734,13 +3766,13 @@ msgstr "" "Угол наклона в градусах.\n" "Число с плавающей запятой между -360 и 359." -#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:712 #: flatcamEditors/FlatCAMGrbEditor.py:5115 flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "Наклон X" -#: flatcamEditors/FlatCAMGeoEditor.py:716 -#: flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 +#: flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 #: flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" @@ -3752,33 +3784,33 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур." -#: flatcamEditors/FlatCAMGeoEditor.py:721 +#: flatcamEditors/FlatCAMGeoEditor.py:719 #: flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "Угол Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:734 +#: flatcamEditors/FlatCAMGeoEditor.py:732 #: flatcamEditors/FlatCAMGrbEditor.py:5135 flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "Наклон Y" -#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGeoEditor.py:760 #: flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "Коэффициент X:" -#: flatcamEditors/FlatCAMGeoEditor.py:764 -#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGeoEditor.py:762 +#: flatcamEditors/FlatCAMGrbEditor.py:5165 flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "Коэффициент масштабирования по оси X." -#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:772 #: flatcamEditors/FlatCAMGrbEditor.py:5175 flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "Масштаб Х" -#: flatcamEditors/FlatCAMGeoEditor.py:776 -#: flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 +#: flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 #: flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" @@ -3790,28 +3822,28 @@ msgstr "" "Точка отсчета зависит от\n" "состояние флажка Scale Reference." -#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGeoEditor.py:779 #: flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "Коэффициент Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:783 -#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGeoEditor.py:781 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: flatcamEditors/FlatCAMGeoEditor.py:793 +#: flatcamEditors/FlatCAMGeoEditor.py:791 #: flatcamEditors/FlatCAMGrbEditor.py:5194 flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "Масштаб Y" -#: flatcamEditors/FlatCAMGeoEditor.py:802 -#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5268 +#: flatcamEditors/FlatCAMGeoEditor.py:800 +#: flatcamEditors/FlatCAMGrbEditor.py:5203 flatcamGUI/PreferencesUI.py:5286 #: flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "Ссылка" -#: flatcamEditors/FlatCAMGeoEditor.py:804 +#: flatcamEditors/FlatCAMGeoEditor.py:802 #: flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" @@ -3820,13 +3852,13 @@ msgstr "" "Масштабирует выбранные фигуры\n" "используя коэффициент X для обеих осей." -#: flatcamEditors/FlatCAMGeoEditor.py:810 -#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5276 +#: flatcamEditors/FlatCAMGeoEditor.py:808 +#: flatcamEditors/FlatCAMGrbEditor.py:5211 flatcamGUI/PreferencesUI.py:5294 #: flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "Эталон масштабирования" -#: flatcamEditors/FlatCAMGeoEditor.py:812 +#: flatcamEditors/FlatCAMGeoEditor.py:810 #: flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" @@ -3839,23 +3871,23 @@ msgstr "" "и центр самой большой ограничительной рамки\n" "выбранных фигур, если флажок снят." -#: flatcamEditors/FlatCAMGeoEditor.py:840 +#: flatcamEditors/FlatCAMGeoEditor.py:838 #: flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "Значение X:" -#: flatcamEditors/FlatCAMGeoEditor.py:842 +#: flatcamEditors/FlatCAMGeoEditor.py:840 #: flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "Значение для смещения по оси X." -#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:850 #: flatcamEditors/FlatCAMGrbEditor.py:5254 flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "Смещение Х" -#: flatcamEditors/FlatCAMGeoEditor.py:854 -#: flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 +#: flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 #: flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" @@ -3867,28 +3899,28 @@ msgstr "" "Точка отсчета - середина\n" "ограничительной рамки для всех выбранных фигур.\n" -#: flatcamEditors/FlatCAMGeoEditor.py:860 +#: flatcamEditors/FlatCAMGeoEditor.py:858 #: flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "Значение Y:" -#: flatcamEditors/FlatCAMGeoEditor.py:862 +#: flatcamEditors/FlatCAMGeoEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "Значение для смещения по оси Y." -#: flatcamEditors/FlatCAMGeoEditor.py:872 +#: flatcamEditors/FlatCAMGeoEditor.py:870 #: flatcamEditors/FlatCAMGrbEditor.py:5274 flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "Смещение Y" -#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:901 #: flatcamEditors/FlatCAMGrbEditor.py:5305 flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "Отразить по X" -#: flatcamEditors/FlatCAMGeoEditor.py:905 -#: flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 +#: flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 #: flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" @@ -3898,17 +3930,17 @@ msgstr "" "Отражает выбранные фигуры по оси X.\n" "Не создает новую фугуру." -#: flatcamEditors/FlatCAMGeoEditor.py:910 +#: flatcamEditors/FlatCAMGeoEditor.py:908 #: flatcamEditors/FlatCAMGrbEditor.py:5312 flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "Отразить по Y" -#: flatcamEditors/FlatCAMGeoEditor.py:918 +#: flatcamEditors/FlatCAMGeoEditor.py:916 #: flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "Точка отсчета" -#: flatcamEditors/FlatCAMGeoEditor.py:920 +#: flatcamEditors/FlatCAMGeoEditor.py:918 #: flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" @@ -3931,12 +3963,12 @@ msgstr "" "Или введите координаты в формате (x, y) в\n" "поле ввода и нажмите «Отразить по X (Y)»" -#: flatcamEditors/FlatCAMGeoEditor.py:932 +#: flatcamEditors/FlatCAMGeoEditor.py:930 #: flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "Точка:" -#: flatcamEditors/FlatCAMGeoEditor.py:934 +#: flatcamEditors/FlatCAMGeoEditor.py:932 #: flatcamEditors/FlatCAMGrbEditor.py:5336 flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -3948,7 +3980,7 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y." -#: flatcamEditors/FlatCAMGeoEditor.py:944 +#: flatcamEditors/FlatCAMGeoEditor.py:942 #: flatcamEditors/FlatCAMGrbEditor.py:5348 flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -3959,349 +3991,349 @@ msgstr "" "щелчка левой кнопкой мыши на холсте одновременно с нажатием\n" "клавиши SHIFT. Затем нажмите кнопку 'Добавить', чтобы вставить координаты." -#: flatcamEditors/FlatCAMGeoEditor.py:1059 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 #: flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "Трансформация отменена. Фигура не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:1260 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 #: flatcamEditors/FlatCAMGrbEditor.py:5657 msgid "No shape selected. Please Select a shape to rotate!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" -#: flatcamEditors/FlatCAMGeoEditor.py:1263 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 #: flatcamEditors/FlatCAMGrbEditor.py:5660 flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "Применение поворота" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 #: flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "Готово. Поворот выполнен." -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "Вращение не было выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 #: flatcamEditors/FlatCAMGrbEditor.py:5715 msgid "No shape selected. Please Select a shape to flip!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для переворота!" -#: flatcamEditors/FlatCAMGeoEditor.py:1312 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 #: flatcamEditors/FlatCAMGrbEditor.py:5718 flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "Применение отражения" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 #: flatcamEditors/FlatCAMGrbEditor.py:5758 flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "Отражение по оси Y завершено" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 #: flatcamEditors/FlatCAMGrbEditor.py:5767 flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "Отражение по оси Х завершёно" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "Операция переворота не была выполнена" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 #: flatcamEditors/FlatCAMGrbEditor.py:5789 msgid "No shape selected. Please Select a shape to shear/skew!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/наклона!" -#: flatcamEditors/FlatCAMGeoEditor.py:1370 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 #: flatcamEditors/FlatCAMGrbEditor.py:5792 flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "Применение наклона" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 #: flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "Наклон по оси X выполнен" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "Наклон по оси Y выполнен" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "Наклон не был выполнен" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 #: flatcamEditors/FlatCAMGrbEditor.py:5854 msgid "No shape selected. Please Select a shape to scale!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для масштабирования!" -#: flatcamEditors/FlatCAMGeoEditor.py:1418 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 #: flatcamEditors/FlatCAMGrbEditor.py:5857 flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "Применение масштабирования" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 #: flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "Масштабирование по оси X выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 #: flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "Масштабирование по оси Y выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "Операция масштабирования не была выполнена" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 #: flatcamEditors/FlatCAMGrbEditor.py:5915 msgid "No shape selected. Please Select a shape to offset!" msgstr "Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" -#: flatcamEditors/FlatCAMGeoEditor.py:1472 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 #: flatcamEditors/FlatCAMGrbEditor.py:5918 flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "Применение смещения" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 #: flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "Смещение формы по оси X выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 #: flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "Смещение формы по оси Y выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "Операция смещения не была выполнена" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 #: flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "Поворот ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1497 -#: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 +#: flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 #: flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 #: flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "Введите значение угла (градусы)" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 #: flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "Вращение фигуры выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "Вращение фигуры отменено" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 #: flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "Смещение по оси X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1516 -#: flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 +#: flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 #: flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "Введите значение расстояния" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 #: flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "Смещение формы по оси X выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "Смещение формы по оси X отменено" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 #: flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "Смещение по оси Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1544 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 #: flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "Смещение формы по оси Y выполнено" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "Смещение формы по оси Y отменено" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 #: flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "Наклон по оси X ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1561 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 #: flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "Наклон формы по оси X выполнен" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "Наклон формы по оси X отменён" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 #: flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "Наклон по оси Y ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1578 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 #: flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "Наклон формы по оси Y выполнен" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "Наклон формы по оси Y отменён" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 -#: flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 +#: flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 #: flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "Нажмите на центральную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1953 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 #: flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "Для завершения щелкните по периметру ..." -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "Готово. Добавление круга завершено." -#: flatcamEditors/FlatCAMGeoEditor.py:2018 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 #: flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "Нажмите на точку начала отсчета..." -#: flatcamEditors/FlatCAMGeoEditor.py:2020 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 #: flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "Нажмите на 3-ю точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2022 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 #: flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "Нажмите на конечную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2027 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 #: flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "Нажмите на конечную точку для завершения ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2029 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 #: flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "Нажмите на 2-ю точку для завершения ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2031 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 #: flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "Нажмите на центральную точку для завершения..." -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "Направление: %s" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 #: flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "Режим: Старт -> Стоп -> Центр. Нажмите на начальную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2056 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 #: flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "Режим: Точка1 -> Точка3 -> Точка2. Нажмите на Точку1 ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2059 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 #: flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "Режим: Центр -> Старт -> Стоп. Нажмите на центральную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "Готово. Дуга завершена." -#: flatcamEditors/FlatCAMGeoEditor.py:2217 -#: flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 +#: flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "Нажмите на 1-ый угол ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "Нажмите на противоположном углу для завершения ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "Готово. Прямоугольник завершен." -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 msgid "Click on next Point or click right mouse button to complete ..." msgstr "" "Нажмите на следующую точку или щелкните правой кнопкой мыши для " "завершения ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "Готово. Полигон завершен." -#: flatcamEditors/FlatCAMGeoEditor.py:2317 -#: flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 +#: flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 #: flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "Отступ на одну точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "Готово. Путь завершен." -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "Фигура не выбрана. Выберите фигуру для разделения" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "Готово. Полигоны разделены на линии." -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 msgid "MOVE: No shape selected. Select a shape to move" msgstr "ПЕРЕМЕЩЕНИЕ: Фигура не выбрана. Выберите фигуру для перемещения" -#: flatcamEditors/FlatCAMGeoEditor.py:2520 -#: flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." msgstr " Перемещение: Нажмите на исходную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr " Нажмите на конечную точку ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "Готово. Перемещение Geometry завершено." -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "Готово. Копирование Geometry завершено." -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "" "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. " "Error" @@ -4309,94 +4341,94 @@ msgstr "" "Шрифт не поддерживается. Поддерживаются только обычный, полужирный, курсив и " "полужирный курсив. Ошибка" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "Нет текста для добавления." -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr " Готово. Добавление текста завершено." -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "Создание геометрии буфера ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2768 -#: flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 +#: flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "Создание буфера отменено. Фигура не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:2793 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 #: flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "Готово. Создание буфера завершено." -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "Готово. Внутренний буфер создан." -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "Готово. Внешний буфер создан." -#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 #: flatcamEditors/FlatCAMGrbEditor.py:2087 msgid "Select a shape to act as deletion area ..." msgstr "Выберите фигуру в качестве области для удаления ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2890 -#: flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 +#: flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 #: flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "Кликните, что бы выбрать фигуру для стирания ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2919 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 #: flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "Нажмите для очистки ..." -#: flatcamEditors/FlatCAMGeoEditor.py:2949 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 #: flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "Готово. Действие инструмента стирания завершено.." -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "Создать геометрию окрашивания ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3006 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 #: flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "Преобразования фигуры ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "Редактирование MultiGeo Geometry, инструментом" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "с диаметром" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "Копирование отменено. Форма не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 -#: flatcamGUI/FlatCAMGUI.py:3388 flatcamGUI/FlatCAMGUI.py:3401 -#: flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 +#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3414 +#: flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "Нажмите на целевой точке." -#: flatcamEditors/FlatCAMGeoEditor.py:4330 -#: flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 +#: flatcamEditors/FlatCAMGeoEditor.py:4363 msgid "A selection of at least 2 geo items is required to do Intersection." msgstr "Выберите по крайней мере 2 geo элемента, что-бы сделать пересечение." -#: flatcamEditors/FlatCAMGeoEditor.py:4451 -#: flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 +#: flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an " "'inside' shape" @@ -4404,58 +4436,58 @@ msgstr "" "Отрицательное значение буфера не принимается. Используйте внутренний буфер " "для создания \"внутри\" формы" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 -#: flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 +#: flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "Ничего не выбрано для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4466 -#: flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 +#: flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "Недопустимое расстояние для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4490 -#: flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 +#: flatcamEditors/FlatCAMGeoEditor.py:4587 msgid "Failed, the result is empty. Choose a different buffer value." msgstr "Ошибка, результат нулевой. Выберите другое значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "Создана геометрия полного буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "Отрицательное значение буфера не принимается." -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 msgid "Failed, the result is empty. Choose a smaller buffer value." msgstr "Ошибка, результат нулевой. Выберите меньшее значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "Создана геометрия внутреннего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "Создана геометрия внешнего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "" "Окраска не выполнена. Значение перекрытия должно быть меньше 1,00 (100%%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "Ничего не выбрано для рисования." -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "Недопустимые значения для" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different method of Paint" @@ -4463,7 +4495,7 @@ msgstr "" "Окраска не выполнена. Попробуйте другую комбинацию параметров или другой " "способ рисования" -#: flatcamEditors/FlatCAMGeoEditor.py:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "Окраска завершена." @@ -4612,62 +4644,62 @@ msgstr "Готово. Перемещение отверстий завершен msgid "Done. Apertures copied." msgstr "Готово. Отверстия скопированы." -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "Редактор Gerber" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "Oтверстие" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "Таблица отверстий для объекта Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "Код" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "Тип" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 -#: flatcamGUI/PreferencesUI.py:6183 flatcamGUI/PreferencesUI.py:6212 -#: flatcamGUI/PreferencesUI.py:6314 flatcamTools/ToolCopperThieving.py:260 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 +#: flatcamGUI/PreferencesUI.py:6201 flatcamGUI/PreferencesUI.py:6230 +#: flatcamGUI/PreferencesUI.py:6332 flatcamTools/ToolCopperThieving.py:260 #: flatcamTools/ToolCopperThieving.py:300 flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "Размер" #: flatcamEditors/FlatCAMGrbEditor.py:2409 -#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:245 +#: flatcamEditors/FlatCAMGrbEditor.py:3755 flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "Диаметр" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "Индекс" #: flatcamEditors/FlatCAMGrbEditor.py:2415 -#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:251 +#: flatcamEditors/FlatCAMGrbEditor.py:2444 flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "Код отверстия" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "Тип отверстия: круг, прямоугольник, макросы и так далее" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "Размер отверстия:" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4775,9 +4807,9 @@ msgstr "" " - 'Скошенный:' угол-это линия, которая непосредственно соединяет элементы, " "встречающиеся в углу" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 -#: flatcamGUI/FlatCAMGUI.py:1935 flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 +#: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "Буфер" @@ -4853,8 +4885,8 @@ msgstr "Сбросить" msgid "Clear all the markings." msgstr "Очистить все маркировки." -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "Добавить массив контактных площадок" @@ -5078,9 +5110,9 @@ msgstr "Заменяет строку из поля «Найти» на стро msgid "String to replace the one in the Find box throughout the text." msgstr "Строка, заменяющая строку в поле поиска по всему тексту." -#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "Все" @@ -5143,7 +5175,7 @@ msgid "Code Editor content copied to clipboard ..." msgstr "Содержимое редактора кода скопировано в буфер обмена ..." #: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 -#: flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "Переключить бок. панель" @@ -5195,7 +5227,7 @@ msgstr "Document\tD" msgid "Will create a new, empty Document Object." msgstr "Создаёт новый объект Document." -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "Открыть" @@ -5204,15 +5236,15 @@ msgstr "Открыть" msgid "Open &Project ..." msgstr "Открыть &проект..." -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "Открыть &Gerber...\tCTRL+G" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "Открыть &Excellon ...\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "Открыть G-&Code ..." @@ -5232,22 +5264,22 @@ msgstr "Открыть недавние" msgid "Scripting" msgstr "Сценарии" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 -#: flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 +#: flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "Новый сценарий ..." -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 -#: flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 +#: flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "Открыть сценарий ..." -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 -#: flatcamGUI/FlatCAMGUI.py:2176 flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 +#: flatcamGUI/FlatCAMGUI.py:2188 flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "Выполнить сценарий ..." -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -5277,23 +5309,27 @@ msgstr "&DXF как объект Geometry ..." msgid "&DXF as Gerber Object ..." msgstr "&DXF как объект Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +msgid "HPGL2 as Geometry Object ..." +msgstr "HPGL2 как объект геометрии ..." + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "Экспорт" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "Экспорт &SVG ..." -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "Экспорт DXF ..." -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "Экспорт &PNG ..." -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" @@ -5303,11 +5339,11 @@ msgstr "" "сохраненное изображение будет содержать визуальную\n" "информацию, открытую в настоящее время в пространстве отрисовки FlatCAM." -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "Экспорт &Excellon ..." -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 msgid "" "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -5317,11 +5353,11 @@ msgstr "" "формат координат, единицы измерения и нули\n" "устанавливаются в Настройки -> Экспорт Excellon." -#: flatcamGUI/FlatCAMGUI.py:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "Экспорт &Gerber ..." -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 msgid "" "Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -5331,61 +5367,61 @@ msgstr "" "формат координат, единицы измерения и нули\n" "устанавливается в Настройки -> Экспорт Gerber." -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "Резервное копирование" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "Импортировать настройки из файла ..." -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "Экспортировать настройки в файл ..." -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 -#: flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 +#: flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "Сохранить" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "&Сохранить проект ..." -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "Сохранить проект &как ...\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "Сохранить к&опию проекта..." -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "В&ыход" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 -#: flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 +#: flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "Правка" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "Редактировать объект\tE" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "Закрыть редактор\tCTRL+S" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "Конвертация" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "&Объединить Geo/Gerber/Exc - > Geo" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -5399,30 +5435,30 @@ msgstr "" "- Geometry\n" "в новый комбинированный объект геометрии." -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "Объединить Excellon (s) - > Excellon" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 msgid "Merge a selection of Excellon objects into a new combo Excellon object." msgstr "" "Объединяет выбранные объекты Excellon в новый комбинированный объект " "Excellon." -#: flatcamGUI/FlatCAMGUI.py:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "Объединить Gerber(s) - > Gerber" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 msgid "Merge a selection of Gerber objects into a new combo Gerber object." msgstr "" "Объединяет выбранные объекты Gerber в новый комбинированный объект Gerber." -#: flatcamGUI/FlatCAMGUI.py:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "Преобразование Single в MultiGeo" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." @@ -5430,11 +5466,11 @@ msgstr "" "Преобразует объект Geometry из типа single_geometry\n" "в multi_geometry.." -#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "Преобразование Multi в SingleGeo" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." @@ -5442,697 +5478,702 @@ msgstr "" "Преобразует объект Geometry из типа multi_geometry\n" "в single_geometry.." -#: flatcamGUI/FlatCAMGUI.py:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "Конвертировать любой объект в Geo" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "Конвертировать любой объект в Gerber" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "&Копировать\tCTRL+C" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "&Удалить\tDEL" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "Ук&азать начало координат\tO" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "Перейти к\tJ" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "Единицы измерения\tQ" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "&Выбрать все\tCTRL+A" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "&Настройки\tSHIFT+P" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "Опции" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "&Вращение\tSHIFT+(R)" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "&Наклон по оси X\tSHIFT+X" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "Н&аклон по оси Y\tSHIFT+Y" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "Отразить по оси &X\tX" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "Отразить по оси &Y\tY" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "Просмотреть код\tALT+S" -#: flatcamGUI/FlatCAMGUI.py:369 -#| msgid "Tool Data" +#: flatcamGUI/FlatCAMGUI.py:380 msgid "Tools DataBase\tCTRL+D" msgstr "База данных\tCTRL+D" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "Вид" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "Включить все участки\tALT+1" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "Отключить все участки\tALT+2" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "Отключить не выбранные\tALT+3" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "&Вернуть масштаб\tV" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "&Увеличить\t=" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "&Уменьшить\t-" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "Перерисовать всё\tF5" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "Переключить редактор кода\tSHIFT+E" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "&Во весь экран\tALT+F10" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "&Рабочая область\tCTRL+F10" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "&Боковая панель\t`" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "&Привязка к сетке\tG" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "&Переключить линии сетки \tALT+G" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "&Оси\tSHIFT+G" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "Границы рабочего пространства\tSHIFT+W" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "Объекты" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "&Командная строка\tS" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "Помощь" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "Онлайн справка\tF1" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "Сообщить об ошибке" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "Спецификация Excellon" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "Спецификация Gerber" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "Список комбинаций клавиш\tF3" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "Канал YouTube\tF4" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "Добавить круг\tO" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "Добавить дугу\tA" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "Добавить прямоугольник\tR" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "Добавить полигон\tN" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "Добавить дорожку\tP" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "Добавить текст\tT" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "Объединение полигонов\tU" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "Пересечение полигонов\tE" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "Вычитание полигонов\tS" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "Вырезать дорожку\tX" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "Копировать Geom\tC" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "Удалить фигуру\tDEL" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "Переместить\tM" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "Буфер\tB" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "Рисование\tI" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "Трансформация\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "Привязка к углу\tK" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr ">Редактор Excellon<" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "Добавить группу свёрел\tA" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "Добавить сверло\tD" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "Добавить массив пазов\tQ" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "Добавить паз\tW" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "Изменить размер отверстия\tR" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "Копировать\tC" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "Удалить\tDEL" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "Переместить сверла\tM" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr ">Редактор Gerber<" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "Добавить площадку\tP" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "Добавить массив площадок\tA" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "Добавить маршрут\tT" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "Добавить регион\tN" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "Полигонизация\tALT+N" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "Добавить полукруг\tE" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "Добавить диск\tD" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "Буфер\tB" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "Масштабировать\tS" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "Обозначить области\tALT+A" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "Ластик\tCTRL+E" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "Трансформировать\tALT+R" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "Включить участок" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "Отключить участок" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "Создать CNC" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "Просмотреть код" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "Свойства" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "Панель файлов" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "Панель редактирования" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "Панель просмотра" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "Панель командной строки" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "Панель инструментов" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "Панель редактора Excellon" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "Панель редактора Geometry" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "Панель редактора Gerber" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "Панель сетки координат" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "Открыть проект" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "Сохранить проект" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "Создать Geometry" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "Создать Gerber" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "Создать Excellon" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "Сохранить объект и закрыть редактор" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "&Удалить" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 -#: flatcamGUI/FlatCAMGUI.py:1653 flatcamGUI/FlatCAMGUI.py:2157 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1665 flatcamGUI/FlatCAMGUI.py:2169 #: flatcamTools/ToolDistance.py:30 flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "Измеритель" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "Минимальное расстояние" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 -#: flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "Указать начало координат" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "Перейти к расположению" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "&Перерисовать объект" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "&Отключить все участки" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "Увеличить" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 -#: flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 +#: flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "Уменьшить" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 -#: flatcamGUI/FlatCAMGUI.py:1893 flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1905 flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "Вернуть масштаб" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "&Командная строка" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "2-х сторонняя плата" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 #: flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "Обрезка платы" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 -#: flatcamGUI/ObjectUI.py:550 flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 +#: flatcamGUI/ObjectUI.py:555 flatcamGUI/ObjectUI.py:1712 +#: flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "Очистка меди" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "Панелизация" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 #: flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "Плёнка" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "Паяльная паста" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 #: flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "Вычитатель" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "Правила" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 #: flatcamTools/ToolOptimal.py:34 flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "Оптимизация" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "Калькулятор" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 -#: flatcamGUI/FlatCAMGUI.py:2196 flatcamTools/ToolQRCode.py:43 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:2208 flatcamTools/ToolQRCode.py:43 #: flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "QR код" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 msgid "Copper Thieving Tool" msgstr "Copper Thieving" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 -#: flatcamGUI/FlatCAMGUI.py:2200 flatcamTools/ToolFiducials.py:33 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:2212 flatcamTools/ToolFiducials.py:33 #: flatcamTools/ToolFiducials.py:393 msgid "Fiducials Tool" msgstr "Контрольные точки" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 -#: flatcamGUI/FlatCAMGUI.py:818 flatcamGUI/FlatCAMGUI.py:2203 -#: flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 +msgid "Calibration Tool" +msgstr "Калькулятор" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 +#: flatcamGUI/FlatCAMGUI.py:830 flatcamGUI/FlatCAMGUI.py:2216 +#: flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "Выбрать" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "Добавить отверстие" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "Добавить массив отверстий" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1960 flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "Добавить паз" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "Добавить массив пазов" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 -#: flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 +#: flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "Изменить размер отверстия" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "Копировать отверстие" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "Удалить отверстие" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "Переместить отверстие" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "Добавить круг" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "Добавить дугу" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "Добавить прямоугольник" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "Добавить дорожку" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "Добавить полигон" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "Добавить текст" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "Добавить буфер" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "Нарисовать фигуру" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 -#: flatcamGUI/FlatCAMGUI.py:1910 flatcamGUI/FlatCAMGUI.py:1938 -#: flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 +#: flatcamGUI/FlatCAMGUI.py:1922 flatcamGUI/FlatCAMGUI.py:1950 +#: flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "Ластик" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "Сращение полигонов" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "Разделение полигонов" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "Пересечение полигонов" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "Вычитание полигонов" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "Вырезать путь" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "Копировать форму(ы)" -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "Удалить фигуру '-'" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 -#: flatcamGUI/FlatCAMGUI.py:1917 flatcamGUI/FlatCAMGUI.py:1942 -#: flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 +#: flatcamGUI/FlatCAMGUI.py:1929 flatcamGUI/FlatCAMGUI.py:1954 +#: flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "Переместить объект " -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "Добавить площадку" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 -#: flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 +#: flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "Добавить маршрут" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "Добавить регион" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 -#: flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 +#: flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "Полигонизация" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 -#: flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 +#: flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "Полукруг" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 -#: flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "Диск" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 -#: flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 +#: flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "Обозначить области" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 -#: flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1961 -#: flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 +#: flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:1973 +#: flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "Переместить" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "Привязка к сетке" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "Размер сетки по X" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "Размер сетки по Y" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." @@ -6140,66 +6181,63 @@ msgstr "" "Если активен, значение на Grid_X\n" "копируется в значение Grid_Y." -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "Привязка к углу" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "Макс. магнит расстояние" -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 -msgid "Project" -msgstr "Проект" - -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "Выбранное" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "Рабочая область" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "Основные" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "GERBER" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "GEOMETRY" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "CNC-JOB" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "ИНСТРУМЕНТЫ" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "ИНСТРУМЕНТЫ 2" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "УТИЛИТЫ" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "Импорт настроек" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -6213,11 +6251,11 @@ msgstr "" "FlatCAM автоматически создаёт файл factory_defaults\n" "при первом запуске. Не удаляйте этот файл." -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "Экспорт настроек" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." @@ -6225,23 +6263,23 @@ msgstr "" "Экспорт полного набора настроек FlatCAM в файл\n" "который сохраняется на жестком диске." -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "Открыть папку настроек" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 msgid "Open the folder where FlatCAM save the preferences files." msgstr "Открывает папку, в которой FlatCAM сохраняет файлы настроек." -#: flatcamGUI/FlatCAMGUI.py:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" msgstr "Применить" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." msgstr "Применение текущих настроек без сохранения в файл." -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." @@ -6249,532 +6287,532 @@ msgstr "" "Сохраняет текущие настройки в файле 'current_defaults'\n" "который является файлом, хранящим рабочие настройки по умолчанию." -#: flatcamGUI/FlatCAMGUI.py:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 msgid "Will not save the changes and will close the preferences window." msgstr "Закроет окно настроек без сохранения изменений." -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "ПОКАЗАТЬ СПИСОК КОМБИНАЦИЙ КЛАВИШ" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "Переключиться на вкладку \"Проект\"" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "Переключиться на вкладку \"Выбранное\"" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "Переключиться на вкладку свойств" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "Создать Gerber" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "Редактировать объект (если выбран)" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "Перейти к координатам" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "Создать Excellon" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "Переместить объект" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "Создать Geometry" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "Единицы измерения" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "Свойства" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "Поворот на 90 градусов по часовой стрелке" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "Панель командной строки" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 msgid "" "Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" msgstr "" "Добавить инструмент (во вкладках \"Выбранное\", \"Инструменты\" или " "инструменте рисования)" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "Отразить по оси X" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "Отразить по оси Y" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "Копировать объекты" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Open Tools Database" msgstr "Открыть БД" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "Открыть Excellon" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "Открыть Gerber" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "Новый проект" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "Импорт PDF" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "Сохранить проект как" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "Переключить рабочую область" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "Копировать имя объекта" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "Переключить редактор кода" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "Переключить ось" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 -#: flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 +#: flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "Минимальное расстояние" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "Открыть окно настроек" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "Поворот на 90 градусов против часовой стрелки" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "Запустить сценарий" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "Переключить рабочее пространство" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "Наклон по оси X" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "Наклон по оси Y" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "2-х сторонняя плата" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "Паяльная паста" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "Плёнка" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "Очистка от меди" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "Инструмент рисования" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "Проверка правил" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "Просмотреть код" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "Обрезка платы" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "Включить все участки" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "Отключить все участки" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "Отключить не выбранные" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "Во весь экран" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "Прервать текущее задание (корректно)" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "Открыть онлайн-руководство" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "Открыть онлайн-уроки" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "Обновить участки" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "Удалить объект" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "Альтернатива: Удалить инструмент" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "(слева от клавиши \"1\") Боковая панель" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "Включить/Отключить участок" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "Отмена выбора всех объектов" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "Список комбинаций клавиш редактора" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "РЕДАКТОР GEOMETRY" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "Нарисовать дугу" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "Копировать элемент Geo" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Within Add Arc will toogle the ARC direction: CW or CCW" msgstr "" "При добавлении дуги будет переключаться направление изгиба: по часовой " "стрелке или против" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "Пересечение полигонов" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "Рисование" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 -#: flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 +#: flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "Перейти к координатам (x, y)" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "Привязка к углу" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "Переместить элемент Geo" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Within Add Arc will cycle through the ARC modes" msgstr "При добавлении дуги будет переключаться между режимами дуги" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "Полигон" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "Круг" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "Нарисовать линию" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "Прямоугольник" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "Вычитание полигонов" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "Текст" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "Сращение полигонов" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "Отразить форму по оси X" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "Отразить форму по оси Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "Наклонить форму по оси X" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "Наклонить форму по оси Y" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "Смещение формы по оси X" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "Смещение формы по оси Y" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "Сохранить объект и закрыть редактор" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "Вычитание полигонов" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "Повернуть геометрию" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "Завершить рисование для некоторых инструментов" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "Прервать и вернуться к выбору" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "Удалить фигуру" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "РЕДАКТОР EXCELLON" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "Копировать отверстие" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "Добавить сверло" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "Переместить отверстие" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "Добавить инструмент" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "Удалить отверстие" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "Альтернатива: Удалить инструмент(ы)" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "РЕДАКТОР GERBER" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "Добавить круг" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "Добавить полукруг" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" msgstr "" "В пределах трека и региона инструмент будет работать в обратном режиме изгиба" -#: flatcamGUI/FlatCAMGUI.py:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 msgid "Within Track & Region Tools will cycle FORWARD the bend modes" msgstr "" "В пределах трека и региона инструмент будет циклически изменять режимы изгиба" -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "Альтернатива: Удалить отверстия" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "Ластик" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "Инструмент «Обозначить область»" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "Полигонизация" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "Переключить видимость" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "Создать" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "Geometry" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "Excellon" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "Сетка" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "Отключить все участки" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "Перерисовать" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "Редактор Geo" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "Дорожка" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "Прямоугольник" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "Круг" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "Полигон" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "Дуга" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "Объединение" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "Пересечение" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "Вычитание" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "Вырезы" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "Площадка" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "Массив площадок" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "Трек" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "Регион" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "Редактор Excellon" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" @@ -6782,7 +6820,7 @@ msgstr "" "Относительное измерение.\n" "Ссылка-это позиция последнего клика" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" @@ -6790,27 +6828,27 @@ msgstr "" "Абсолютное измерение.\n" "Ссылка (X=0, Y= 0) Положение" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "Заблокировать панели" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "&Обрезка платы" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "Выбор 'Esc'" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "Копировать объекты" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "Переместить объект" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6822,12 +6860,12 @@ msgstr "" "из первого пункта. В конце нажмите клавишу ~X~ или\n" "кнопка панели инструментов." -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 -#: flatcamGUI/FlatCAMGUI.py:3010 flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 +#: flatcamGUI/FlatCAMGUI.py:3023 flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "Внимание" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." @@ -6835,7 +6873,7 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполняется инструмент пересечение." -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." @@ -6843,7 +6881,7 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполнить вычитание инструмента." -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." @@ -6851,52 +6889,52 @@ msgstr "" "Пожалуйста, выберите элементы геометрии \n" "на котором выполнять объединение." -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "Отмена. Ничего не выбрано для удаления." -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "Отмена. Ничего не выбрано для копирования." -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "Отмена. Ничего не выбрано для перемещения." -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "Новый инструмент ..." -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "Введите диаметр инструмента" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "Добавление инструмента отменено ..." -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "Измеритель закрыт ..." -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "Нет заданий." -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "Приложение запущено ..." -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "Приветствую!" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "Открыть проект..." -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "Выход" @@ -6933,85 +6971,89 @@ msgstr "Коэффициент" #: flatcamGUI/ObjectUI.py:102 msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" msgstr "" "Коэффециент увеличения\n" -"масштаба объекта." +"масштаба объекта.\n" +"Выражения разрешены. Например: 1 / 25.4" -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "Будет выполнена операция масштабирования." -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "Смена положения этого объекта." -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "Вектор" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" msgstr "" "Расстояние на которое можно переместить объект\n" -"по осям X и Y в формате (x, y)." +"по осям X и Y в формате (x, y).\n" +"Выражения разрешены. Например: (1/3.2, 0.5*3)" -#: flatcamGUI/ObjectUI.py:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "Будет произведено смещение на заданное расстояние." -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "Объект Gerber" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 -#: flatcamGUI/ObjectUI.py:1083 flatcamGUI/ObjectUI.py:1663 -#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 -#: flatcamGUI/PreferencesUI.py:3110 flatcamGUI/PreferencesUI.py:3599 -msgid "Plot Options" -msgstr "Отрисовка" - -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 -#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 -#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:190 -msgid "Solid" -msgstr "Сплошной" - -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 -msgid "Solid color polygons." -msgstr "Сплошной цвет полигонов." - -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" -msgstr "Разноцветные" - -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 -msgid "Draw polygons in different colors." -msgstr "Окрашивать полигоны разными цветами." - -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 -#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 -#: flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "Отображать" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 -#: flatcamGUI/ObjectUI.py:1129 flatcamGUI/ObjectUI.py:1773 -#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3116 -#: flatcamGUI/PreferencesUI.py:3610 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 +#: flatcamGUI/ObjectUI.py:1166 flatcamGUI/ObjectUI.py:1855 +#: flatcamGUI/PreferencesUI.py:1360 flatcamGUI/PreferencesUI.py:3118 +#: flatcamGUI/PreferencesUI.py:3628 msgid "Plot (show) this object." msgstr "Начертить (отобразить) этот объект." -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 -#: flatcamGUI/ObjectUI.py:1089 flatcamGUI/ObjectUI.py:1693 -#: flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/PreferencesUI.py:1358 flatcamGUI/PreferencesUI.py:2084 +#: flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "Отображать" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 +#: flatcamGUI/ObjectUI.py:1120 flatcamGUI/ObjectUI.py:1745 +#: flatcamGUI/PreferencesUI.py:1337 flatcamGUI/PreferencesUI.py:2078 +#: flatcamGUI/PreferencesUI.py:3112 flatcamGUI/PreferencesUI.py:3617 +msgid "Plot Options" +msgstr "Отрисовка" + +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 +#: flatcamGUI/PreferencesUI.py:1344 flatcamGUI/PreferencesUI.py:2090 +#: flatcamGUI/PreferencesUI.py:6153 flatcamTools/ToolCopperThieving.py:190 +msgid "Solid" +msgstr "Сплошной" + +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 +msgid "Solid color polygons." +msgstr "Сплошной цвет полигонов." + +#: flatcamGUI/ObjectUI.py:192 +msgid "Multi-Color" +msgstr "многоцветный" + +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 +msgid "Draw polygons in different colors." +msgstr "Окрашивать полигоны разными цветами." + +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 +#: flatcamGUI/ObjectUI.py:1126 flatcamGUI/ObjectUI.py:1775 +#: flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "Имя" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 msgid "" "Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" @@ -7021,11 +7063,11 @@ msgstr "" "Когда флажок снят, он удалит все отмеченные фигуры\n" "которые отображены на холсте." -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "Отметить все" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 msgid "" "When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" @@ -7035,15 +7077,15 @@ msgstr "" "Когда флажок снят, он удалит все отмеченные фигуры\n" "которые нарисованы на холсте." -#: flatcamGUI/ObjectUI.py:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "Отметьте экземпляры диафрагмы на холсте." -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "Изоляция разводки" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." @@ -7052,7 +7094,7 @@ msgstr "" "с траекториям обрезки за\n" "пределами полигонов." -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -7064,30 +7106,30 @@ msgstr "" "Когда выбрана \"V-образная форма\", то диаметр инструмента\n" "будет зависеть от выбранной глубины резания." -#: flatcamGUI/ObjectUI.py:296 +#: flatcamGUI/ObjectUI.py:301 msgid "V-Shape" msgstr "V-образная форма" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 -#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:3992 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 +#: flatcamGUI/PreferencesUI.py:1640 flatcamGUI/PreferencesUI.py:4010 #: flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "Диаметр V-наконечника" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 -#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:3994 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 +#: flatcamGUI/PreferencesUI.py:1642 flatcamGUI/PreferencesUI.py:4012 #: flatcamTools/ToolNonCopperClear.py:233 msgid "The tip diameter for V-Shape Tool" msgstr "Диаметр наконечника для V-образного инструмента" -#: flatcamGUI/ObjectUI.py:315 flatcamGUI/ObjectUI.py:1313 -#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4004 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 +#: flatcamGUI/PreferencesUI.py:1653 flatcamGUI/PreferencesUI.py:4022 #: flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "Угол V-наконечника" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 -#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4006 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 +#: flatcamGUI/PreferencesUI.py:1655 flatcamGUI/PreferencesUI.py:4024 #: flatcamTools/ToolNonCopperClear.py:244 msgid "" "The tip angle for V-Shape Tool.\n" @@ -7096,9 +7138,9 @@ msgstr "" "Угол наклона наконечника для V-образного инструмента.\n" "В степенях." -#: flatcamGUI/ObjectUI.py:331 flatcamGUI/ObjectUI.py:1332 -#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3179 -#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCutOut.py:135 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 +#: flatcamGUI/PreferencesUI.py:1668 flatcamGUI/PreferencesUI.py:3181 +#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7106,7 +7148,7 @@ msgstr "" "Глубина резания (отрицательная)\n" "ниже слоя меди." -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -7120,11 +7162,11 @@ msgstr "" "функцию, используйте отрицательное значение для\n" "этот параметр." -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "# Проходы" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." @@ -7132,24 +7174,24 @@ msgstr "" "Ширина промежутка изоляции в \n" "числах (целое число) ширины инструмента." -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "Перекрытие" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "" "Размер части ширины инструмента, который будет перекрываться за каждый " "проход." -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "Тип фрезерования" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 msgid "" "Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" @@ -7160,29 +7202,29 @@ msgstr "" "использования инструмента\n" "- conventional / полезен, когда нет компенсации люфта" -#: flatcamGUI/ObjectUI.py:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "Постепенный" -#: flatcamGUI/ObjectUI.py:394 +#: flatcamGUI/ObjectUI.py:399 msgid "Conventional" msgstr "Обычный" -#: flatcamGUI/ObjectUI.py:399 +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "Комбинировать" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "Объединить все проходы в один объект" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "\"Следовать\"" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" @@ -7192,11 +7234,11 @@ msgstr "" "Это означает, что он будет прорезать\n" "середину трассы." -#: flatcamGUI/ObjectUI.py:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "Исключение" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" @@ -7206,12 +7248,12 @@ msgstr "" "включив это, площадь объекта ниже\n" "будет вычтена из геометрии изоляции." -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "Тип объекта" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -7223,22 +7265,22 @@ msgstr "" "То, что выбрано здесь будет диктовать вид\n" "объектов, которые будут заполнять поле со списком \"объект\"." -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "Объект" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 msgid "Object whose area will be removed from isolation geometry." msgstr "Объект, площадь которого будет удалена из геометрии изоляции." -#: flatcamGUI/ObjectUI.py:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" msgstr "Масштаб" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 msgid "" "Isolation scope. Choose what to isolate:\n" "- 'All' -> Isolate all the polygons in the object\n" @@ -7248,16 +7290,16 @@ msgstr "" "- 'Все' -> Изолировать все полигоны в объекте.\n" "- 'Выделенные' -> Изолировать выделенные полигоны." -#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "Выбор" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 msgid "Isolation Type" msgstr "Тип изоляции" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -7277,24 +7319,24 @@ msgstr "" "изоляция может быть выполнена только при наличии проема.\n" "внутри полигона (например, полигон имеет форму \"пончика\")." -#: flatcamGUI/ObjectUI.py:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "Полная" -#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/ObjectUI.py:492 msgid "Ext" msgstr "Наруж" -#: flatcamGUI/ObjectUI.py:488 +#: flatcamGUI/ObjectUI.py:493 msgid "Int" msgstr "Внутр" -#: flatcamGUI/ObjectUI.py:493 +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "Создать геометрию изоляции" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -7316,11 +7358,11 @@ msgstr "" "внутри фактической функции Gerber используйте отрицательный инструмент\n" "диаметр выше." -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "Буферизация solid геометрии" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -7332,11 +7374,11 @@ msgstr "" "Включив это, вы создадите буферную геометрию\n" "требуемую для изоляции." -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "Очистка меди" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." @@ -7344,7 +7386,8 @@ msgstr "" "Создание объекта геометрии с помощью\n" "траектории резания для всех областей, отличных от меди." -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." @@ -7352,11 +7395,11 @@ msgstr "" "Создаёт объект геометрии\n" "для безмедного полигона." -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "Обрезка контура платы" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7365,7 +7408,7 @@ msgstr "" "Создание траектории обрезки печатной платы и отделения её от\n" "заготовки." -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." @@ -7373,11 +7416,11 @@ msgstr "" "Будет создан объект геометрии\n" "для обрезки контура." -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "Безмедные полигоны" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -7391,12 +7434,12 @@ msgstr "" "объекта может использоваться для удаления всей\n" "меди из указанного региона." -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 #: flatcamGUI/PreferencesUI.py:1534 flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "Отступ от границы" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -7408,27 +7451,27 @@ msgstr "" "объектов с этим минимальным\n" "расстоянием." -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 #: flatcamGUI/PreferencesUI.py:1549 flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "Закруглять" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "Полученная геометрия будет иметь закругленные углы." -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 #: flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "Создать" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "Ограничительная рамка" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." @@ -7436,7 +7479,7 @@ msgstr "" "Создаст геометрию, окружающую объект Gerber.\n" "Квадратная форма." -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." @@ -7444,7 +7487,7 @@ msgstr "" "Расстояние от края поля\n" "до ближайшего полигона." -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -7456,32 +7499,33 @@ msgstr "" "их радиус будет равен\n" "отступу." -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "Будет создан объект геометрии." -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "Объект Excellon" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "Сплошные круги." -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "Отверстия" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 -#: flatcamTools/ToolProperties.py:162 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:2952 flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "Пазы" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "Смещение Z" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7496,7 +7540,7 @@ msgstr "" "\n" "Здесь выбираются инструменты для генерации G-кода." -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 #: flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" @@ -7505,7 +7549,7 @@ msgstr "" "Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" "ширины разреза в материале." -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -7513,7 +7557,7 @@ msgstr "" "Количество просверленных отверстий. Отверстия, которые сверлят с помощью\n" "сверло." -#: flatcamGUI/ObjectUI.py:752 +#: flatcamGUI/ObjectUI.py:769 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -7521,7 +7565,7 @@ msgstr "" "Количество щелевых отверстий. Отверстия, которые создаются\n" "фрезы с фрезы бит." -#: flatcamGUI/ObjectUI.py:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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" @@ -7531,7 +7575,7 @@ msgstr "" "создать необходимый диаметр выходного отверстия за счет формы наконечника.\n" "Значение здесь может компенсировать Cut Z параметра." -#: flatcamGUI/ObjectUI.py:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." @@ -7539,18 +7583,18 @@ msgstr "" "Переключение отображения сверл для текущего инструмента.\n" "При этом не выбираются инструменты для генерации G-кода." -#: flatcamGUI/ObjectUI.py:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "Создание программы для ЧПУ" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." msgstr "Создание G-Code для объекта сверловки." -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -7558,7 +7602,7 @@ msgstr "" "Глубина сверления (отрицательная) \n" "ниже слоя меди." -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -7566,12 +7610,12 @@ msgstr "" "Отвод инструмента при холостом ходе\n" "по плоскости XY." -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 -#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 +#: flatcamGUI/PreferencesUI.py:2369 flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "Смена инструмента" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -7579,23 +7623,23 @@ msgstr "" "Включает последовательность смены инструмента\n" "в G-Code (Пауза для смены инструмента)." -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "Смена инструмента Z" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 -#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 +#: flatcamGUI/PreferencesUI.py:2380 flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "Отвод по оси Z для смены инструмента." -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "Начать движение Z" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." @@ -7603,13 +7647,13 @@ msgstr "" "Высота инструмента сразу после запуска.\n" "Удалить значение если вам не нужна эта функция." -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 -#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 +#: flatcamGUI/PreferencesUI.py:2395 flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "Высота отвода Z" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 -#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 +#: flatcamGUI/PreferencesUI.py:2397 flatcamGUI/PreferencesUI.py:3288 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -7617,13 +7661,13 @@ msgstr "" "Высота инструмента после\n" "последнего прохода в конце задания." -#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1469 -#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3319 -#: flatcamGUI/PreferencesUI.py:5479 flatcamTools/ToolSolderPaste.py:264 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 +#: flatcamGUI/PreferencesUI.py:2412 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/PreferencesUI.py:5497 flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "Скорость подачи Z" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7635,12 +7679,12 @@ msgstr "" "Так называемая подача «Погружения».\n" "Используется для линейного перемещения G01." -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 -#: flatcamGUI/PreferencesUI.py:2583 flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 +#: flatcamGUI/PreferencesUI.py:2585 flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "Пороги скорости подачи" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -7654,12 +7698,12 @@ msgstr "" "Полезно только для Marlin,\n" "игнорировать для любых других случаев." -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 -#: flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 +#: flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "Скорость вращения шпинделя" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -7667,8 +7711,8 @@ msgstr "" "Скорость шпинделя\n" "в оборотах в минуту(опционально) ." -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 -#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 +#: flatcamGUI/PreferencesUI.py:2441 flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7676,12 +7720,12 @@ msgstr "" "Задержка для набора оборотов шпинделя\n" "перед началом обработки." -#: flatcamGUI/ObjectUI.py:931 flatcamGUI/ObjectUI.py:1541 -#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 +#: flatcamGUI/PreferencesUI.py:2446 flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "Количество единиц времени для остановки шпинделя." -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." @@ -7689,13 +7733,13 @@ msgstr "" "JSON-файл постпроцессора, который влияет\n" "на Gcode." -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 -#: flatcamGUI/PreferencesUI.py:2599 flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 +#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "Глубина зондирования Z" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 -#: flatcamGUI/PreferencesUI.py:2601 flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 +#: flatcamGUI/PreferencesUI.py:2603 flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7703,21 +7747,21 @@ msgstr "" "Максимальная глубина, допустимая для зонда.\n" "Отрицательное значение в текущих единицах." -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 -#: flatcamGUI/PreferencesUI.py:2612 flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 +#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "Датчик скорости подачи" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 -#: flatcamGUI/PreferencesUI.py:2614 flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 +#: flatcamGUI/PreferencesUI.py:2616 flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "Скорость подачи, используемая во время зондирования." -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "GCode" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -7729,19 +7773,19 @@ msgstr "" "При выборе \"Пазы\" или \"Оба\", пазы будут\n" "преобразованы в массив отверстий." -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "Создать GCode отверстий" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "Создание программы для ЧПУ." -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "Фрезеровка отверстий" -#: flatcamGUI/ObjectUI.py:1019 +#: flatcamGUI/ObjectUI.py:1044 msgid "" "Create Geometry for milling holes.\n" "Select from the Tools Table above the hole dias to be\n" @@ -7751,20 +7795,20 @@ msgstr "" "отверстия, которые должны быть фрезерованы.\n" "Используйте столбец #, чтобы сделать выбор." -#: flatcamGUI/ObjectUI.py:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "Диаметр сверла" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "Диаметр режущего инструмента." -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "Создать геометрию" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." @@ -7772,11 +7816,11 @@ msgstr "" "Создание объекта Geometry \n" "для траектории фрезерования отверстий." -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "Диаметр инструмента шлица" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." @@ -7784,11 +7828,11 @@ msgstr "" "Диаметр режущего инструмента\n" "при фрезеровании пазов." -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "Создать геометрию" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." @@ -7796,11 +7840,11 @@ msgstr "" "Создание объекта геометрии\n" "траекторий для инструмента фрезерования пазов." -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "Объект Geometry" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -7829,22 +7873,23 @@ msgstr "" "показал пользовательский интерфейс записи форма имени Вольт-Совет диаметр и " "V-наконечник угол." -#: flatcamGUI/ObjectUI.py:1127 flatcamGUI/ObjectUI.py:1771 -#: flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 +#: flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "Рисовать объекты" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 -#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 +#: flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:6172 +#: flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "Диаметр" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "TT" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -7855,7 +7900,7 @@ msgstr "" "значение\n" "будет показано, как Т1, Т2 ... Теннесси" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 msgid "" "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry " @@ -7872,7 +7917,7 @@ msgstr "" "- Out (side) -> Резец инструмента будет следовать геометрической линии " "снаружи." -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 msgid "" "The (Operation) Type has only informative value. Usually the UI form " "values \n" @@ -7895,7 +7940,7 @@ msgstr "" "Для изоляции нам нужна более низкая скорость подачи, так как она использует " "фрезерное долото с мелким наконечником." -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " @@ -7926,7 +7971,7 @@ msgstr "" "При выборе типа инструмента V-образная форма автоматически будет выбран тип " "операции как изоляция." -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -7944,7 +7989,7 @@ msgstr "" "отключить участок на холсте\n" "для соответствующего инструмента." -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -7956,7 +8001,7 @@ msgstr "" "Значение может быть положительным для \"снаружи\"\n" "вырезать и отрицательный для \"внутри\" вырезать." -#: flatcamGUI/ObjectUI.py:1230 +#: flatcamGUI/ObjectUI.py:1267 msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." @@ -7964,11 +8009,11 @@ msgstr "" "Добавление нового инструмента в таблицу инструментов\n" "с диаметром, указанным выше." -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" msgstr "Добавить инструмент из БД" -#: flatcamGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1277 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." @@ -7976,7 +8021,7 @@ msgstr "" "Добавление нового инструмента в таблицу инструментов\n" "из БД." -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7984,7 +8029,7 @@ msgstr "" "Копирование выбранных инструментов в таблице инструментов\n" "сначала выберите строку в таблице инструментов." -#: flatcamGUI/ObjectUI.py:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." @@ -7992,7 +8037,7 @@ msgstr "" "Удаление выбранных инструментов в таблице инструментов\n" "сначала выберите строку в таблице инструментов." -#: flatcamGUI/ObjectUI.py:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." @@ -8000,13 +8045,13 @@ msgstr "" "Данные, используемые для создания кода.\n" "Каждый инструмент хранит свой собственный набор таких данных." -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "Мультипроход" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -8018,18 +8063,18 @@ msgstr "" "сократить несколько раз, пока Cut Z не станет\n" "достиг." -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "Глубина каждого прохода (положительный)." -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "Высота отвода инструмента при холостом ходе." -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." @@ -8037,12 +8082,12 @@ msgstr "" "Включить последовательность смены инструмента\n" "в машинном коде (пауза для смены инструмента)." -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "Скорость подачи X-Y" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -8050,7 +8095,7 @@ msgstr "" "Скорость резания в плоскости XY\n" "в единицах в минуту" -#: flatcamGUI/ObjectUI.py:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" @@ -8060,7 +8105,7 @@ msgstr "" "самолет в единицах в минуту.\n" "Это называется также Плунге." -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -8074,11 +8119,12 @@ msgstr "" "Это полезно только для Марлина,\n" "игнорировать для любых других случаев." -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." -msgstr "Повторно вырезать 1-й пт." +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +msgid "Re-cut" +msgstr "Перерезать" -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 +#: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -8090,7 +8136,7 @@ msgstr "" "встреча с последним отрезком, мы генерируем\n" "расширенный разрез по первой секции разреза." -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" @@ -8100,12 +8146,12 @@ msgstr "" "Если используется лазерный постпроцессор,\n" "это значение - мощность лазера." -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "Постпроцессор" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." @@ -8113,11 +8159,11 @@ msgstr "" "Файл постпроцессора, который диктует\n" "вывод машинного кода (например, кода, RML, HPGL)." -#: flatcamGUI/ObjectUI.py:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" msgstr "Применить параметры ко всем инструментам" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." @@ -8125,7 +8171,7 @@ msgstr "" "Параметры в текущей форме будут применены\n" "для всех инструментов из таблицы инструментов." -#: flatcamGUI/ObjectUI.py:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" @@ -8135,19 +8181,19 @@ msgstr "" "Щелкните заголовок, чтобы выбрать все, или Ctrl + LMB\n" "для пользовательского выбора инструментов." -#: flatcamGUI/ObjectUI.py:1616 +#: flatcamGUI/ObjectUI.py:1670 msgid "Generate CNCJob object" msgstr "Создать объект CNCJob" -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "Будет создан объект программы для ЧПУ." -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" -msgstr "Область рисования" +#: flatcamGUI/ObjectUI.py:1689 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Запускает инструмент рисования во вкладке Инструменты." -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -8158,19 +8204,15 @@ msgstr "" "всей площади полигона(удаляется вся медь).\n" "Будет предложено нажать на нужный полигон." -#: flatcamGUI/ObjectUI.py:1639 -msgid "Launch Paint Tool in Tools Tab." -msgstr "Запускает инструмент рисования во вкладке Инструменты." - -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1737 msgid "CNC Job Object" msgstr "Объект программы для ЧПУ" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "Отрисовка участка" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -8182,15 +8224,15 @@ msgstr "" "над заготовкой или она может быть типа \"Cut\",\n" "что означает ходы, которые врезаются в материал." -#: flatcamGUI/ObjectUI.py:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "Траектория" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "Показывать примечания" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" @@ -8201,11 +8243,11 @@ msgstr "" "порядке\n" "траектории движения." -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." msgstr "Пройденное расстояние" -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." @@ -8213,11 +8255,11 @@ msgstr "" "Это общее пройденное расстояние на X-Y плоскости.\n" "В текущих единицах измерения." -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "Расчетное время" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." @@ -8225,11 +8267,11 @@ msgstr "" "Это расчетное время для выполнения маршрутизации/бурения,\n" "без времени, затраченного на события смены инструмента." -#: flatcamGUI/ObjectUI.py:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "Таблица инструментов CNC" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -8251,24 +8293,24 @@ msgstr "" "\"Тип инструмента\" (TT) может быть круговым с 1 до 4 зубами (C1..C4),\n" "шарик (B), или V-образный(V)." -#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "P" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "Обновить участок" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "Обновление участка." -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "Экспорт CNC Code" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." @@ -8277,11 +8319,12 @@ msgstr "" "для сохранения\n" "этого объекта в файл." -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "Добавить в начало CNC Code" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 +#: flatcamGUI/PreferencesUI.py:3776 flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -8289,19 +8332,12 @@ msgstr "" "Введите здесь любые команды G-Code, которые вам\n" "хотелось бы добавить в начале файла G-Code." -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the " -"G-Code file." -msgstr "" -"Введите здесь любые команды G-Code, которые вы хотите добавить в начало " -"файла G-кода." - -#: flatcamGUI/ObjectUI.py:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "Дописать в конец CNC Code" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 +#: flatcamGUI/PreferencesUI.py:3792 flatcamGUI/PreferencesUI.py:3800 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -8311,19 +8347,11 @@ msgstr "" "хотелось бы добавить к созданному файлу.\n" "например: M2 (конец программы)" -#: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 -msgid "" -"Type here any G-Code commands you would like to append to the generated " -"file. I.e.: M2 (End of program)" -msgstr "" -"Введите здесь любые G-Code команды, которые вам хотелось бы добавить к " -"созданному файлу. напр.: M2 (конец программы)" - -#: flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "G-Code смены инструмента" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8345,26 +8373,29 @@ msgstr "" "и иметь \"toolchange_custom\" в имени, и будет построено\n" "используя в качестве шаблона файл постпроцессора \"Tool change Custom\"." -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange " -"event is encountered. This will constitute a Custom Toolchange GCode, or a " -"Toolchange Macro. 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." +"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 "" -"Введите здесь любые команды G-Code, которые вы хотите выполнить при " -"возникновении события \"Замена инструментов\". Это будет представлять собой " -"пользовательский GCode смены инструментов или макрос смены инструментов. " -"Переменные FlatCAM окружены символом '%'. \n" -"ПРЕДУПРЕЖДЕНИЕ: он может использоваться только с файлом препроцессора, в " -"имени которого есть 'toolchange_custom'." +"Введите здесь любые команды G-кода, которые вы бы\n" +"нравится, когда выполняется, когда встречается событие Toolchange.\n" +"Это будет GCode Custom Toolchange,\n" +"или Макрос обмена инструментами.\n" +"Переменные FlatCAM заключены в символ «%».\n" +"ВНИМАНИЕ: его можно использовать только с файлом препроцессора\n" +"в названии которого есть toolchange_custom." -#: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "Использовать макросы смены инструмента" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." @@ -8372,7 +8403,7 @@ msgstr "" "Установите этот флажок, если хотите использовать\n" "пользовательский GCode смены инструментов (макрос)." -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -8382,85 +8413,85 @@ msgstr "" "при смене инструмента.\n" "Они должны быть окружены '%' символом" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "Параметры" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "Параметры FlatCAM CNC" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "номер инструмента" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "диаметр инструмента" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "для Excellon, общее количество сверл" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" msgstr "Координата X для смены инструмента" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" msgstr "Координата Y для смены инструмента" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "Координата Z для смены инструмента" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "глубина резания" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "высота перемещения" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "значение шага для мультипроходного разреза" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "значение скорости вращения шпинделя" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 msgid "time to dwell to allow the spindle to reach it's set RPM" msgstr "" "время, чтобы остановиться, чтобы позволить шпинделю достичь его установлен " "об / мин" -#: flatcamGUI/ObjectUI.py:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "Просмотр CNC Code" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." msgstr "Открывает вкладку для просмотра/изменения/печати файла G-Code." -#: flatcamGUI/ObjectUI.py:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "Сохранить CNC Code" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 msgid "" "Opens dialog to save G-Code\n" "file." @@ -8468,77 +8499,77 @@ msgstr "" "Открывает диалоговое окно для сохранения\n" "файла G-Code." -#: flatcamGUI/ObjectUI.py:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "Объект сценария" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "Автозаполнение" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 msgid "This selects if the auto completer is enabled in the Script Editor." msgstr "" "Этот параметр выбирает, включено ли автозаполнение в редакторе сценариев." -#: flatcamGUI/ObjectUI.py:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "Объект Document" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 msgid "This selects if the auto completer is enabled in the Document Editor." msgstr "" "Этот параметр выбирает, включено ли автозаполнение в редакторе Document." -#: flatcamGUI/ObjectUI.py:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "Тип шрифта" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "Размер шрифта" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "Выравнивание" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "Выравнивание по левому краю" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "Центр" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "Выравнивание по правому краю" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "Выравнивание по ширине" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "Цвет шрифта" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "Устанавливает цвет шрифта для выделенного текста" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "Цвет выделения" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 msgid "Set the selection color when doing text selection." msgstr "Установка цвета выделения при выделения текста." -#: flatcamGUI/ObjectUI.py:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "Размер вкладки" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "" "Установка размера вкладки. В пикселях. Значение по умолчанию составляет 80 " @@ -8604,7 +8635,8 @@ msgstr "" msgid "Wk. Orientation" msgstr "Ориентация рабочей области" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" @@ -8614,12 +8646,12 @@ msgstr "" "- Портрет\n" "- Альбом" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" msgstr "Портретная" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" msgstr "Альбомная" @@ -9012,7 +9044,7 @@ msgid "App Preferences" msgstr "Параметры приложения" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -9030,7 +9062,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "MM" @@ -9353,8 +9385,12 @@ msgstr "" msgid "Gerber General" msgstr "Gerber основные" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "Разноцветные" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "Шаг круга" @@ -9385,13 +9421,13 @@ msgstr "Единицы измерения, используемые в файл #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "ДЮЙМЫ" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "Нули" @@ -9411,13 +9447,13 @@ msgstr "" "и ведущие нули сохраняются." #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "LZ" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "TZ" @@ -9426,8 +9462,8 @@ msgstr "TZ" msgid "Gerber Options" msgstr "Параметры Gerber" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "Обычный" @@ -9439,8 +9475,8 @@ msgstr "Объединять проходы" msgid "Gerber Adv. Options" msgstr "Gerber дополнительные" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "Дополнительные настройки" @@ -9490,8 +9526,8 @@ msgstr "" "умолчанию.\n" "<< ПРЕДУПРЕЖДЕНИЕ >>: не меняйте это, если не знаете, что делаете !!!" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -9524,7 +9560,7 @@ msgstr "Допуск для упрощения полигонов." msgid "Gerber Export" msgstr "Экспорт Gerber" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "Параметры экспорта" @@ -9536,7 +9572,7 @@ msgstr "" "Заданные здесь параметры используются в экспортированном файле\n" "при использовании пункта меню File -> Export -> Export Gerber." -#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "Целое число / десятичные дроби" @@ -9568,8 +9604,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "Список параметров редактора Gerber." -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "Ограничение выбора" @@ -9615,8 +9651,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "Разм. диафрагмы" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "Диаметры режущих инструментов, разделенные знаком ','" @@ -9624,8 +9660,8 @@ msgstr "Диаметры режущих инструментов, разделе msgid "Linear Pad Array" msgstr "Линейный массив площадок" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "Линейное направление" @@ -9633,13 +9669,13 @@ msgstr "Линейное направление" msgid "Circular Pad Array" msgstr "Круговая матрица" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "Круговое направление" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -9647,8 +9683,8 @@ msgstr "" "Направление для кругового массива.\n" "Может быть CW = по часовой стрелке или CCW = против часовой стрелки." -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "Угол закругления" @@ -9734,7 +9770,7 @@ msgid "Default values for INCH are 2:4" msgstr "Значения по умолчанию для ДЮЙМОВОЙ 2:4" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." @@ -9743,7 +9779,7 @@ msgstr "" "целая часть Excellon координат." #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -9763,7 +9799,7 @@ msgstr "Значения по умолчанию для МЕТРИЧЕСКОЙ 3 msgid "Default Zeros" msgstr "Умолчания Нули" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -9892,11 +9928,11 @@ msgstr "" "Параметры, используемые для создания объекта задания ЧПУ\n" "для этого сверлите объект." -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "Продолжительность" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -9908,19 +9944,19 @@ msgstr "" "При выборе \"Пазы\" или \"Оба\", пазы будут\n" "преобразованы в отверстия." -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "Создание объекта геометрии для фрезерования отверстий." -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "Значения по умолчанию" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "Excellon дополнительные" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" @@ -9930,19 +9966,19 @@ msgstr "" "Эти параметры доступны только для\n" "расширенного режима приложения." -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "Смена инструмента X,Y" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "Позиция X,Y смены инструмента." -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 msgid "Spindle direction" msgstr "Направление вращения шпинделя" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -9954,11 +9990,11 @@ msgstr "" "- CW = по часовой стрелке или\n" "- CCW = против часовой стрелки" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "Быстрый подвод" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -9970,11 +10006,11 @@ msgstr "" "это означает самую быструю скорость.\n" "Предупреждение: перемещение выполняется при смене координат Toolchange X,Y." -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "Быстрый отвод" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -9992,11 +10028,11 @@ msgstr "" " - Когда проверено перемещение от Z_cut(глубины отрезка) к Z_move\n" "(высота перемещения) делается как можно быстрее (G0) за один ход." -#: flatcamGUI/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "Экспорт Excellon" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." @@ -10004,11 +10040,11 @@ msgstr "" "Заданные здесь параметры используются в экспортированном файле\n" "при использовании файла - > экспорт - > Экспорт Excellon пункт меню." -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "Единицы измерения, используемые в файле Excellon." -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -10020,11 +10056,11 @@ msgstr "" "Здесь мы устанавливаем формат, используемый, когда\n" "координаты не используют точку." -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "Формат" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -10040,15 +10076,15 @@ msgstr "" "Также это должно быть указано, если LZ = ведущие нули сохраняются\n" "или TZ = конечные нули сохраняются." -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "Десятичный" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "Недесятичный" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -10062,11 +10098,11 @@ msgstr "" "Если проверен TZ, то сохраняются нулевые трейлеры\n" "и ведущие нули удаляются." -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "Тип слота" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -10080,19 +10116,19 @@ msgstr "" "Если пробурено (G85), пазы будут экспортированы\n" "используя команду сверления пазов (G85)." -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "Направлен" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "Пробурено (G85)" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "Список параметров редактора Excellon." -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -10106,19 +10142,19 @@ msgstr "" "Увеличивает производительность при перемещении\n" "большое количество геометрических элементов." -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "Новый диаметр инструмента" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "Линейный массив отверстий" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "Круговой массив" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -10130,19 +10166,19 @@ msgstr "" "Минимальное значение: -359,99 градусов.\n" "Максимальное значение: 360,00 градусов." -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "Линейный массив пазов" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "Круговой массив пазов" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "Geometry основные" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." @@ -10150,11 +10186,11 @@ msgstr "" "Количество шагов круга для геометрии\n" "линейная аппроксимация окружности и дуги." -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "Параметры Geometry" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -10164,11 +10200,11 @@ msgstr "" "контуров данного объекта геометрии\n" "для программы ЧПУ." -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "Шаг за проход" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -10182,11 +10218,11 @@ msgstr "" "это доля от глубины\n" "который имеет отрицательное значение." -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "Geometry дополнительные" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" @@ -10196,12 +10232,13 @@ msgstr "" "Эти параметры доступны только для\n" "расширенного режима приложения." -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "Смена инструмента X,Y" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." @@ -10209,11 +10246,11 @@ msgstr "" "Высота инструмента сразу после начала работы.\n" "Удалить значение если вам не нужна эта функция." -#: flatcamGUI/PreferencesUI.py:3508 +#: flatcamGUI/PreferencesUI.py:3526 msgid "Segment X size" msgstr "Размер сегмента по X" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" @@ -10223,11 +10260,11 @@ msgstr "" "Полезно для автоматического выравнивания.\n" "Значение 0 означает отсутствие сегментации по оси X." -#: flatcamGUI/PreferencesUI.py:3524 +#: flatcamGUI/PreferencesUI.py:3542 msgid "Segment Y size" msgstr "Размер сегмента по Y" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" @@ -10237,15 +10274,15 @@ msgstr "" "Полезно для автоматического выравнивания.\n" "Значение 0 означает отсутствие сегментации по оси Y." -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "Редактор Geometry" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "Список параметров редактора Geometry." -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -10259,11 +10296,11 @@ msgstr "" "Увеличивает производительность при перемещении\n" "большое количество геометрических элементов." -#: flatcamGUI/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "CNC Job основные" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." @@ -10271,11 +10308,11 @@ msgstr "" "Число шагов круга для G-код \n" "круг и дуга образуют линейное приближение." -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "Диаметр траектории" -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 msgid "" "The width of the travel lines to be\n" "rendered in the plot." @@ -10283,11 +10320,11 @@ msgstr "" "Диаметр инструмента\n" " для черчения контуров." -#: flatcamGUI/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "Координаты десятичные" -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" @@ -10295,11 +10332,11 @@ msgstr "" "Число десятичных знаков, которые будут использоваться для \n" "координаты X, Y, Z в коде CNC (GCODE, и т.д.)" -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "Десятичные скорости подачи" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" @@ -10307,11 +10344,11 @@ msgstr "" "Число десятичных знаков, которые будут использоваться для \n" "параметра скорости подачи в коде CNC (GCODE, и т.д.)" -#: flatcamGUI/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "Тип координат" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -10323,19 +10360,19 @@ msgstr "" "- Абсолютный G90 - > ссылка является началом координат x=0, y=0\n" "- Инкрементальный G91 -> ссылка на предыдущую позицию" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "Абсолютный путь G90" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "Инкрементальный G91" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" msgstr "Принудительное завершение строк в стиле Windows" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." @@ -10344,65 +10381,65 @@ msgstr "" "принудительно завершён\n" "(\\r\\n) в операционных системах, отличных от Windows." -#: flatcamGUI/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "Параметры CNC Job" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "Экспорт G-кода" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "Коды предобработки для G-Code" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "Коды постобработки для G-Code" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "CNC Job дополнительные" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" msgstr "Z глубина распила" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" msgstr "Высота Z для перемещения" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" "dwelltime = время, чтобы остановиться, чтобы позволить шпинделю достичь его " "установлен об / мин" -#: flatcamGUI/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "Размер примечаний" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 msgid "The font size of the annotation text. In pixels." msgstr "Размер шрифта текста примечаний. В пикселях." -#: flatcamGUI/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "Цвет примечаний" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "Устанавливает цвет шрифта для текста примечаний." -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "Очистка меди" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "Диаметр инструмента" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolNonCopperClear.py:223 msgid "" @@ -10414,11 +10451,11 @@ msgstr "" "- \"V-образная форма\" \n" "- Круглый" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "V-образный инструмент" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 #: flatcamTools/ToolNonCopperClear.py:264 msgid "" @@ -10428,12 +10465,12 @@ msgstr "" "Диаметр инструмента. Это значение (в текущих единицах FlatCAM) \n" "ширины разреза в материале." -#: flatcamGUI/PreferencesUI.py:4039 +#: flatcamGUI/PreferencesUI.py:4057 msgid "The new tool diameter (cut width) to add in the tool table." msgstr "" "Диаметр нового инструмента (ширина разреза) добавлен в таблицу инструментов." -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 #: flatcamTools/ToolNonCopperClear.py:172 msgid "" @@ -10446,13 +10483,13 @@ msgstr "" "использования инструмента\n" "- conventional / полезен, когда нет компенсации люфта" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "Порядок инструмента" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 #: flatcamTools/ToolNonCopperClear.py:192 flatcamTools/ToolPaint.py:154 #: flatcamTools/ToolPaint.py:164 @@ -10477,17 +10514,17 @@ msgstr "" "установит порядок\n" "на 'Обратный' и отключит этот элемент управления." -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "Прямой" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "Обратный" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10507,14 +10544,14 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "Граница рамки." -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -10525,22 +10562,22 @@ msgstr "" "контурами, повторяющими контур полигона.
По кругу: Обработка " "правильными окружностями.
Линейный: Паралельными линиями." -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "Подключение" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "Контур" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "Обработка остаточного припуска" -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -10558,7 +10595,7 @@ msgstr "" "больше не останется меди для очистки или больше не будет инструментов.\n" "Если флажок не установлен, используется стандартный алгоритм." -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -10571,11 +10608,11 @@ msgstr "" "из медных штучек.\n" "Значение может быть от 0 до 10 единиц FlatCAM." -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "Значение смещения" -#: flatcamGUI/PreferencesUI.py:4192 +#: flatcamGUI/PreferencesUI.py:4210 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10588,26 +10625,26 @@ msgstr "" "Это значение может находиться в диапазоне от 0,0 до 9999,9 единиц измерения " "FlatCAM." -#: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 #: flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "Как есть" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "Площадь" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "Ссылка" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "Ссылка" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -10627,19 +10664,19 @@ msgstr "" "- 'Референсный объект' - будет выполнять очистку от меди в области\n" "указанной другим объектом." -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "Нормальный" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "Последовательный" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "Прорисовка очистки от меди" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 msgid "" "- 'Normal' - normal plotting, done at the end of the NCC job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10649,16 +10686,16 @@ msgstr "" "- 'Последовательный' - после создания каждой фигуры она будет нанесена на " "график." -#: flatcamGUI/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "Обрезка платы" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "Диаметр инструмента" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10666,11 +10703,11 @@ msgstr "" "Диаметр инструмента, используемого для вырезания\n" "форма печатной платы из окружающего материала." -#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 msgid "Object kind" msgstr "Вид объекта" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -10682,15 +10719,15 @@ msgstr "" "Гербера PCB панели, который сделан\n" "из множества отдельных печатных плат очертания." -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "Одиночный" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "Панель" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -10700,11 +10737,11 @@ msgstr "" "сделает вырез печатной платы дальше от\n" "фактической границы печатной платы" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "Размер перемычки" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -10716,11 +10753,11 @@ msgstr "" "окружающий материал (тот самый \n" "из которого вырезается печатная плата)." -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "Вариант" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -10744,11 +10781,11 @@ msgstr "" "- 2tb - 2*сверху + 2*снизу \n" "- 8 - 2*слева + 2*справа + 2*сверху + 2*снизу" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "Закруглять углы" -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -10756,11 +10793,11 @@ msgstr "" "Создайте выпуклую форму, окружающую всю печатную плату.\n" "Используется только в том случае, если тип исходного объекта-Gerber." -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "2-х сторонняя плата" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -10768,36 +10805,36 @@ msgstr "" "Инструмент, помогающий создать двухстороннюю\n" "печатную плату с использованием центрирующих отверстий." -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "Диаметр сверла" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "Диаметр сверла для контрольных отверстий." -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "Зеркальное отражение:" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Отразить по вертикали (X) или горизонтали (Y)." -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "Точка" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "Рамка" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" msgstr "Указатель оси" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" @@ -10807,35 +10844,15 @@ msgstr "" "указанный коробка (в объекте FlatCAM) через\n" "центр." -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "Рисование" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "Параметры:" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -msgid "" -"How much (fraction) 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 "" -"Какая часть ширины инструмента будет перекрываться за каждый проход " -"инструмента.\n" -"Отрегулируйте значение, начиная с более низких значений\n" -"и увеличивая его, если области, которые должны быть нарисованы, все ещё\n" -"не окрашены.\n" -"Более низкие значения = более быстрая обработка, более быстрое выполнение на " -"печатной плате.\n" -"Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" -"из-за большого количества путей." - -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 msgid "" "How to select Polygons to be painted.\n" @@ -10861,15 +10878,15 @@ msgstr "" "участка.\n" "указанным другим объектом." -#: flatcamGUI/PreferencesUI.py:4596 +#: flatcamGUI/PreferencesUI.py:4614 msgid "Sel" msgstr "Одиночный" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "Прорисовка рисования" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 msgid "" "- 'Normal' - normal plotting, done at the end of the Paint job\n" "- 'Progressive' - after each shape is generated it will be plotted." @@ -10879,11 +10896,11 @@ msgstr "" "- 'Последовательный' - после создания каждой фигуры она будет нанесена на " "график." -#: flatcamGUI/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "Плёнка" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" @@ -10893,11 +10910,11 @@ msgstr "" "объектов FlatCAM.\n" "Файл сохраняется в формате SVG." -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "Тип плёнки" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -10913,19 +10930,19 @@ msgstr "" "белым на черном холсте.\n" "Формат плёнки - SVG." -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "Цвет пленки" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 msgid "Set the film color when positive film is selected." msgstr "Устанавливает цвет плёнки при режиме \"Позитив\"." -#: flatcamGUI/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "Отступ" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -10945,11 +10962,11 @@ msgstr "" "и которые могут смешаться с \n" "окружающими, если бы не эта граница." -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "Масштаб обводки" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 " @@ -10961,11 +10978,11 @@ msgstr "" "тоньше,\n" "поэтому этот параметр может сильно влиять на мелкие объекты." -#: flatcamGUI/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "Регулировка Пленки" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 flatcamTools/ToolFilm.py:143 msgid "" "Sometime the printers will distort the print shape, especially the Laser " "types.\n" @@ -10974,11 +10991,11 @@ msgstr "" "Иногда принтеры могут искажать форму печати, особенно лазерные.\n" "В этом разделе представлены инструменты для компенсации искажений печати." -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "Масштабирование плёнки" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 flatcamTools/ToolFilm.py:152 msgid "" "A value greater than 1 will stretch the film\n" "while a value less than 1 will jolt it." @@ -10986,21 +11003,21 @@ msgstr "" "Значение больше 1 растянет пленку\n" "в то время как значение меньше 1 будет её сжимать." -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "Коэффициент X" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "Коэффициент Y" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "Наклон плёнки" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." @@ -11008,17 +11025,17 @@ msgstr "" "Положительные значения будут смещать вправо,\n" "а отрицательные значения будут смещать влево." -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "Угол наклона X" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "Угол наклона Y" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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." @@ -11026,57 +11043,57 @@ msgstr "" "Опорная точка, используемая в качестве исходной точки для перекоса.\n" "Это может быть одна из четырех точек геометрии ограничительной рамки." -#: flatcamGUI/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "Нижний левый" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "Верхний левый" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "Нижний правый" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "Верхний правый" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "Зеркалирование геометрии пленки" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 flatcamTools/ToolFilm.py:246 msgid "Mirror the film geometry on the selected axis or on both." msgstr "Зеркалирование геометрии пленки на выбранной оси или на обеих." -#: flatcamGUI/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "Обе" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "Ось зеркалирования" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" msgstr "SVG" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" msgstr "PNG" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" msgstr "PDF" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "Тип плёнки:" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -11088,33 +11105,23 @@ msgstr "" "- 'PNG' -> растровое изображение\n" "- 'PDF' -> формат портативного документа" -#: flatcamGUI/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" msgstr "Ориентация страницы" -#: flatcamGUI/PreferencesUI.py:4835 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" -"Может быть:\n" -"- Портрет\n" -"- Альбом" - -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" msgstr "Размер страницы" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." msgstr "Выбор стандартных размеров страниц ISO 216." -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "Панелизация" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" @@ -11124,11 +11131,11 @@ msgstr "" "каждый элемент является копией исходного объекта с интервалом\n" "на расстоянии X, Y расстояние друг от друга." -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "Интервал столбцов" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." @@ -11136,11 +11143,11 @@ msgstr "" "Расстояние между столбцами нужной панели.\n" "В текущих единицах измерения." -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "Интервал строк" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." @@ -11148,36 +11155,36 @@ msgstr "" "Расстояние между строками нужной панели.\n" "В текущих единицах измерения." -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "Столбцы" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "Количество столбцов нужной панели" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "Строки" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "Количество строк нужной панели" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "Gerber" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "Geometry" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "Тип панели" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" @@ -11187,11 +11194,11 @@ msgstr "" "- Gerber\n" "- Geometry" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "Ограничить в пределах" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -11205,11 +11212,11 @@ msgstr "" "последняя панель будет иметь столько столбцов и строк, чтобы\n" "она полностью вписывалась в выбранную область." -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "Ширина (DX)" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." @@ -11217,11 +11224,11 @@ msgstr "" "Ширина (DX), в пределах которой должна поместиться панель.\n" "В текущих единицах измерения." -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "Высота (DY)" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." @@ -11229,15 +11236,15 @@ msgstr "" "Высота (DY), в пределах которой должна поместиться панель.\n" "В текущих единицах измерения." -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "Калькулятор" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "Калькулятор V-образного инструмента" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -11247,11 +11254,11 @@ msgstr "" "учитывая диаметр наконечника, угол наклона наконечника и\n" "глубину резания в качестве параметров." -#: flatcamGUI/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "Диаметр наконечника" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11259,11 +11266,11 @@ msgstr "" "Это диаметр наконечника инструмента.\n" "Это указано производителем." -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "Угол наконечника" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." @@ -11271,7 +11278,7 @@ msgstr "" "Это угол наконечника инструмента.\n" "Это указано производителем." -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." @@ -11279,11 +11286,11 @@ msgstr "" "Это глубина резки материала.\n" "В объекте CNCJob это параметр \"Глубина резания\"." -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "Калькулятор электронных плат" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " @@ -11294,27 +11301,27 @@ msgstr "" "используя методы такие, как графитовые чернила или чернила гипофосфита " "кальция или хлорид палладия." -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "Длина платы" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "Это длина платы. В сантиметрах." -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "Ширина платы" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "Это ширина платы. В сантиметрах." -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "Текущая плотность" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11322,11 +11329,11 @@ msgstr "" "Плотность тока для прохождения через плату. \n" "В Амперах на квадратный метр АЧС." -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "Медный слой" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11334,11 +11341,11 @@ msgstr "" "Насколько толстым должен быть медный слой.\n" "В микронах." -#: flatcamGUI/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "Трансформация" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." @@ -11346,19 +11353,19 @@ msgstr "" "Различные преобразования, которые могут быть применены\n" "на объекте FlatCAM." -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "Наклон" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "Коэффициент масштабирования по оси X." -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." @@ -11366,7 +11373,7 @@ msgstr "" "Масштабирует выбранный объект(ы)\n" "используя \"Коэффициент X\" для обеих осей." -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -11378,27 +11385,27 @@ msgstr "" "или центр самой большой ограничительной рамки \n" "выделенных объектов, если флажок снят." -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "Значение X" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "Расстояние смещения по оси X. В текущих единицах." -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "Значение Y" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 flatcamTools/ToolTransform.py:239 msgid "Distance to offset on Y axis. In current units." msgstr "Расстояние смещения по оси Y. В текущих единицах." -#: flatcamGUI/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "Точка зеркалтрования" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -11420,11 +11427,11 @@ msgstr "" "Или введите координаты в формате (x, y) в поле\n" "Поле ввода точки и нажмите кнопку флип на X(Y)" -#: flatcamGUI/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "Точка зеркалтрования" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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" @@ -11435,11 +11442,11 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y" -#: flatcamGUI/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "Паяльная паста" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -11447,49 +11454,49 @@ msgstr "" "Инструмент для создания GCode для дозирования\n" "нанесения паяльной пасты на печатную плату." -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "Диаметры сопловых инструментов, разделенные ','" -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "Новый диаметр сопла" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" "Диаметр для нового инструмента сопла, который нужно добавить в таблице " "инструмента" -#: flatcamGUI/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" msgstr "Z начала нанесения" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "Высота (Z), когда начинается выдача паяльной пасты." -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" msgstr "Z нанесения" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 msgid "The height (Z) when doing solder paste dispensing." msgstr "Высота (Z) при выполнении дозирования паяльной пасты." -#: flatcamGUI/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" msgstr "Z конца нанесения" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "Высота (Z) при остановке выдачи паяльной пасты." -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "Z перемещения" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." @@ -11497,15 +11504,15 @@ msgstr "" "Высота (Z) для перемещения между колодками\n" "(без дозирования паяльной пасты)." -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "Z смены инструмента" -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "Высота (Z) для изменения инструмента (сопла)." -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." @@ -11513,11 +11520,11 @@ msgstr "" "Положение X, Y для изменения инструмента (сопла).\n" "Формат (x, y), где x и y-действительные числа." -#: flatcamGUI/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Скорость подачи при движении по плоскости X-Y." -#: flatcamGUI/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." @@ -11525,11 +11532,11 @@ msgstr "" "Скорость подачи (скорость) при движении по вертикали\n" "(на плоскости Z)." -#: flatcamGUI/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" msgstr "Скорость подачи Z Диспенсер" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." @@ -11537,11 +11544,11 @@ msgstr "" "Скорость подачи (скорость) при движении вверх по вертикали\n" "распределить положение (на плоскости Z)." -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "Скорость прямого вращения шпинделя" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." @@ -11549,19 +11556,19 @@ msgstr "" "Диспенсер скорости при нажатии паяльной пасты\n" "через сопло дозатора." -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "Задержка В НАЧАЛЕ" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "Пауза после выдачи паяльной пасты." -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "Скорость обратного вращения шпинделя" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." @@ -11569,11 +11576,11 @@ msgstr "" "Скорость распределителя пока втягивающ затир припоя\n" "через сопло дозатора." -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "Задержка В КОНЦЕ" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." @@ -11581,15 +11588,15 @@ msgstr "" "Пауза после того, как дозатор паяльной пасты будет убран,\n" "чтобы обеспечить равномерное выдавливание." -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "Файлы контролирующие генерацию GCode." -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "Параметры инструмента Substractor" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." @@ -11597,20 +11604,20 @@ msgstr "" "Инструмент для вычитания одного объекта Gerber или Геометрия\n" "от другого того же типа." -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "Закрыть пути" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 msgid "" "Checking this will close the paths cut by the Geometry substractor object." msgstr "Проверка этого закроет пути, прорезанные объектом субметора Геометрия." -#: flatcamGUI/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "Параметры проверки правил" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." @@ -11618,20 +11625,20 @@ msgstr "" "Инструмент для проверки наличия файлов Gerber в наборе\n" "правил изготовления." -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "Размер трассы" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 msgid "This checks if the minimum size for traces is met." msgstr "Это проверяет, соблюден ли минимальный размер трассы." -#: flatcamGUI/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -11640,38 +11647,38 @@ msgstr "Это проверяет, соблюден ли минимальный msgid "Min value" msgstr "Минимальное значение" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "Минимальный допустимый размер трассировки." -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "Зазор между медными дорожками" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." msgstr "Проверяет, соблюдены ли минимальные зазоры между медью." -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "Минимально допустимое значение зазора." -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "Зазор между медью и контуром" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." @@ -11679,23 +11686,23 @@ msgstr "" "Проверяет, выполнены ли минимальные зазоры между медью\n" "и контурами." -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "Зазор между шелкографией" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." msgstr "Проверяет, соблюдены ли минимальные зазоры между шелкографией." -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "Зазор между шелкографией и паяльной маской" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." @@ -11703,13 +11710,13 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между шелкографией\n" "и паяльной маской." -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "Зазор между шелкографией и контуром" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." @@ -11717,12 +11724,12 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между шелкографией\n" "и контурами." -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "Минимальная ширина паяльной маски" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." @@ -11730,13 +11737,13 @@ msgstr "" "Проверяет, соблюдены ли минимальные зазоры между паяльной маской\n" "и встречной паяльной маской." -#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "Минимальное медное кольцо" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." @@ -11744,31 +11751,31 @@ msgstr "" "Проверяет, останется ли минимальное медное кольцо при сверлении\n" "отверстия в площадке." -#: flatcamGUI/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "Минимальное допустимое значение кольца." -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "Зазор между отверстиями" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." msgstr "Проверяет, есть ли минимальный зазор между отверстиями." -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "Минимальный допустимый размер отверстия." -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "Размер отверстия" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." @@ -11776,11 +11783,11 @@ msgstr "" "Проверяет, превышают ли размеры просверленного отверстия\n" "допустимый порог." -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "Параметры оптимизации" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" @@ -11788,20 +11795,20 @@ msgstr "" "Инструмент для поиска минимального расстояния между\n" "двумя элементами геометрии Gerber" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "Точность" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 msgid "Number of decimals for the distances and coordinates in this tool." msgstr "" "Количество десятичных знаков для расстояний и координат в этом инструменте." -#: flatcamGUI/PreferencesUI.py:5855 +#: flatcamGUI/PreferencesUI.py:5873 msgid "QRCode Tool Options" msgstr "Параметры QR-кода" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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." @@ -11809,11 +11816,11 @@ msgstr "" "Инструмент для создания QR-кода, который можно вставить\n" "в выбранный файл Gerber, или его можно экспортировать в файл." -#: flatcamGUI/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 msgid "Version" msgstr "Версия" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11821,11 +11828,11 @@ msgstr "" "Версия QRCode может иметь значения от 1 (21x21).\n" "до 40 (177x177)." -#: flatcamGUI/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 msgid "Error correction" msgstr "Коррекция ошибок" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -11841,11 +11848,11 @@ msgstr "" "Q = макс. 25%% ошибок могут быть исправлены\n" "H = макс. 30%% ошибок могут быть исправлены." -#: flatcamGUI/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 msgid "Box Size" msgstr "Размер поля" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11853,11 +11860,11 @@ msgstr "" "Размер рамки регулирует общий размер QR-кода.\n" "откорректировав размер каждой рамки в коде." -#: flatcamGUI/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 msgid "Border Size" msgstr "Отступ" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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." @@ -11865,24 +11872,24 @@ msgstr "" "Размер границы QR-кода. Насколько рамка толще границы.\n" "Значение по умолчанию 4. Ширина зазора вокруг QR-кода." -#: flatcamGUI/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "Данные QR-кода" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" "Данные QRCode. Буквенно-цифровой текст, подлежащий кодированию в QRCode." -#: flatcamGUI/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "Добавьте сюда текст, который будет включен в QRCode..." -#: flatcamGUI/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "Полярность" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 flatcamTools/ToolQRCode.py:176 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11892,17 +11899,17 @@ msgstr "" "Он может быть нарисован как негптив (квадраты видны)\n" "или позитив (квадраты непрозрачны)." -#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "Негатив" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "Позитив" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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" @@ -11914,7 +11921,7 @@ msgstr "" "будет добавлено как позитив. Если он добавлен к Copper Gerber.\n" "то, возможно, QRCode может быть добавлен как негатив." -#: flatcamGUI/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 msgid "" "The bounding box, meaning the empty space that surrounds\n" @@ -11923,32 +11930,31 @@ msgstr "" "Ограничительная рамка, означающая пустое пространство вокруг\n" "QRCode, может иметь округлую или квадратную форму." -#: flatcamGUI/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 msgid "Rounded" msgstr "Закругленный" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "Цвет заливки" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "Задаёт цвет заливки QRCode (цвет квадратов)." -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "Цвет фона" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "Устанавливает цвет фона QRCode." -#: flatcamGUI/PreferencesUI.py:6043 -#| msgid "SolderPaste Tool Options" +#: flatcamGUI/PreferencesUI.py:6061 msgid "Copper Thieving Tool Options" msgstr "Параметры Copper Thieving" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." @@ -11956,16 +11962,16 @@ msgstr "" "Инструмент для создания Copper Thieving, который может быть добавлен\n" "в выбранный Gerber файл." -#: flatcamGUI/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." msgstr "Количество шагов (линий), используемых для интерполяции окружностей." -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 msgid "Clearance" msgstr "Зазор" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 msgid "" "This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -11975,78 +11981,77 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: flatcamGUI/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "Выбор области" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "Ссылочный объект" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "Ссылка:" -#: flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6126 msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is " -"copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be " +"- '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 "" "- 'Как есть' - степень Copper Thieving основан на объекте, который очищается " "от меди.\n" -" - 'Выбор области' - щелкните левой кнопкой мыши для начала выбора области " +"- 'Выбор области' - щелкните левой кнопкой мыши для начала выбора области " "для рисования.\n" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "Прямоугольная" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" msgstr "Минимальный" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "Тип рамки:" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" "- 'Прямоугольник' - ограничительная рамка будет иметь прямоугольную форму.\n" -" - 'Минимальный' - ограничительная рамка будет повторять форму корпуса." +"- 'Минимальный' - ограничительная рамка будет повторять форму корпуса." -#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" msgstr "Сетка точек" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 msgid "Squares Grid" msgstr "Сетка квадратов" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 msgid "Lines Grid" msgstr "Линии сетки" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 msgid "Fill Type:" msgstr "Тип заполнения:" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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 "" @@ -12055,55 +12060,54 @@ msgstr "" "- 'Сетка квадратов' - пустая площадь будет заполнена сеткой квадратов.\n" "- 'Сетка линий' - пустая область будет заполнена сеткой линий." -#: flatcamGUI/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 msgid "Dots Grid Parameters" msgstr "Параметры точки сетки" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 msgid "Dot diameter in Dots Grid." msgstr "Диаметр точки в сетке точек." -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 msgid "Spacing" msgstr "Промежуток" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." msgstr "Расстояние между каждыми двумя точками в сетке точек." -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 msgid "Squares Grid Parameters" msgstr "Параметры квадратной сетки" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." msgstr "Размер стороны квадрата в сетке квадратов." -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." msgstr "Расстояние между каждыми двумя квадратами в сетке квадратов ." -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 msgid "Lines Grid Parameters" msgstr "Параметры линий сетки" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." msgstr "Размеры линий по толщине в сетке линий." -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." msgstr "Расстояние между двумя линиями в сетке линий." -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 -#| msgid "Slot Parameters" +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" msgstr "Параметры Robber Bar" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -12111,27 +12115,27 @@ msgstr "" "Параметры, используемые для robber bar.\n" "Robber ba = медная рамка для облегчения нанесения покрытия на отверстия." -#: flatcamGUI/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 msgid "Bounding box margin for robber bar." msgstr "Граница рамки." -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" msgstr "Толщина" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." msgstr "Толщина robber bar." -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" msgstr "Рисунок гальванической маски" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." msgstr "Создание рисунка гальванической маски." -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -12139,16 +12143,16 @@ msgstr "" "Расстояние между возможными элементами copper thieving\n" "и/или robber bar и фактическими отверстиями в маске." -#: flatcamGUI/PreferencesUI.py:6298 +#: flatcamGUI/PreferencesUI.py:6316 msgid "Fiducials Tool Options" msgstr "Параметры контрольных точек" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "Параметры, используемые для этого инструмента." -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 flatcamTools/ToolFiducials.py:158 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -12159,66 +12163,66 @@ msgstr "" "в противном случае, размер контрольного отверстия\n" "вдвое больше отверстия паяльной маски." -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "Авто" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "Вручную" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "Режим:" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." msgstr "" "- 'Авто' - автоматическое размещение контрольных точек по углам " "ограничительной рамки.\n" -" - 'Вручную' - ручное размещение контрольных точек." +"- 'Вручную' - ручное размещение контрольных точек." -#: flatcamGUI/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "Вверху" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "Внизу" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "Вторичные контрольные точки" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 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" +"- '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 "" "Позиция вторичной контрольной точки.\n" "- 'Вверху' -порядок: снизу слева, сверху слева, сверху справа.\n" -"-'Внизу' -порядок: снизу слева, снизу справа, сверху справа.\n" -"-'Нет' - вторичная контрольная точка отсутствует. Порядок: снизу слева, " +"- 'Внизу' -порядок: снизу слева, снизу справа, сверху справа.\n" +"- 'Нет' - вторичная контрольная точка отсутствует. Порядок: снизу слева, " "сверху справа." -#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "Крест" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "Шахматный порядок" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "Тип контрольных точек" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -12230,19 +12234,19 @@ msgstr "" "- 'Крест' - крестообразные.\n" "- 'Шахматный порядок' - точки в шахматном порядке." -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "Толщина линии" -#: flatcamGUI/PreferencesUI.py:6414 +#: flatcamGUI/PreferencesUI.py:6432 msgid "Calibration Tool Options" msgstr "Параметры калибровки" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "Тип источника" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -12255,27 +12259,27 @@ msgstr "" "Gerber\n" "- Свободно - > щелкните мышью по холсту для получения точек калибровки" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "Свободно" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "Высота (Z) для перемещения между точками." -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "Проверка Z" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "Высота (Z) для проверки точки." -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "Обнуление Z" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." @@ -12283,41 +12287,73 @@ msgstr "" "Включает последовательное обнуление высоты (Z)\n" "при проверке." -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "Высота (Z) для установки проверочной пробы." -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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 "" +"Смена инструмента X, Y позиция.\n" +"Если значение не введено, то текущий\n" +"(х, у) точка будет использоваться," + +#: flatcamGUI/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "Вторая точка" + +#: flatcamGUI/PreferencesUI.py:6532 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 "" +"Вторым пунктом в проверке Gcode может быть:\n" +"- вверху слева -> пользователь выровняет печатную плату по вертикали\n" +"- внизу справа -> пользователь выровняет печатную плату по горизонтали" + +#: flatcamGUI/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "Верхний левый" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "Внизу справа" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "Ассоциации файлов Excellon" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "Восстановить" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "Восстановление списка расширений в состояние по умолчанию." -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "Удалить все" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "Удаляет все расширения из списка." -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "Список расширений" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 msgid "" "List of file extensions to be\n" "associated with FlatCAM." @@ -12325,43 +12361,43 @@ msgstr "" "Список расширений файлов, которые будут\n" "связаны с FlatCAM." -#: flatcamGUI/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "Расширение" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 msgid "A file extension to be added or deleted to the list." msgstr "Расширение файла для добавления или удаления из списка." -#: flatcamGUI/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "Добавить расширение" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "Добавляет расширение файла в список" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "Удалить расширение" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "Удаляет расширение файла из списка" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "Ассоциировать" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -12373,32 +12409,32 @@ msgstr "" "Они будут активны после следующего входа в систему.\n" "Эта работает только в Windows." -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "Ассоциации файлов GCode" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "Ассоциации файлов Gerber" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "Ключевые слова автозаполнения" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 msgid "Restore the autocompleter keywords list to the default state." msgstr "" "Восстановление списока ключевых слов автозаполнения в состояние по умолчанию." -#: flatcamGUI/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "Удаление всех ключевых слов автозаполнения из списка." -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "Список ключевых слов" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -12410,23 +12446,23 @@ msgstr "" "Автозаполнение установлено\n" "в редакторе кода и для Tcl Shell." -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 msgid "A keyword to be added or deleted to the list." msgstr "Ключевое слово, которое будет добавлено или удалено из списка." -#: flatcamGUI/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "Добавить ключевое слово" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "Добавляет ключевое слово в список" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "Удалить ключевое слово" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "Удаляет ключевое слово из списка" @@ -12456,16 +12492,15 @@ msgstr "" "Пользователю необходимо отредактировать полученный объект Excellon и " "изменить диаметры, чтобы отразить реальные диаметры." -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" -"{e_code} Ошибка разбора Excellon.\n" -"Ошибка разбора. Строка {l_nr}: {line}\n" +"Ошибка разбора Excellon.\n" +"Ошибка разбора. Строка" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having " "a tool associated.\n" @@ -12483,11 +12518,14 @@ msgstr "Шрифт не поддерживается, попробуйте др msgid "Gerber processing. Parsing" msgstr "Обработка Gerber. Разбор" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "линий" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "Координаты отсутствуют, строка игнорируется" @@ -12503,7 +12541,7 @@ msgstr "" "Региону не хватает точек. Файл будет обработан, но есть ошибки разбора. " "Номер строки" -#: flatcamParsers/ParseGerber.py:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "Обработка Gerber. Соединение полигонов" @@ -12543,6 +12581,22 @@ msgstr "Наклон Gerber выполнен." msgid "Gerber Rotate done." msgstr "Вращение Gerber выполнено." +#: flatcamParsers/ParseHPGL2.py:176 +msgid "HPGL2 processing. Parsing" +msgstr "Обработка HPGL2 . Разбор" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line" +msgstr "Линия HPGL2" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line Content" +msgstr "Содержание линии HPGL2" + +#: flatcamParsers/ParseHPGL2.py:409 +msgid "HPGL2 Parser ERROR" +msgstr "Ошибка парсера HPGL2" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "Калькуляторы" @@ -12633,45 +12687,49 @@ msgstr "" msgid "Calc. Tool" msgstr "Калькулятор" -#: flatcamTools/ToolCalibration.py:36 -msgid "Calibration Tool" -msgstr "Калькулятор" +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" +msgstr "Параметры GCode" -#: flatcamTools/ToolCalibration.py:66 +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "Параметры, используемые при создании GCode в данном инструменте." + +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "ШАГ 1: Получение точек калибровки" -#: flatcamTools/ToolCalibration.py:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." msgstr "" -"Выберите четыре точки, нажав внутри отверстия для сверления.\n" -"Эти четыре точки должны быть в четырех\n" -"(как можно больше) углах Excellon объекта." +"Выберите четыре точки, нажав на холст.\n" +"Эти четыре пункта должны быть в четырех\n" +"(насколько это возможно) углы объекта." -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 #: flatcamTools/ToolPanelize.py:66 flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "Тип объекта" -#: flatcamTools/ToolCalibration.py:101 +#: flatcamTools/ToolCalibration.py:211 msgid "Source object selection" msgstr "Выбор исходного объекта" -#: flatcamTools/ToolCalibration.py:103 +#: flatcamTools/ToolCalibration.py:213 msgid "FlatCAM Object to be used as a source for reference points." msgstr "" "FlatCAM Объект, который будет использоваться в качестве источника опорных " "точек." -#: flatcamTools/ToolCalibration.py:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "Точки калибровки" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." @@ -12679,57 +12737,56 @@ msgstr "" "Содержит ожидаемые точки калибровки и точки калибровки\n" "измеренные." -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "Цель" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "Найдено Delta" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 msgid "Bot Left X" msgstr "Нижний левый X" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 msgid "Bot Left Y" msgstr "Нижний левый Y" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 -#| msgid "Origin set" +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 msgid "Origin" msgstr "Источник" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 msgid "Bot Right X" msgstr "Нижний правый X" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 msgid "Bot Right Y" msgstr "Нижний правый Y" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 msgid "Top Left X" msgstr "Верхний левый X" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 msgid "Top Left Y" msgstr "Верхний левый Y" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 msgid "Top Right X" msgstr "Верхний правый X" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 msgid "Top Right Y" msgstr "Верхний правый Y" -#: flatcamTools/ToolCalibration.py:258 +#: flatcamTools/ToolCalibration.py:370 msgid "Get Points" msgstr "Получить точки" -#: flatcamTools/ToolCalibration.py:260 +#: flatcamTools/ToolCalibration.py:372 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" @@ -12742,36 +12799,39 @@ msgstr "" "Эти четыре точки должны быть в четырех квадратах\n" "вокруг объекта." -#: flatcamTools/ToolCalibration.py:281 +#: flatcamTools/ToolCalibration.py:393 msgid "STEP 2: Verification GCode" msgstr "ШАГ 2: Проверка GCode" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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 "" -"Генерация файла GCode для расположения и выравнивания печатной платы с " -"использованием\n" -"четырёх точек, полученных выше." +"Создайте файл GCode, чтобы найти и выровнять PCB, используя\n" +"четыре очка, полученные выше.\n" +"Последовательность очков:\n" +"- первая точка -> установить начало координат\n" +"- вторая точка -> точка выравнивания. Может быть: вверху слева или внизу " +"справа.\n" +"- третий пункт -> контрольный пункт. Может быть: вверху слева или внизу " +"справа.\n" +"- четвертый пункт -> окончательный пункт проверки. Просто для оценки." -#: flatcamTools/ToolCalibration.py:288 -msgid "GCode Parameters" -msgstr "Параметры GCode" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "Параметры, используемые при создании GCode в данном инструменте." - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Создать GCode" -#: flatcamTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:432 msgid "STEP 3: Adjustments" msgstr "ШАГ 3: Корректировки" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 msgid "" "Calculate Scale and Skew factors based on the differences (delta)\n" "found when checking the PCB pattern. The differences must be filled\n" @@ -12781,15 +12841,15 @@ msgstr "" "найденных при проверке схемы печатной платы. Различия должны быть устранены\n" "в полях Найдено (Delta)." -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 msgid "Calculate Factors" msgstr "Рассчитать факторы" -#: flatcamTools/ToolCalibration.py:400 +#: flatcamTools/ToolCalibration.py:463 msgid "STEP 4: Adjusted GCode" msgstr "ШАГ 4: Корректировка GCode" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." @@ -12797,47 +12857,59 @@ msgstr "" "Создаёт проверочный файл GCode \n" "скорректированный с помощью вышеперечисленных факторов." -#: flatcamTools/ToolCalibration.py:407 +#: flatcamTools/ToolCalibration.py:470 msgid "Scale Factor X:" msgstr "Коэффициент масштабирования X:" -#: flatcamTools/ToolCalibration.py:419 +#: flatcamTools/ToolCalibration.py:482 msgid "Scale Factor Y:" msgstr "Коэффициент масштабирования Y:" -#: flatcamTools/ToolCalibration.py:431 +#: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" msgstr "Масштабировать" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "Применяет коэффициент масштабирования для точек калибровки." -#: flatcamTools/ToolCalibration.py:443 +#: flatcamTools/ToolCalibration.py:506 msgid "Skew Angle X:" msgstr "Угол наклона X:" -#: flatcamTools/ToolCalibration.py:456 +#: flatcamTools/ToolCalibration.py:519 msgid "Skew Angle Y:" msgstr "Угол наклона Y:" -#: flatcamTools/ToolCalibration.py:469 +#: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" msgstr "Наклонить" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "Применяет коэффициенты перекоса для точек калибровки." -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 msgid "Generate Adjusted GCode" msgstr "Создать скорректированный GCode" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +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 "" +"Создайте проверочный файл GCode с настройкой\n" +"факторы, указанные выше.\n" +"Параметры GCode могут быть перенастроены\n" +"перед нажатием этой кнопки." + +#: flatcamTools/ToolCalibration.py:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "ШАГ 5: Калибровка объектов FlatCAM" -#: flatcamTools/ToolCalibration.py:563 +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." @@ -12845,28 +12917,27 @@ msgstr "" "Корректировка объектов FlatCAM\n" "с факторами, определенными и проверенными выше." -#: flatcamTools/ToolCalibration.py:572 +#: flatcamTools/ToolCalibration.py:641 msgid "Adjusted object type" msgstr "Тип объекта корректировки" -#: flatcamTools/ToolCalibration.py:574 +#: flatcamTools/ToolCalibration.py:643 msgid "Type of the FlatCAM Object to be adjusted." msgstr "Тип объекта FlatCAM, который требуется скорректировать." -#: flatcamTools/ToolCalibration.py:585 -#| msgid "No object selected." +#: flatcamTools/ToolCalibration.py:654 msgid "Adjusted object selection" msgstr "Выбор объекта корректировки" -#: flatcamTools/ToolCalibration.py:587 +#: flatcamTools/ToolCalibration.py:656 msgid "The FlatCAM Object to be adjusted." msgstr "Объект FlatCAM для корректировки." -#: flatcamTools/ToolCalibration.py:594 +#: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" msgstr "Колибровка" -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." @@ -12874,7 +12945,7 @@ msgstr "" "Корректировка (масштабирование и/или перекос) объектов\n" "с вышеперечисленными факторами." -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 @@ -12884,7 +12955,7 @@ msgstr "" msgid "Reset Tool" msgstr "Сбросить настройки инструмента" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 @@ -12894,51 +12965,51 @@ msgstr "Сбросить настройки инструмента" msgid "Will reset the tool parameters." msgstr "Сброс параметров инструмента." -#: flatcamTools/ToolCalibration.py:688 -msgid "Calibrate Tool" -msgstr "Колибровка" - -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "Инструмент инициализирован" -#: flatcamTools/ToolCalibration.py:747 +#: flatcamTools/ToolCalibration.py:824 msgid "There is no source FlatCAM object selected..." msgstr "Нет выбранного исходного объекта FlatCAM..." -#: flatcamTools/ToolCalibration.py:768 +#: flatcamTools/ToolCalibration.py:845 msgid "Get First calibration point. Bottom Left..." msgstr "Получение первой точки калибровки. Внизу слева...." -#: flatcamTools/ToolCalibration.py:820 -msgid "Get Second calibration point. Bottom Right..." -msgstr "Получение второй точки калибровки. Внизу справа..." +#: flatcamTools/ToolCalibration.py:906 +msgid "Cancelled by user request." +msgstr "Отменено по запросу пользователя." -#: flatcamTools/ToolCalibration.py:824 -msgid "Get Third calibration point. Top Left..." -msgstr "Получение третьей точки калибровки. Вверху слева..." +#: flatcamTools/ToolCalibration.py:912 +msgid "Get Second calibration point. Bottom Right (Top Left)..." +msgstr "Получите вторую точку калибровки. Внизу справа (вверху слева) ..." -#: flatcamTools/ToolCalibration.py:828 +#: flatcamTools/ToolCalibration.py:916 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "Получите третью точку калибровки. Верхний левый нижний правый)..." + +#: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." msgstr "Получение четвёртой точки калибровки. Вверху справа ..." -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "Готово. Все четыре точки были получены." -#: flatcamTools/ToolCalibration.py:857 -msgid "Verification GCode for FlatCAM Calibrate Tool" -msgstr "Проверка GCode для инструмента калибровки FlatCAM" +#: flatcamTools/ToolCalibration.py:955 +msgid "Verification GCode for FlatCAM Calibration Tool" +msgstr "Проверочный код GCode для инструмента калибровки FlatCAM" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "Просмотрщик Gcode" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." msgstr "Отмена. Для генерации GCode необходимы четыре точки." -#: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 msgid "There is no FlatCAM object selected..." msgstr "Нет выбранного объекта FlatCAM..." @@ -12958,8 +13029,7 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:131 msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is " -"copper cleared.\n" +"- '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 " @@ -12967,7 +13037,7 @@ msgid "" msgstr "" "- 'Как есть' - степень Copper Thieving основан на объекте, который очищается " "от меди.\n" -" - 'Выбор области' - щелкните левой кнопкой мыши для начала выбора области " +"- 'Выбор области' - щелкните левой кнопкой мыши для начала выбора области " "для рисования.\n" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." @@ -12988,19 +13058,16 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:144 flatcamTools/ToolDblSided.py:213 #: flatcamTools/ToolNonCopperClear.py:457 flatcamTools/ToolPaint.py:338 -#| msgid "Reference Object" msgid "Reference Gerber" msgstr "Референсный Gerber" #: flatcamTools/ToolCopperThieving.py:145 flatcamTools/ToolDblSided.py:214 #: flatcamTools/ToolNonCopperClear.py:458 flatcamTools/ToolPaint.py:339 -#| msgid "Open Excellon" msgid "Reference Excellon" msgstr "Референсный Excellon" #: flatcamTools/ToolCopperThieving.py:146 flatcamTools/ToolDblSided.py:215 #: flatcamTools/ToolNonCopperClear.py:459 flatcamTools/ToolPaint.py:340 -#| msgid "Generate Geometry" msgid "Reference Geometry" msgstr "Референсный Geometry" @@ -13015,26 +13082,6 @@ msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Объект FlatCAM, который будет использоваться как ссылка на очистку от меди." -#: flatcamTools/ToolCopperThieving.py:175 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" -"- 'Прямоугольник' - ограничительная рамка будет иметь прямоугольную форму.\n" -"- 'Минимальный' - ограничительная рамка будет повторять форму корпуса." - -#: flatcamTools/ToolCopperThieving.py:197 -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 "" -"- 'Сплошной' - copper thieving будет сплошным полигоном.\n" -"- 'Сетка точек' - пустая область будет заполнена сеткой точек.\n" -"- 'Сетка квадратов' - пустая площадь будет заполнена сеткой квадратов.\n" -"- 'Сетка линий' - пустая область будет заполнена сеткой линий." - #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" msgstr "Вставить Copper thieving" @@ -13159,15 +13206,14 @@ msgstr "Добавить исходный файл" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool done." msgstr "Copper Thieving завершён." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 -#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1155 -#: flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolCutOut.py:640 flatcamTools/ToolNonCopperClear.py:1156 +#: flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 #: flatcamTools/ToolSub.py:492 flatcamTools/ToolSub.py:507 @@ -13177,7 +13223,7 @@ msgid "Could not retrieve object" msgstr "Не удалось получить объект" #: flatcamTools/ToolCopperThieving.py:764 -#: flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "Нажмите на начальную точку области." @@ -13186,7 +13232,7 @@ msgid "Click the end point of the filling area." msgstr "Нажмите на конечную точку области рисования." #: flatcamTools/ToolCopperThieving.py:821 -#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 msgid "Zone added. Click to start adding next zone or right click to finish." msgstr "Зона добавлена. Щелкните правой кнопкой мыши для завершения." @@ -13218,12 +13264,12 @@ msgid "Geometry not supported for bounding box" msgstr "Геометрия не поддерживается для ограничивающих рамок" #: flatcamTools/ToolCopperThieving.py:1061 -#: flatcamTools/ToolNonCopperClear.py:1516 flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "Нет доступных объектов." #: flatcamTools/ToolCopperThieving.py:1098 -#: flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "Тип указанного объекта не поддерживается." @@ -13249,7 +13295,6 @@ msgid "Generating Pattern Plating Mask done." msgstr "Создание рисунка гальванической маски выполнено." #: flatcamTools/ToolCopperThieving.py:1543 -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool exit." msgstr "Выход из Copper Thieving." @@ -13435,8 +13480,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "Операция обрезки закончена." -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "Объект не найден" @@ -13520,10 +13565,6 @@ msgstr "Объект Excellon для отражения." msgid "Geometry Obj to be mirrored." msgstr "Объект Geometry для зеркалирования." -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "Указатель оси:" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "Указатель точка/рамка" @@ -13763,12 +13804,17 @@ msgstr "ИЗМЕРИТЕЛЬ: Нажмите на начальную точку msgid "MEASURING: Click on the Destination point ..." msgstr "ИЗМЕРИТЕЛЬ: Нажмите на конечную точку ..." -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "" -"ИЗМЕРИТЕЛЬ: Результат расстояние(x) = {d_x} | расстояние(y) = {d_y} | " -"Расстояние = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "ИЗМЕРЕНИЕ" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +msgid "Result" +msgstr "Результат" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +msgid "Distance" +msgstr "Расстояние" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -13825,16 +13871,15 @@ msgstr "" msgid "Select two objects and no more. Currently the selection has objects: " msgstr "Выберите два и не более объекта. В настоящее время выбрано объектов: " -#: flatcamTools/ToolDistanceMin.py:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "Объекты пересекаются или касаются друг друга" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "Выполнен переход к средней точке между двумя выбранными объектами" #: flatcamTools/ToolFiducials.py:56 -#| msgid "Points coordinates" msgid "Fiducials Coordinates" msgstr "Координаты контрольных точек" @@ -13858,12 +13903,21 @@ msgstr "Верхний правый" msgid "Second Point" 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 "" +"- 'Авто' - автоматическое размещение контрольных точек по углам " +"ограничительной рамки.\n" +" - 'Вручную' - ручное размещение контрольных точек." + #: flatcamTools/ToolFiducials.py:258 msgid "Copper Gerber" msgstr "Gerber медного слоя" #: flatcamTools/ToolFiducials.py:267 -#| msgid "Add Circle" msgid "Add Fiducial" msgstr "Добавить контрольные точки" @@ -13916,7 +13970,6 @@ msgid "Done. All fiducials have been added." msgstr "Готово. Все контрольные точки были успешно добавлены." #: flatcamTools/ToolFiducials.py:872 -#| msgid "Distance Tool exit..." msgid "Fiducials Tool exit." msgstr "Выход из инструмента контрольных точек." @@ -14062,26 +14115,30 @@ msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" "Объект FlatCAM не выбран. Загрузите объект для Рамки и повторите попытку." -#: flatcamTools/ToolFilm.py:680 +#: flatcamTools/ToolFilm.py:673 +msgid "No FlatCAM object selected." +msgstr "Объект FlatCAM не выбран." + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Создание плёнки ..." -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 msgid "Export positive film" msgstr "Экспорт позитива плёнки" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 msgid "Export positive film cancelled." msgstr "Экспорт позитива плёнки отменен." -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 msgid "" "No Excellon object selected. Load an object for punching reference and retry." msgstr "" "Объект Excellon не выбран. Загрузите объект для перфорации и повторите " "попытку." -#: flatcamTools/ToolFilm.py:784 +#: flatcamTools/ToolFilm.py:794 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger " "than some of the apertures in the Gerber object." @@ -14089,7 +14146,7 @@ msgstr "" " Не удалось создать пленку с перфорированным отверстием, поскольку размер " "перфорированного отверстия больше, чем некоторые отверстия в объекте Gerber." -#: flatcamTools/ToolFilm.py:796 +#: 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." @@ -14097,7 +14154,7 @@ msgstr "" "Не удалось создать пленку с перфорированным отверстием, поскольку размер " "перфорированного отверстия больше, чем некоторые отверстия в объекте Gerber." -#: flatcamTools/ToolFilm.py:814 +#: flatcamTools/ToolFilm.py:824 msgid "" "Could not generate punched hole film because the newly created object " "geometry is the same as the one in the source object geometry..." @@ -14105,24 +14162,24 @@ msgstr "" "Не удалось создать пленку с перфорацией, поскольку геометрия вновь " "созданного объекта такая же, как в геометрии исходного объекта ..." -#: flatcamTools/ToolFilm.py:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 msgid "Export negative film" msgstr "Экспорт негатива плёнки" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 msgid "Export negative film cancelled." msgstr "Экспорт негатива плёнки отменен." -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "Нет объекта Box. Используйте взамен" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 msgid "Film file exported to" msgstr "Файл плёнки экспортируется в" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "Создание плёнки ... Пожалуйста, подождите." @@ -14435,115 +14492,115 @@ msgstr "" msgid "Generate Geometry" msgstr "Создать объект" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "Новый инструмент" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 msgid "Please enter a tool diameter to add, in Float format." msgstr "" "Пожалуйста, введите диаметр инструмента для добавления в формате Float." -#: flatcamTools/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "" "Добавление инструмента отменено. Инструмент уже в таблице инструментов." -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "Новый инструмент добавлен в таблицу инструментов." -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "Инструмент был изменён в таблице инструментов." -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" "Правка отменена. Новое значение диаметра уже находится в таблице " "инструментов." -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "Ошибка удаления. Выберите инструмент для удаления." -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "Инструмент удалён из таблицы инструментов." -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 msgid "Wrong Tool Dia value format entered, use a number." msgstr "Неверный формат ввода диаметра инструмента, используйте цифры." -#: flatcamTools/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "Нет инструментов сопла в таблице инструментов." -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "Нажмите на конечную точку области рисования." -#: flatcamTools/ToolNonCopperClear.py:1413 -#: flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 +#: flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "Очистка от меди ..." -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "Очистка от меди. Чтение параметров." -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "Очистка от меди. Подготовка безмедных полигонов." -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 msgid "" "NCC Tool. Finished non-copper polygons. Normal copper clearing task started." msgstr "" "Очистка от меди. Безмедные полигоны готовы. Началось задание по нормальной " "очистке меди." -#: flatcamTools/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "Очистка от меди. Расчёт «пустой» области." -#: flatcamTools/ToolNonCopperClear.py:1629 -#: flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 -#: flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 -#: flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 +#: flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 +#: flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 +#: flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "Буферизация закончена" -#: flatcamTools/ToolNonCopperClear.py:1747 -#: flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 +#: flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "Выбранный объект не подходит для очистки меди." -#: flatcamTools/ToolNonCopperClear.py:1752 -#: flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 +#: flatcamTools/ToolNonCopperClear.py:2109 msgid "Could not get the extent of the area to be non copper cleared." msgstr "Не удалось получить размер области, не подлежащей очистке от меди." -#: flatcamTools/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "Очистка от меди. Закончен расчёт «пустой» области." -#: flatcamTools/ToolNonCopperClear.py:1772 -#: flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 +#: flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "Очистка от меди инструментом с диаметром = " -#: flatcamTools/ToolNonCopperClear.py:1775 -#: flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 +#: flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "запущен." -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 msgid "" "There is no NCC Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14555,24 +14612,24 @@ msgstr "" "рисования .\n" "Измените параметры рисования и повторите попытку." -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "Очистка от меди выполнена." -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 msgid "NCC Tool clear all done but the copper features isolation is broken for" msgstr "Очистка от меди выполнена, но медная изоляция нарушена для" -#: flatcamTools/ToolNonCopperClear.py:1943 -#: flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 +#: flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "инструментов" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "Очистка от меди с обработкой остаточного припуска выполнена." -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is " "broken for" @@ -14580,7 +14637,7 @@ msgstr "" "Очистка от меди с обработкой остаточного припуска выполнена, но медная " "изоляция нарушена для" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. " "Reload the Gerber file after this change." @@ -14886,72 +14943,72 @@ msgstr "" "- «Контрольный объект» - будет выполнять очистку от меди в области\n" "указано другим объектом." -#: flatcamTools/ToolPaint.py:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "Инструмент рисования. Чтение параметров." -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "Не удалось получить объект: %s" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "Невозможно окрашивание MultiGeo Geometries" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 msgid "Click on a polygon to paint it." msgstr "Нажмите на полигон, чтобы нарисовать его." -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Нажмите на начальную точку области рисования." -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 msgid "Click to add next polygon or right click to start painting." msgstr "" "Щелкните, чтобы добавить следующий полигон, или щелкните правой кнопкой " "мыши, чтобы начать рисование." -#: flatcamTools/ToolPaint.py:1138 +#: flatcamTools/ToolPaint.py:1140 msgid "Click to add/remove next polygon or right click to start painting." msgstr "" "Нажмите для добавления/удаления следующего полигона или щелкните правой " "кнопкой мыши, чтобы начать рисование." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "Рисование." -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "Началась задача нормальной отрисовки полигона." -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "Буферизация geometry..." -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "Полигон не найден." -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "Отрисовка полигона..." -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "Геометрия не может быть окрашена полностью" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a " "different strategy of paint" @@ -14959,9 +15016,9 @@ msgstr "" "Окраска не выполнена. Попробуйте другую комбинацию параметров. Или другой " "способ рисования" -#: flatcamTools/ToolPaint.py:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 msgid "" "There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -14973,36 +15030,36 @@ msgstr "" "Geometry .\n" "Измените параметры рисования и повторите попытку." -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "Paint Single выполнена." -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "Запущена отрисовка полигона ..." -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "Отрисовка полигонов..." -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "Инструмент рисования. Запущены все задания нормальной покраски." -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "Покраска инструментом с диаметром = " -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "запущено" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a " "different Method of paint" @@ -15010,33 +15067,33 @@ msgstr "" "Окраска не выполнена. Попробуйте другую комбинацию параметров. Или другой " "способ рисования" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "Задание \"Окрасить всё\" выполнено." -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "Запущены все задания окраски с обработкой остаточного припуска." -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "[success] Окрашивание с обработкой остаточного припуска выполнено." -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "Запущена задача нормальной окраски." -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "Окраска области сделана." -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "Запущено задание окраски с обработкой остаточного припуска." -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "" "Инструмент рисования. Запущено задание окраски с обработкой остаточного " @@ -15423,17 +15480,14 @@ msgid "Drills number" msgstr "Номер отверстия" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 -#| msgid "tool number" msgid "Slots number" msgstr "Номер паза" #: flatcamTools/ToolProperties.py:404 -#| msgid "tool number" msgid "Drills total number:" msgstr "Общее количество отверстий:" #: flatcamTools/ToolProperties.py:405 -#| msgid "tool number" msgid "Slots total number:" msgstr "Общее количество пазов:" @@ -15444,7 +15498,6 @@ msgid "Present" msgstr "Представление" #: flatcamTools/ToolProperties.py:427 flatcamTools/ToolProperties.py:457 -#| msgid "Buffer Solid Geometry" msgid "Solid Geometry" msgstr "Сплошная Geometry" @@ -16042,41 +16095,41 @@ msgstr "" msgid "Generating Solder Paste dispensing geometry..." msgstr "Генерация геометрии дозирования паяльной пасты ..." -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "Объект Geometry недоступен." -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." msgstr "" "Эта геометрия не может быть обработана. НЕТ геометрии инструмента паяльная " "пасты." -#: flatcamTools/ToolSolderPaste.py:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "CNCjob дозатора паяльной пасты создан" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 msgid "SP GCode Editor" msgstr "Редактор кода паяльной пасты" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 msgid "" "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" "Этот объект CNCJob не может быть обработан. Нет CNCJob объекта паяльной " "пасты." -#: flatcamTools/ToolSolderPaste.py:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "Нет Gcode в этом объекте" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "Экспорт GCode ..." -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "Файл GCode дозатора паяльной пасты сохранён в" @@ -16372,16 +16425,16 @@ msgstr "Ожидался список имен объектов, разделе msgid "TclCommand Bounds done." msgstr "Tcl-команда \"Границы\" выполнена." -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "Ожидалось -box <значение>." -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "Не удалось получить объект box" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." @@ -16390,11 +16443,11 @@ msgstr "" "был установлен в 1.\n" "Очистка от меди не удалась." -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "Ожидались -x <значение> и -y <значение>." -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." @@ -16425,6 +16478,116 @@ msgstr "" msgid "No Geometry name in args. Provide a name and try again." msgstr "Нет имени геометрии в аргументах. Укажите имя и попробуйте снова." +#, python-brace-format +#~ msgid "" +#~ "[selected] {kind} created/selected: {name}" +#~ "" +#~ msgstr "" +#~ "[selected] {kind} создан/выбран: {name}" + +#, python-brace-format +#~ msgid "[selected]{name} selected" +#~ msgstr "[selected]{name} выбран" + +#, python-brace-format +#~ msgid "{l_save}/Project_{date}" +#~ msgstr "{l_save}/Project_{date}" + +#, python-format +#~ msgid "" +#~ "How much (fraction) of the tool width to overlap each tool pass.\n" +#~ "Example:\n" +#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n" +#~ "\n" +#~ "Adjust the value starting with lower values\n" +#~ "and increasing it if areas that should be painted are still \n" +#~ "not painted.\n" +#~ "Lower values = faster processing, faster execution on CNC.\n" +#~ "Higher values = slow processing and slow execution on CNC\n" +#~ "due of too many paths." +#~ msgstr "" +#~ "Какая часть ширины инструмента будет перекрываться за каждый проход " +#~ "инструмента.\n" +#~ "Пример:\n" +#~ "Здесь значение 0.25 означает 25%% от диаметра инструмента, указанного " +#~ "выше.\n" +#~ "\n" +#~ "Отрегулируйте значение, начиная с более низких значений\n" +#~ "и увеличивая его, если области, которые должны быть нарисованы, все ещё\n" +#~ "не окрашены.\n" +#~ "Более низкие значения = более быстрая обработка, более быстрое выполнение " +#~ "на печатной плате.\n" +#~ "Более высокие значения = медленная обработка и медленное выполнение на " +#~ "ЧПУ\n" +#~ "из-за большого количества путей." + +#~ msgid "Paint Area" +#~ msgstr "Область рисования" + +#~ msgid "" +#~ "Type here any G-Code commands you would like to add at the beginning of " +#~ "the G-Code file." +#~ msgstr "" +#~ "Введите здесь любые команды G-Code, которые вы хотите добавить в начало " +#~ "файла G-кода." + +#~ msgid "" +#~ "Type here any G-Code commands you would like to append to the generated " +#~ "file. I.e.: M2 (End of program)" +#~ msgstr "" +#~ "Введите здесь любые G-Code команды, которые вам хотелось бы добавить к " +#~ "созданному файлу. напр.: M2 (конец программы)" + +#~ msgid "" +#~ "Can be:\n" +#~ "- Portrait\n" +#~ "- Lanscape" +#~ msgstr "" +#~ "Может быть:\n" +#~ "- Портрет\n" +#~ "- Альбом" + +#~ msgid "" +#~ "- 'Rectangular' - the bounding box will be of rectangular shape.\n" +#~ " - 'Minimal' - the bounding box will be the convex hull shape." +#~ msgstr "" +#~ "- 'Прямоугольник' - ограничительная рамка будет иметь прямоугольную " +#~ "форму.\n" +#~ " - 'Минимальный' - ограничительная рамка будет повторять форму корпуса." + +#~ 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 "" +#~ "- 'Сплошной' - copper thieving будет сплошным полигоном.\n" +#~ "- 'Сетка точек' - пустая область будет заполнена сеткой точек.\n" +#~ "- 'Сетка квадратов' - пустая площадь будет заполнена сеткой квадратов.\n" +#~ "- 'Сетка линий' - пустая область будет заполнена сеткой линий." + +#~ msgid "" +#~ "Generate GCode file to locate and align the PCB by using\n" +#~ "the four points acquired above." +#~ msgstr "" +#~ "Генерация файла GCode для расположения и выравнивания печатной платы с " +#~ "использованием\n" +#~ "четырёх точек, полученных выше." + +#~ msgid "Calibrate Tool" +#~ msgstr "Колибровка" + +#~ msgid "Axis Ref:" +#~ msgstr "Указатель оси:" + +#, python-brace-format +#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#~ msgstr "" +#~ "ИЗМЕРИТЕЛЬ: Результат расстояние(x) = {d_x} | расстояние(y) = {d_y} | " +#~ "Расстояние = {d_z}" + #, fuzzy #~| msgid "" #~| "How much (fraction) of the tool width to overlap each tool pass.\n" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index aa6af31b..57288f31 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-12-09 16:38+0200\n" +"POT-Creation-Date: 2019-12-14 02:48+0200\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -23,261 +23,260 @@ msgstr "" "X-Poedit-SearchPathExcluded-1: doc\n" "X-Poedit-SearchPathExcluded-2: tests\n" -#: FlatCAMApp.py:988 +#: FlatCAMApp.py:999 msgid "FlatCAM is initializing ..." msgstr "" -#: FlatCAMApp.py:1566 +#: FlatCAMApp.py:1580 msgid "Could not find the Language files. The App strings are missing." msgstr "" -#: FlatCAMApp.py:1659 +#: FlatCAMApp.py:1673 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started." msgstr "" -#: FlatCAMApp.py:1677 +#: FlatCAMApp.py:1691 msgid "" "FlatCAM is initializing ...\n" "Canvas initialization started.\n" "Canvas initialization finished in" msgstr "" -#: FlatCAMApp.py:2373 +#: FlatCAMApp.py:2388 msgid "" "Type >help< to get started\n" "\n" msgstr "" -#: FlatCAMApp.py:2627 FlatCAMApp.py:9088 +#: FlatCAMApp.py:2643 FlatCAMApp.py:9138 msgid "New Project - Not saved" msgstr "" -#: FlatCAMApp.py:2702 FlatCAMApp.py:9156 FlatCAMApp.py:9193 FlatCAMApp.py:9234 -#: FlatCAMApp.py:10021 FlatCAMApp.py:10922 FlatCAMApp.py:10981 +#: FlatCAMApp.py:2718 FlatCAMApp.py:9206 FlatCAMApp.py:9243 FlatCAMApp.py:9284 +#: FlatCAMApp.py:9355 FlatCAMApp.py:10109 FlatCAMApp.py:11123 FlatCAMApp.py:11182 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" msgstr "" -#: FlatCAMApp.py:2704 +#: FlatCAMApp.py:2720 msgid "Executing Tcl Script ..." msgstr "" -#: FlatCAMApp.py:2719 +#: FlatCAMApp.py:2735 msgid "Found old default preferences files. Please reboot the application to update." msgstr "" -#: FlatCAMApp.py:2763 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 +#: FlatCAMApp.py:2779 ObjectCollection.py:90 flatcamTools/ToolImage.py:248 #: flatcamTools/ToolPcbWizard.py:301 flatcamTools/ToolPcbWizard.py:324 msgid "Open cancelled." msgstr "" -#: FlatCAMApp.py:2779 +#: FlatCAMApp.py:2795 msgid "Open Config file failed." msgstr "" -#: FlatCAMApp.py:2794 +#: FlatCAMApp.py:2810 msgid "Open Script file failed." msgstr "" -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2836 msgid "Open Excellon file failed." msgstr "" -#: FlatCAMApp.py:2833 +#: FlatCAMApp.py:2849 msgid "Open GCode file failed." msgstr "" -#: FlatCAMApp.py:2846 +#: FlatCAMApp.py:2862 msgid "Open Gerber file failed." msgstr "" -#: FlatCAMApp.py:3186 +#: FlatCAMApp.py:3203 msgid "Select a Geometry, Gerber or Excellon Object to edit." msgstr "" -#: FlatCAMApp.py:3201 +#: FlatCAMApp.py:3218 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n" "Edit only one geometry at a time." msgstr "" -#: FlatCAMApp.py:3256 +#: FlatCAMApp.py:3273 msgid "Editor is activated ..." msgstr "" -#: FlatCAMApp.py:3277 +#: FlatCAMApp.py:3294 msgid "Do you want to save the edited object?" msgstr "" -#: FlatCAMApp.py:3278 flatcamGUI/FlatCAMGUI.py:1957 +#: FlatCAMApp.py:3295 flatcamGUI/FlatCAMGUI.py:1969 msgid "Close Editor" msgstr "" -#: FlatCAMApp.py:3281 FlatCAMApp.py:4965 FlatCAMApp.py:7817 FlatCAMApp.py:7843 -#: FlatCAMApp.py:8995 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 +#: FlatCAMApp.py:3298 FlatCAMApp.py:5001 FlatCAMApp.py:7861 FlatCAMApp.py:7887 +#: FlatCAMApp.py:9045 FlatCAMTranslation.py:97 FlatCAMTranslation.py:171 #: flatcamGUI/PreferencesUI.py:1034 msgid "Yes" msgstr "" -#: FlatCAMApp.py:3282 FlatCAMApp.py:4966 FlatCAMApp.py:7818 FlatCAMApp.py:7844 -#: FlatCAMApp.py:8996 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 -#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4076 -#: flatcamGUI/PreferencesUI.py:4501 flatcamTools/ToolNonCopperClear.py:189 +#: FlatCAMApp.py:3299 FlatCAMApp.py:5002 FlatCAMApp.py:7862 FlatCAMApp.py:7888 +#: FlatCAMApp.py:9046 FlatCAMTranslation.py:98 FlatCAMTranslation.py:172 +#: flatcamGUI/PreferencesUI.py:1035 flatcamGUI/PreferencesUI.py:4094 +#: flatcamGUI/PreferencesUI.py:4519 flatcamTools/ToolNonCopperClear.py:189 #: flatcamTools/ToolPaint.py:161 msgid "No" msgstr "" -#: FlatCAMApp.py:3283 FlatCAMApp.py:4967 FlatCAMApp.py:5803 FlatCAMApp.py:7121 -#: FlatCAMApp.py:8997 FlatCAMCommon.py:694 flatcamGUI/FlatCAMGUI.py:1105 +#: FlatCAMApp.py:3300 FlatCAMApp.py:5003 FlatCAMApp.py:5839 FlatCAMApp.py:7157 +#: FlatCAMApp.py:9047 FlatCAMCommon.py:702 flatcamGUI/FlatCAMGUI.py:1117 msgid "Cancel" msgstr "" -#: FlatCAMApp.py:3311 +#: FlatCAMApp.py:3328 msgid "Object empty after edit." msgstr "" -#: FlatCAMApp.py:3360 FlatCAMApp.py:3380 FlatCAMApp.py:3395 +#: FlatCAMApp.py:3377 FlatCAMApp.py:3397 FlatCAMApp.py:3412 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" -#: FlatCAMApp.py:3364 +#: FlatCAMApp.py:3381 msgid "is updated, returning to App..." msgstr "" -#: FlatCAMApp.py:3759 FlatCAMApp.py:3833 FlatCAMApp.py:4827 +#: FlatCAMApp.py:3776 FlatCAMApp.py:3850 FlatCAMApp.py:4863 msgid "Could not load defaults file." msgstr "" -#: FlatCAMApp.py:3771 FlatCAMApp.py:3842 FlatCAMApp.py:4836 +#: FlatCAMApp.py:3788 FlatCAMApp.py:3859 FlatCAMApp.py:4872 msgid "Failed to parse defaults file." msgstr "" -#: FlatCAMApp.py:3813 FlatCAMApp.py:3817 +#: FlatCAMApp.py:3830 FlatCAMApp.py:3834 msgid "Import FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:3824 +#: FlatCAMApp.py:3841 msgid "FlatCAM preferences import cancelled." msgstr "" -#: FlatCAMApp.py:3847 +#: FlatCAMApp.py:3864 msgid "Imported Defaults from" msgstr "" -#: FlatCAMApp.py:3867 FlatCAMApp.py:3872 +#: FlatCAMApp.py:3884 FlatCAMApp.py:3889 msgid "Export FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:3880 +#: FlatCAMApp.py:3897 msgid "FlatCAM preferences export cancelled." msgstr "" -#: FlatCAMApp.py:3889 FlatCAMApp.py:10204 FlatCAMApp.py:10252 FlatCAMApp.py:10375 -#: FlatCAMApp.py:10514 FlatCAMCommon.py:378 FlatCAMCommon.py:1066 FlatCAMObj.py:6523 -#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1009 -#: flatcamTools/ToolFilm.py:1180 flatcamTools/ToolSolderPaste.py:1543 +#: FlatCAMApp.py:3906 FlatCAMApp.py:10338 FlatCAMApp.py:10386 FlatCAMApp.py:10509 +#: FlatCAMApp.py:10648 FlatCAMCommon.py:378 FlatCAMCommon.py:1094 FlatCAMObj.py:6721 +#: flatcamEditors/FlatCAMTextEditor.py:228 flatcamTools/ToolFilm.py:1019 +#: flatcamTools/ToolFilm.py:1195 flatcamTools/ToolSolderPaste.py:1541 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." msgstr "" -#: FlatCAMApp.py:3902 +#: FlatCAMApp.py:3919 msgid "Could not load preferences file." msgstr "" -#: FlatCAMApp.py:3922 FlatCAMApp.py:4883 +#: FlatCAMApp.py:3939 FlatCAMApp.py:4919 msgid "Failed to write defaults to file." msgstr "" -#: FlatCAMApp.py:3928 +#: FlatCAMApp.py:3945 msgid "Exported preferences to" msgstr "" -#: FlatCAMApp.py:3945 +#: FlatCAMApp.py:3962 msgid "FlatCAM Preferences Folder opened." msgstr "" -#: FlatCAMApp.py:4028 +#: FlatCAMApp.py:4045 msgid "Failed to open recent files file for writing." msgstr "" -#: FlatCAMApp.py:4039 +#: FlatCAMApp.py:4056 msgid "Failed to open recent projects file for writing." msgstr "" -#: FlatCAMApp.py:4125 flatcamParsers/ParseExcellon.py:886 -#: flatcamTools/ToolSolderPaste.py:1329 +#: FlatCAMApp.py:4142 flatcamParsers/ParseExcellon.py:886 +#: flatcamTools/ToolSolderPaste.py:1327 msgid "An internal error has ocurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:4126 +#: FlatCAMApp.py:4143 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" "\n" msgstr "" -#: FlatCAMApp.py:4146 +#: FlatCAMApp.py:4163 msgid "Converting units to " msgstr "" -#: FlatCAMApp.py:4249 +#: FlatCAMApp.py:4266 msgid "CREATE A NEW FLATCAM TCL SCRIPT" msgstr "" -#: FlatCAMApp.py:4250 +#: FlatCAMApp.py:4267 msgid "TCL Tutorial is here" msgstr "" -#: FlatCAMApp.py:4252 +#: FlatCAMApp.py:4269 msgid "FlatCAM commands list" msgstr "" -#: FlatCAMApp.py:4300 FlatCAMApp.py:4303 FlatCAMApp.py:4306 FlatCAMApp.py:4309 -#: FlatCAMApp.py:4312 FlatCAMApp.py:4315 -#, python-brace-format -msgid "[selected] {kind} created/selected: {name}" +#: FlatCAMApp.py:4320 FlatCAMApp.py:4326 FlatCAMApp.py:4332 FlatCAMApp.py:4338 +#: FlatCAMApp.py:4344 FlatCAMApp.py:4350 +msgid "created/selected" msgstr "" -#: FlatCAMApp.py:4330 FlatCAMApp.py:7201 FlatCAMObj.py:262 FlatCAMObj.py:281 -#: FlatCAMObj.py:297 FlatCAMObj.py:377 flatcamTools/ToolCopperThieving.py:1475 +#: FlatCAMApp.py:4365 FlatCAMApp.py:7237 FlatCAMObj.py:263 FlatCAMObj.py:294 +#: FlatCAMObj.py:310 FlatCAMObj.py:390 flatcamTools/ToolCopperThieving.py:1475 #: flatcamTools/ToolFiducials.py:807 flatcamTools/ToolMove.py:220 #: flatcamTools/ToolQRCode.py:726 msgid "Plotting" msgstr "" -#: FlatCAMApp.py:4391 flatcamGUI/FlatCAMGUI.py:456 +#: FlatCAMApp.py:4426 flatcamGUI/FlatCAMGUI.py:467 msgid "About FlatCAM" msgstr "" -#: FlatCAMApp.py:4417 +#: FlatCAMApp.py:4452 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "" -#: FlatCAMApp.py:4418 +#: FlatCAMApp.py:4453 msgid "Development" msgstr "" -#: FlatCAMApp.py:4419 +#: FlatCAMApp.py:4454 msgid "DOWNLOAD" msgstr "" -#: FlatCAMApp.py:4420 +#: FlatCAMApp.py:4455 msgid "Issue tracker" msgstr "" -#: FlatCAMApp.py:4424 FlatCAMApp.py:4758 +#: FlatCAMApp.py:4459 FlatCAMApp.py:4794 msgid "Close" msgstr "" -#: FlatCAMApp.py:4439 +#: FlatCAMApp.py:4474 msgid "Licensed under the MIT license" msgstr "" -#: FlatCAMApp.py:4448 +#: FlatCAMApp.py:4483 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" @@ -298,67 +297,68 @@ msgid "" "THE SOFTWARE." msgstr "" -#: FlatCAMApp.py:4470 +#: FlatCAMApp.py:4505 msgid "" -"Some of the icons used are from the following sources:
Icons made by Freepik from www.flaticon.comIcons by Icons8" +"Some of the icons used are from the following sources:
Icons " +"by Icons8
Icons by oNline Web Fonts" msgstr "" -#: FlatCAMApp.py:4501 +#: FlatCAMApp.py:4537 msgid "Splash" msgstr "" -#: FlatCAMApp.py:4507 +#: FlatCAMApp.py:4543 msgid "Programmers" msgstr "" -#: FlatCAMApp.py:4513 +#: FlatCAMApp.py:4549 msgid "Translators" msgstr "" -#: FlatCAMApp.py:4519 +#: FlatCAMApp.py:4555 msgid "License" msgstr "" -#: FlatCAMApp.py:4525 +#: FlatCAMApp.py:4561 msgid "Attributions" msgstr "" -#: FlatCAMApp.py:4548 +#: FlatCAMApp.py:4584 msgid "Programmer" msgstr "" -#: FlatCAMApp.py:4549 +#: FlatCAMApp.py:4585 msgid "Status" msgstr "" -#: FlatCAMApp.py:4550 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4586 FlatCAMApp.py:4657 msgid "E-mail" msgstr "" -#: FlatCAMApp.py:4558 +#: FlatCAMApp.py:4594 msgid "BETA Maintainer >= 2019" msgstr "" -#: FlatCAMApp.py:4618 +#: FlatCAMApp.py:4654 msgid "Language" msgstr "" -#: FlatCAMApp.py:4619 +#: FlatCAMApp.py:4655 msgid "Translator" msgstr "" -#: FlatCAMApp.py:4620 +#: FlatCAMApp.py:4656 msgid "Corrections" msgstr "" -#: FlatCAMApp.py:4729 FlatCAMApp.py:4737 FlatCAMApp.py:7862 flatcamGUI/FlatCAMGUI.py:440 +#: FlatCAMApp.py:4765 FlatCAMApp.py:4773 FlatCAMApp.py:7906 flatcamGUI/FlatCAMGUI.py:451 msgid "Bookmarks Manager" msgstr "" -#: FlatCAMApp.py:4749 +#: FlatCAMApp.py:4785 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -370,61 +370,61 @@ msgid "" "use the YouTube channel link from the Help menu." msgstr "" -#: FlatCAMApp.py:4756 +#: FlatCAMApp.py:4792 msgid "Alternative website" msgstr "" -#: FlatCAMApp.py:4887 FlatCAMApp.py:7826 +#: FlatCAMApp.py:4923 FlatCAMApp.py:7870 msgid "Preferences saved." msgstr "" -#: FlatCAMApp.py:4915 +#: FlatCAMApp.py:4951 msgid "Could not load factory defaults file." msgstr "" -#: FlatCAMApp.py:4925 +#: FlatCAMApp.py:4961 msgid "Failed to parse factory defaults file." msgstr "" -#: FlatCAMApp.py:4941 +#: FlatCAMApp.py:4977 msgid "Failed to write factory defaults to file." msgstr "" -#: FlatCAMApp.py:4945 +#: FlatCAMApp.py:4981 msgid "Factory defaults saved." msgstr "" -#: FlatCAMApp.py:4955 flatcamGUI/FlatCAMGUI.py:3678 +#: FlatCAMApp.py:4991 flatcamGUI/FlatCAMGUI.py:3691 msgid "Application is saving the project. Please wait ..." msgstr "" -#: FlatCAMApp.py:4960 FlatCAMTranslation.py:166 +#: FlatCAMApp.py:4996 FlatCAMTranslation.py:166 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" msgstr "" -#: FlatCAMApp.py:4963 FlatCAMApp.py:8993 FlatCAMTranslation.py:169 +#: FlatCAMApp.py:4999 FlatCAMApp.py:9043 FlatCAMTranslation.py:169 msgid "Save changes" msgstr "" -#: FlatCAMApp.py:5204 +#: FlatCAMApp.py:5240 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" -#: FlatCAMApp.py:5226 +#: FlatCAMApp.py:5262 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" -#: FlatCAMApp.py:5248 +#: FlatCAMApp.py:5284 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" -#: FlatCAMApp.py:5436 FlatCAMApp.py:5493 FlatCAMApp.py:5521 +#: FlatCAMApp.py:5472 FlatCAMApp.py:5529 FlatCAMApp.py:5557 msgid "At least two objects are required for join. Objects currently selected" msgstr "" -#: FlatCAMApp.py:5445 +#: FlatCAMApp.py:5481 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 " @@ -434,51 +434,51 @@ msgid "" "Check the generated GCODE." msgstr "" -#: FlatCAMApp.py:5457 +#: FlatCAMApp.py:5493 msgid "Multigeo. Geometry merging finished" msgstr "" -#: FlatCAMApp.py:5466 +#: FlatCAMApp.py:5502 msgid "Geometry merging finished" msgstr "" -#: FlatCAMApp.py:5488 +#: FlatCAMApp.py:5524 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" -#: FlatCAMApp.py:5498 +#: FlatCAMApp.py:5534 msgid "Excellon merging finished" msgstr "" -#: FlatCAMApp.py:5516 +#: FlatCAMApp.py:5552 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "" -#: FlatCAMApp.py:5526 +#: FlatCAMApp.py:5562 msgid "Gerber merging finished" msgstr "" -#: FlatCAMApp.py:5546 FlatCAMApp.py:5581 +#: FlatCAMApp.py:5582 FlatCAMApp.py:5617 msgid "Failed. Select a Geometry Object and try again." msgstr "" -#: FlatCAMApp.py:5550 FlatCAMApp.py:5586 +#: FlatCAMApp.py:5586 FlatCAMApp.py:5622 msgid "Expected a FlatCAMGeometry, got" msgstr "" -#: FlatCAMApp.py:5563 +#: FlatCAMApp.py:5599 msgid "A Geometry object was converted to MultiGeo type." msgstr "" -#: FlatCAMApp.py:5601 +#: FlatCAMApp.py:5637 msgid "A Geometry object was converted to SingleGeo type." msgstr "" -#: FlatCAMApp.py:5797 +#: FlatCAMApp.py:5833 msgid "Toggle Units" msgstr "" -#: FlatCAMApp.py:5799 +#: FlatCAMApp.py:5835 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -486,790 +486,824 @@ msgid "" "Do you want to continue?" msgstr "" -#: FlatCAMApp.py:5802 FlatCAMApp.py:7044 FlatCAMApp.py:7120 FlatCAMApp.py:9320 -#: FlatCAMApp.py:9334 FlatCAMApp.py:9688 FlatCAMApp.py:9699 +#: FlatCAMApp.py:5838 FlatCAMApp.py:7080 FlatCAMApp.py:7156 FlatCAMApp.py:9408 +#: FlatCAMApp.py:9422 FlatCAMApp.py:9776 FlatCAMApp.py:9787 msgid "Ok" msgstr "" -#: FlatCAMApp.py:5851 +#: FlatCAMApp.py:5887 msgid "Converted units to" msgstr "" -#: FlatCAMApp.py:5865 +#: FlatCAMApp.py:5901 msgid "Units conversion cancelled." msgstr "" -#: FlatCAMApp.py:6738 +#: FlatCAMApp.py:6774 msgid "Detachable Tabs" msgstr "" -#: FlatCAMApp.py:6957 FlatCAMApp.py:7004 FlatCAMApp.py:7652 FlatCAMApp.py:7715 -#: FlatCAMApp.py:7781 +#: FlatCAMApp.py:6993 FlatCAMApp.py:7040 FlatCAMApp.py:7696 FlatCAMApp.py:7759 +#: FlatCAMApp.py:7825 msgid "Preferences" msgstr "" -#: FlatCAMApp.py:6960 +#: FlatCAMApp.py:6996 msgid "Preferences applied." msgstr "" -#: FlatCAMApp.py:7009 +#: FlatCAMApp.py:7045 msgid "Preferences closed without saving." msgstr "" -#: FlatCAMApp.py:7032 flatcamTools/ToolNonCopperClear.py:596 -#: flatcamTools/ToolNonCopperClear.py:991 flatcamTools/ToolPaint.py:506 +#: FlatCAMApp.py:7068 flatcamTools/ToolNonCopperClear.py:596 +#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:507 #: flatcamTools/ToolSolderPaste.py:562 flatcamTools/ToolSolderPaste.py:889 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" -#: FlatCAMApp.py:7037 flatcamTools/ToolNonCopperClear.py:600 flatcamTools/ToolPaint.py:510 +#: FlatCAMApp.py:7073 flatcamTools/ToolNonCopperClear.py:600 flatcamTools/ToolPaint.py:511 #: flatcamTools/ToolSolderPaste.py:566 msgid "Adding Tool cancelled" msgstr "" -#: FlatCAMApp.py:7040 +#: FlatCAMApp.py:7076 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." msgstr "" -#: FlatCAMApp.py:7115 +#: FlatCAMApp.py:7151 msgid "Delete objects" msgstr "" -#: FlatCAMApp.py:7118 +#: FlatCAMApp.py:7154 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" msgstr "" -#: FlatCAMApp.py:7149 +#: FlatCAMApp.py:7185 msgid "Object(s) deleted" msgstr "" -#: FlatCAMApp.py:7153 +#: FlatCAMApp.py:7189 msgid "Failed. No object(s) selected..." msgstr "" -#: FlatCAMApp.py:7155 +#: FlatCAMApp.py:7191 msgid "Save the work in Editor and try again ..." msgstr "" -#: FlatCAMApp.py:7185 +#: FlatCAMApp.py:7221 msgid "Object deleted" msgstr "" -#: FlatCAMApp.py:7212 +#: FlatCAMApp.py:7248 msgid "Click to set the origin ..." msgstr "" -#: FlatCAMApp.py:7234 +#: FlatCAMApp.py:7270 msgid "Setting Origin..." msgstr "" -#: FlatCAMApp.py:7246 +#: FlatCAMApp.py:7282 msgid "Origin set" msgstr "" -#: FlatCAMApp.py:7253 +#: FlatCAMApp.py:7289 msgid "Origin coordinates specified but incomplete." msgstr "" -#: FlatCAMApp.py:7311 +#: FlatCAMApp.py:7347 msgid "Jump to ..." msgstr "" -#: FlatCAMApp.py:7312 +#: FlatCAMApp.py:7348 msgid "Enter the coordinates in format X,Y:" msgstr "" -#: FlatCAMApp.py:7320 +#: FlatCAMApp.py:7356 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "" -#: FlatCAMApp.py:7380 flatcamEditors/FlatCAMExcEditor.py:3518 -#: flatcamEditors/FlatCAMExcEditor.py:3526 flatcamEditors/FlatCAMGeoEditor.py:3887 -#: flatcamEditors/FlatCAMGeoEditor.py:3902 flatcamEditors/FlatCAMGrbEditor.py:1068 +#: FlatCAMApp.py:7424 flatcamEditors/FlatCAMExcEditor.py:3518 +#: flatcamEditors/FlatCAMExcEditor.py:3526 flatcamEditors/FlatCAMGeoEditor.py:3885 +#: flatcamEditors/FlatCAMGeoEditor.py:3900 flatcamEditors/FlatCAMGrbEditor.py:1068 #: flatcamEditors/FlatCAMGrbEditor.py:1172 flatcamEditors/FlatCAMGrbEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:1704 flatcamEditors/FlatCAMGrbEditor.py:4368 -#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2858 -#: flatcamGUI/FlatCAMGUI.py:2870 +#: flatcamEditors/FlatCAMGrbEditor.py:4383 flatcamGUI/FlatCAMGUI.py:2871 +#: flatcamGUI/FlatCAMGUI.py:2883 msgid "Done." msgstr "" -#: FlatCAMApp.py:7532 FlatCAMApp.py:7603 +#: FlatCAMApp.py:7576 FlatCAMApp.py:7647 msgid "No object is selected. Select an object and try again." msgstr "" -#: FlatCAMApp.py:7623 +#: FlatCAMApp.py:7667 msgid "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "" -#: FlatCAMApp.py:7629 +#: FlatCAMApp.py:7673 msgid "The current task was gracefully closed on user request..." msgstr "" -#: FlatCAMApp.py:7712 +#: FlatCAMApp.py:7756 msgid "Preferences edited but not saved." msgstr "" -#: FlatCAMApp.py:7726 FlatCAMApp.py:7738 FlatCAMApp.py:7755 FlatCAMApp.py:7772 -#: FlatCAMApp.py:7832 FlatCAMCommon.py:1133 FlatCAMCommon.py:1307 FlatCAMObj.py:4107 +#: FlatCAMApp.py:7770 FlatCAMApp.py:7782 FlatCAMApp.py:7799 FlatCAMApp.py:7816 +#: FlatCAMApp.py:7876 FlatCAMCommon.py:1161 FlatCAMCommon.py:1336 FlatCAMObj.py:4213 msgid "Tools Database" msgstr "" -#: FlatCAMApp.py:7752 +#: FlatCAMApp.py:7796 msgid "Tools in Tools Database edited but not saved." msgstr "" -#: FlatCAMApp.py:7776 +#: FlatCAMApp.py:7820 msgid "Tool from DB added in Tool Table." msgstr "" -#: FlatCAMApp.py:7778 +#: FlatCAMApp.py:7822 msgid "Adding tool from DB is not allowed for this object." msgstr "" -#: FlatCAMApp.py:7812 +#: FlatCAMApp.py:7856 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" msgstr "" -#: FlatCAMApp.py:7814 flatcamGUI/FlatCAMGUI.py:216 +#: FlatCAMApp.py:7858 flatcamGUI/FlatCAMGUI.py:220 msgid "Save Preferences" msgstr "" -#: FlatCAMApp.py:7838 +#: FlatCAMApp.py:7882 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" msgstr "" -#: FlatCAMApp.py:7840 +#: FlatCAMApp.py:7884 msgid "Save Tools Database" msgstr "" -#: FlatCAMApp.py:7859 FlatCAMApp.py:9927 FlatCAMObj.py:6258 +#: FlatCAMApp.py:7903 FlatCAMApp.py:10015 FlatCAMObj.py:6456 msgid "Code Editor" msgstr "" -#: FlatCAMApp.py:7877 +#: FlatCAMApp.py:7921 msgid "No object selected to Flip on Y axis." msgstr "" -#: FlatCAMApp.py:7903 +#: FlatCAMApp.py:7947 msgid "Flip on Y axis done." msgstr "" -#: FlatCAMApp.py:7905 FlatCAMApp.py:7947 flatcamEditors/FlatCAMGrbEditor.py:5773 +#: FlatCAMApp.py:7949 FlatCAMApp.py:7991 flatcamEditors/FlatCAMGrbEditor.py:5773 msgid "Flip action was not executed." msgstr "" -#: FlatCAMApp.py:7919 +#: FlatCAMApp.py:7963 msgid "No object selected to Flip on X axis." msgstr "" -#: FlatCAMApp.py:7945 +#: FlatCAMApp.py:7989 msgid "Flip on X axis done." msgstr "" -#: FlatCAMApp.py:7961 +#: FlatCAMApp.py:8005 msgid "No object selected to Rotate." msgstr "" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Transform" msgstr "" -#: FlatCAMApp.py:7964 FlatCAMApp.py:8011 FlatCAMApp.py:8044 +#: FlatCAMApp.py:8008 FlatCAMApp.py:8055 FlatCAMApp.py:8088 msgid "Enter the Angle value:" msgstr "" -#: FlatCAMApp.py:7995 +#: FlatCAMApp.py:8039 msgid "Rotation done." msgstr "" -#: FlatCAMApp.py:7997 +#: FlatCAMApp.py:8041 msgid "Rotation movement was not executed." msgstr "" -#: FlatCAMApp.py:8009 +#: FlatCAMApp.py:8053 msgid "No object selected to Skew/Shear on X axis." msgstr "" -#: FlatCAMApp.py:8031 +#: FlatCAMApp.py:8075 msgid "Skew on X axis done." msgstr "" -#: FlatCAMApp.py:8042 +#: FlatCAMApp.py:8086 msgid "No object selected to Skew/Shear on Y axis." msgstr "" -#: FlatCAMApp.py:8064 +#: FlatCAMApp.py:8108 msgid "Skew on Y axis done." msgstr "" -#: FlatCAMApp.py:8212 FlatCAMApp.py:8259 flatcamGUI/FlatCAMGUI.py:418 -#: flatcamGUI/FlatCAMGUI.py:1453 +#: FlatCAMApp.py:8256 FlatCAMApp.py:8303 flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Select All" msgstr "" -#: FlatCAMApp.py:8216 FlatCAMApp.py:8263 flatcamGUI/FlatCAMGUI.py:421 +#: FlatCAMApp.py:8260 FlatCAMApp.py:8307 flatcamGUI/FlatCAMGUI.py:432 msgid "Deselect All" msgstr "" -#: FlatCAMApp.py:8279 +#: FlatCAMApp.py:8323 msgid "All objects are selected." msgstr "" -#: FlatCAMApp.py:8289 +#: FlatCAMApp.py:8333 msgid "Objects selection is cleared." msgstr "" -#: FlatCAMApp.py:8305 flatcamGUI/FlatCAMGUI.py:1446 +#: FlatCAMApp.py:8349 flatcamGUI/FlatCAMGUI.py:1458 msgid "Grid On/Off" msgstr "" -#: FlatCAMApp.py:8318 flatcamEditors/FlatCAMGeoEditor.py:942 +#: FlatCAMApp.py:8362 flatcamEditors/FlatCAMGeoEditor.py:940 #: flatcamEditors/FlatCAMGrbEditor.py:2503 flatcamEditors/FlatCAMGrbEditor.py:5346 -#: flatcamGUI/ObjectUI.py:1228 flatcamTools/ToolDblSided.py:185 +#: flatcamGUI/ObjectUI.py:1265 flatcamTools/ToolDblSided.py:185 #: flatcamTools/ToolDblSided.py:238 flatcamTools/ToolNonCopperClear.py:286 #: flatcamTools/ToolPaint.py:188 flatcamTools/ToolSolderPaste.py:121 #: flatcamTools/ToolSolderPaste.py:591 flatcamTools/ToolTransform.py:309 msgid "Add" msgstr "" -#: FlatCAMApp.py:8319 FlatCAMObj.py:3798 flatcamEditors/FlatCAMGrbEditor.py:2508 -#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:600 -#: flatcamGUI/FlatCAMGUI.py:840 flatcamGUI/FlatCAMGUI.py:1859 flatcamGUI/FlatCAMGUI.py:1955 -#: flatcamGUI/FlatCAMGUI.py:2279 flatcamGUI/ObjectUI.py:1254 +#: FlatCAMApp.py:8363 FlatCAMObj.py:3900 flatcamEditors/FlatCAMGrbEditor.py:2508 +#: flatcamEditors/FlatCAMGrbEditor.py:2656 flatcamGUI/FlatCAMGUI.py:611 +#: flatcamGUI/FlatCAMGUI.py:852 flatcamGUI/FlatCAMGUI.py:1871 flatcamGUI/FlatCAMGUI.py:1967 +#: flatcamGUI/FlatCAMGUI.py:2292 flatcamGUI/ObjectUI.py:1291 #: flatcamTools/ToolNonCopperClear.py:298 flatcamTools/ToolPaint.py:200 #: flatcamTools/ToolSolderPaste.py:127 flatcamTools/ToolSolderPaste.py:593 msgid "Delete" msgstr "" -#: FlatCAMApp.py:8332 +#: FlatCAMApp.py:8376 msgid "New Grid ..." msgstr "" -#: FlatCAMApp.py:8333 +#: FlatCAMApp.py:8377 msgid "Enter a Grid Value:" msgstr "" -#: FlatCAMApp.py:8341 FlatCAMApp.py:8368 +#: FlatCAMApp.py:8385 FlatCAMApp.py:8412 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" -#: FlatCAMApp.py:8347 +#: FlatCAMApp.py:8391 msgid "New Grid added" msgstr "" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8394 msgid "Grid already exists" msgstr "" -#: FlatCAMApp.py:8353 +#: FlatCAMApp.py:8397 msgid "Adding New Grid cancelled" msgstr "" -#: FlatCAMApp.py:8375 +#: FlatCAMApp.py:8419 msgid " Grid Value does not exist" msgstr "" -#: FlatCAMApp.py:8378 +#: FlatCAMApp.py:8422 msgid "Grid Value deleted" msgstr "" -#: FlatCAMApp.py:8381 +#: FlatCAMApp.py:8425 msgid "Delete Grid value cancelled" msgstr "" -#: FlatCAMApp.py:8387 +#: FlatCAMApp.py:8431 msgid "Key Shortcut List" msgstr "" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8465 msgid " No object selected to copy it's name" msgstr "" -#: FlatCAMApp.py:8425 +#: FlatCAMApp.py:8469 msgid "Name copied on clipboard ..." msgstr "" -#: FlatCAMApp.py:8628 flatcamEditors/FlatCAMGrbEditor.py:4300 +#: FlatCAMApp.py:8666 flatcamEditors/FlatCAMGrbEditor.py:4300 msgid "Coordinates copied to clipboard." msgstr "" -#: FlatCAMApp.py:8839 FlatCAMApp.py:8842 FlatCAMApp.py:8845 FlatCAMApp.py:8848 -#: ObjectCollection.py:788 ObjectCollection.py:791 ObjectCollection.py:794 -#: ObjectCollection.py:797 ObjectCollection.py:800 ObjectCollection.py:803 -#, python-brace-format -msgid "[selected]{name} selected" +#: FlatCAMApp.py:8880 FlatCAMApp.py:8886 FlatCAMApp.py:8892 FlatCAMApp.py:8898 +#: ObjectCollection.py:791 ObjectCollection.py:797 ObjectCollection.py:803 +#: ObjectCollection.py:809 ObjectCollection.py:815 ObjectCollection.py:821 +msgid "selected" msgstr "" -#: FlatCAMApp.py:8990 +#: FlatCAMApp.py:9040 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:9012 +#: FlatCAMApp.py:9062 msgid "New Project created" msgstr "" -#: FlatCAMApp.py:9147 FlatCAMApp.py:9151 flatcamGUI/FlatCAMGUI.py:685 -#: flatcamGUI/FlatCAMGUI.py:2137 +#: FlatCAMApp.py:9197 FlatCAMApp.py:9201 flatcamGUI/FlatCAMGUI.py:696 +#: flatcamGUI/FlatCAMGUI.py:2149 msgid "Open Gerber" msgstr "" -#: FlatCAMApp.py:9158 +#: FlatCAMApp.py:9208 msgid "Opening Gerber file." msgstr "" -#: FlatCAMApp.py:9164 +#: FlatCAMApp.py:9214 msgid "Open Gerber cancelled." msgstr "" -#: FlatCAMApp.py:9185 FlatCAMApp.py:9189 flatcamGUI/FlatCAMGUI.py:686 -#: flatcamGUI/FlatCAMGUI.py:2138 +#: FlatCAMApp.py:9235 FlatCAMApp.py:9239 flatcamGUI/FlatCAMGUI.py:697 +#: flatcamGUI/FlatCAMGUI.py:2150 msgid "Open Excellon" msgstr "" -#: FlatCAMApp.py:9195 +#: FlatCAMApp.py:9245 msgid "Opening Excellon file." msgstr "" -#: FlatCAMApp.py:9201 +#: FlatCAMApp.py:9251 msgid " Open Excellon cancelled." msgstr "" -#: FlatCAMApp.py:9225 FlatCAMApp.py:9229 +#: FlatCAMApp.py:9275 FlatCAMApp.py:9279 msgid "Open G-Code" msgstr "" -#: FlatCAMApp.py:9236 +#: FlatCAMApp.py:9286 msgid "Opening G-Code file." msgstr "" -#: FlatCAMApp.py:9242 +#: FlatCAMApp.py:9292 msgid "Open G-Code cancelled." msgstr "" -#: FlatCAMApp.py:9260 FlatCAMApp.py:9263 flatcamGUI/FlatCAMGUI.py:1455 +#: FlatCAMApp.py:9310 FlatCAMApp.py:9313 flatcamGUI/FlatCAMGUI.py:1467 msgid "Open Project" msgstr "" -#: FlatCAMApp.py:9272 +#: FlatCAMApp.py:9322 msgid "Open Project cancelled." msgstr "" -#: FlatCAMApp.py:9292 FlatCAMApp.py:9295 +#: FlatCAMApp.py:9346 FlatCAMApp.py:9350 +msgid "Open HPGL2" +msgstr "" + +#: FlatCAMApp.py:9357 +msgid "Opening HPGL2 file." +msgstr "" + +#: FlatCAMApp.py:9362 +msgid "Open HPGL2 file cancelled." +msgstr "" + +#: FlatCAMApp.py:9380 FlatCAMApp.py:9383 msgid "Open Configuration File" msgstr "" -#: FlatCAMApp.py:9300 +#: FlatCAMApp.py:9388 msgid "Open Config cancelled." msgstr "" -#: FlatCAMApp.py:9316 FlatCAMApp.py:9684 +#: FlatCAMApp.py:9404 FlatCAMApp.py:9772 FlatCAMApp.py:10246 msgid "No object selected." msgstr "" -#: FlatCAMApp.py:9317 FlatCAMApp.py:9685 +#: FlatCAMApp.py:9405 FlatCAMApp.py:9773 msgid "Please Select a Geometry object to export" msgstr "" -#: FlatCAMApp.py:9331 +#: FlatCAMApp.py:9419 msgid "Only Geometry, Gerber and CNCJob objects can be used." msgstr "" -#: FlatCAMApp.py:9344 FlatCAMApp.py:9348 flatcamTools/ToolQRCode.py:827 +#: FlatCAMApp.py:9432 FlatCAMApp.py:9436 flatcamTools/ToolQRCode.py:827 #: flatcamTools/ToolQRCode.py:831 msgid "Export SVG" msgstr "" -#: FlatCAMApp.py:9354 flatcamTools/ToolQRCode.py:836 +#: FlatCAMApp.py:9442 flatcamTools/ToolQRCode.py:836 msgid " Export SVG cancelled." msgstr "" -#: FlatCAMApp.py:9375 +#: FlatCAMApp.py:9463 msgid "Data must be a 3D array with last dimension 3 or 4" msgstr "" -#: FlatCAMApp.py:9381 FlatCAMApp.py:9385 +#: FlatCAMApp.py:9469 FlatCAMApp.py:9473 msgid "Export PNG Image" msgstr "" -#: FlatCAMApp.py:9390 +#: FlatCAMApp.py:9478 msgid "Export PNG cancelled." msgstr "" -#: FlatCAMApp.py:9414 +#: FlatCAMApp.py:9502 msgid "No object selected. Please select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:9420 FlatCAMApp.py:9643 +#: FlatCAMApp.py:9508 FlatCAMApp.py:9731 msgid "Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" -#: FlatCAMApp.py:9432 +#: FlatCAMApp.py:9520 msgid "Save Gerber source file" msgstr "" -#: FlatCAMApp.py:9438 +#: FlatCAMApp.py:9526 msgid "Save Gerber source file cancelled." msgstr "" -#: FlatCAMApp.py:9458 +#: FlatCAMApp.py:9546 msgid "No object selected. Please select an Script object to export." msgstr "" -#: FlatCAMApp.py:9464 +#: FlatCAMApp.py:9552 msgid "Failed. Only Script objects can be saved as TCL Script files..." msgstr "" -#: FlatCAMApp.py:9476 +#: FlatCAMApp.py:9564 msgid "Save Script source file" msgstr "" -#: FlatCAMApp.py:9482 +#: FlatCAMApp.py:9570 msgid "Save Script source file cancelled." msgstr "" -#: FlatCAMApp.py:9502 +#: FlatCAMApp.py:9590 msgid "No object selected. Please select an Document object to export." msgstr "" -#: FlatCAMApp.py:9508 +#: FlatCAMApp.py:9596 msgid "Failed. Only Document objects can be saved as Document files..." msgstr "" -#: FlatCAMApp.py:9520 +#: FlatCAMApp.py:9608 msgid "Save Document source file" msgstr "" -#: FlatCAMApp.py:9526 +#: FlatCAMApp.py:9614 msgid "Save Document source file cancelled." msgstr "" -#: FlatCAMApp.py:9546 +#: FlatCAMApp.py:9634 msgid "No object selected. Please select an Excellon object to export." msgstr "" -#: FlatCAMApp.py:9552 FlatCAMApp.py:9596 FlatCAMApp.py:10288 +#: FlatCAMApp.py:9640 FlatCAMApp.py:9684 FlatCAMApp.py:10422 msgid "Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" -#: FlatCAMApp.py:9560 FlatCAMApp.py:9564 +#: FlatCAMApp.py:9648 FlatCAMApp.py:9652 msgid "Save Excellon source file" msgstr "" -#: FlatCAMApp.py:9570 +#: FlatCAMApp.py:9658 msgid "Saving Excellon source file cancelled." msgstr "" -#: FlatCAMApp.py:9590 +#: FlatCAMApp.py:9678 msgid "No object selected. Please Select an Excellon object to export." msgstr "" -#: FlatCAMApp.py:9604 FlatCAMApp.py:9608 +#: FlatCAMApp.py:9692 FlatCAMApp.py:9696 msgid "Export Excellon" msgstr "" -#: FlatCAMApp.py:9614 +#: FlatCAMApp.py:9702 msgid "Export Excellon cancelled." msgstr "" -#: FlatCAMApp.py:9637 +#: FlatCAMApp.py:9725 msgid "No object selected. Please Select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:9651 FlatCAMApp.py:9655 +#: FlatCAMApp.py:9739 FlatCAMApp.py:9743 msgid "Export Gerber" msgstr "" -#: FlatCAMApp.py:9661 +#: FlatCAMApp.py:9749 msgid "Export Gerber cancelled." msgstr "" -#: FlatCAMApp.py:9696 +#: FlatCAMApp.py:9784 msgid "Only Geometry objects can be used." msgstr "" -#: FlatCAMApp.py:9710 FlatCAMApp.py:9714 +#: FlatCAMApp.py:9798 FlatCAMApp.py:9802 msgid "Export DXF" msgstr "" -#: FlatCAMApp.py:9721 +#: FlatCAMApp.py:9809 msgid "Export DXF cancelled." msgstr "" -#: FlatCAMApp.py:9741 FlatCAMApp.py:9744 +#: FlatCAMApp.py:9829 FlatCAMApp.py:9832 msgid "Import SVG" msgstr "" -#: FlatCAMApp.py:9754 +#: FlatCAMApp.py:9842 msgid "Open SVG cancelled." msgstr "" -#: FlatCAMApp.py:9773 FlatCAMApp.py:9777 +#: FlatCAMApp.py:9861 FlatCAMApp.py:9865 msgid "Import DXF" msgstr "" -#: FlatCAMApp.py:9787 +#: FlatCAMApp.py:9875 msgid "Open DXF cancelled." msgstr "" -#: FlatCAMApp.py:9829 +#: FlatCAMApp.py:9917 msgid "Viewing the source code of the selected object." msgstr "" -#: FlatCAMApp.py:9830 FlatCAMObj.py:6244 FlatCAMObj.py:6835 +#: FlatCAMApp.py:9918 FlatCAMObj.py:6442 FlatCAMObj.py:7043 msgid "Loading..." msgstr "" -#: FlatCAMApp.py:9836 FlatCAMApp.py:9840 +#: FlatCAMApp.py:9924 FlatCAMApp.py:9928 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "" -#: FlatCAMApp.py:9854 +#: FlatCAMApp.py:9942 msgid "Source Editor" msgstr "" -#: FlatCAMApp.py:9894 FlatCAMApp.py:9901 +#: FlatCAMApp.py:9982 FlatCAMApp.py:9989 msgid "There is no selected object for which to see it's source file code." msgstr "" -#: FlatCAMApp.py:9913 +#: FlatCAMApp.py:10001 msgid "Failed to load the source code for the selected object" msgstr "" -#: FlatCAMApp.py:9955 +#: FlatCAMApp.py:10043 msgid "New TCL script file created in Code Editor." msgstr "" -#: FlatCAMApp.py:9993 FlatCAMApp.py:9995 +#: FlatCAMApp.py:10081 FlatCAMApp.py:10083 msgid "Open TCL script" msgstr "" -#: FlatCAMApp.py:9999 +#: FlatCAMApp.py:10087 msgid "Open TCL script cancelled." msgstr "" -#: FlatCAMApp.py:10023 +#: FlatCAMApp.py:10111 msgid "Executing FlatCAMScript file." msgstr "" -#: FlatCAMApp.py:10030 FlatCAMApp.py:10033 +#: FlatCAMApp.py:10118 FlatCAMApp.py:10121 msgid "Run TCL script" msgstr "" -#: FlatCAMApp.py:10043 +#: FlatCAMApp.py:10131 msgid "Run TCL script cancelled." msgstr "" -#: FlatCAMApp.py:10059 +#: FlatCAMApp.py:10147 msgid "TCL script file opened in Code Editor and executed." msgstr "" -#: FlatCAMApp.py:10110 FlatCAMApp.py:10114 +#: FlatCAMApp.py:10198 FlatCAMApp.py:10204 msgid "Save Project As ..." msgstr "" -#: FlatCAMApp.py:10111 -#, python-brace-format -msgid "{l_save}/Project_{date}" +#: FlatCAMApp.py:10200 flatcamGUI/FlatCAMGUI.py:909 flatcamGUI/FlatCAMGUI.py:1899 +msgid "Project" msgstr "" -#: FlatCAMApp.py:10120 +#: FlatCAMApp.py:10209 msgid "Save Project cancelled." msgstr "" -#: FlatCAMApp.py:10168 +#: FlatCAMApp.py:10216 +msgid "The object is used by another application." +msgstr "" + +#: FlatCAMApp.py:10252 FlatCAMApp.py:10259 flatcamGUI/FlatCAMGUI.py:261 +msgid "Save Object as PDF ..." +msgstr "" + +#: FlatCAMApp.py:10264 +msgid "Save Object PDF cancelled." +msgstr "" + +#: FlatCAMApp.py:10302 msgid "Exporting SVG" msgstr "" -#: FlatCAMApp.py:10212 +#: FlatCAMApp.py:10346 msgid "SVG file exported to" msgstr "" -#: FlatCAMApp.py:10237 +#: FlatCAMApp.py:10371 msgid "Save cancelled because source file is empty. Try to export the Gerber file." msgstr "" -#: FlatCAMApp.py:10383 +#: FlatCAMApp.py:10517 msgid "Excellon file exported to" msgstr "" -#: FlatCAMApp.py:10392 +#: FlatCAMApp.py:10526 msgid "Exporting Excellon" msgstr "" -#: FlatCAMApp.py:10398 FlatCAMApp.py:10406 +#: FlatCAMApp.py:10532 FlatCAMApp.py:10540 msgid "Could not export Excellon file." msgstr "" -#: FlatCAMApp.py:10522 +#: FlatCAMApp.py:10656 msgid "Gerber file exported to" msgstr "" -#: FlatCAMApp.py:10530 +#: FlatCAMApp.py:10664 msgid "Exporting Gerber" msgstr "" -#: FlatCAMApp.py:10536 FlatCAMApp.py:10544 +#: FlatCAMApp.py:10670 FlatCAMApp.py:10678 msgid "Could not export Gerber file." msgstr "" -#: FlatCAMApp.py:10578 +#: FlatCAMApp.py:10712 msgid "DXF file exported to" msgstr "" -#: FlatCAMApp.py:10584 +#: FlatCAMApp.py:10718 msgid "Exporting DXF" msgstr "" -#: FlatCAMApp.py:10589 FlatCAMApp.py:10596 +#: FlatCAMApp.py:10723 FlatCAMApp.py:10730 msgid "Could not export DXF file." msgstr "" -#: FlatCAMApp.py:10619 FlatCAMApp.py:10662 flatcamTools/ToolImage.py:278 +#: FlatCAMApp.py:10753 FlatCAMApp.py:10796 flatcamTools/ToolImage.py:278 msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported" msgstr "" -#: FlatCAMApp.py:10629 +#: FlatCAMApp.py:10763 msgid "Importing SVG" msgstr "" -#: FlatCAMApp.py:10640 FlatCAMApp.py:10682 FlatCAMApp.py:10741 FlatCAMApp.py:10808 -#: FlatCAMApp.py:10871 FlatCAMApp.py:10909 flatcamTools/ToolImage.py:298 +#: FlatCAMApp.py:10774 FlatCAMApp.py:10816 FlatCAMApp.py:10875 FlatCAMApp.py:10942 +#: FlatCAMApp.py:11005 FlatCAMApp.py:11072 FlatCAMApp.py:11110 flatcamTools/ToolImage.py:298 #: flatcamTools/ToolPDF.py:225 msgid "Opened" msgstr "" -#: FlatCAMApp.py:10671 +#: FlatCAMApp.py:10805 msgid "Importing DXF" msgstr "" -#: FlatCAMApp.py:10707 +#: FlatCAMApp.py:10841 FlatCAMApp.py:11031 msgid "Failed to open file" msgstr "" -#: FlatCAMApp.py:10710 +#: FlatCAMApp.py:10844 FlatCAMApp.py:11034 msgid "Failed to parse file" msgstr "" -#: FlatCAMApp.py:10715 FlatCAMApp.py:10776 FlatCAMObj.py:4898 +#: FlatCAMApp.py:10849 FlatCAMApp.py:10910 FlatCAMApp.py:11039 FlatCAMObj.py:5004 #: flatcamEditors/FlatCAMGrbEditor.py:4110 flatcamTools/ToolPcbWizard.py:437 msgid "An internal error has occurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:10722 +#: FlatCAMApp.py:10856 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" -#: FlatCAMApp.py:10727 +#: FlatCAMApp.py:10861 msgid "Opening Gerber" msgstr "" -#: FlatCAMApp.py:10734 +#: FlatCAMApp.py:10868 msgid " Open Gerber failed. Probable not a Gerber file." msgstr "" -#: FlatCAMApp.py:10766 flatcamTools/ToolPcbWizard.py:427 +#: FlatCAMApp.py:10900 flatcamTools/ToolPcbWizard.py:427 msgid "This is not Excellon file." msgstr "" -#: FlatCAMApp.py:10770 +#: FlatCAMApp.py:10904 msgid "Cannot open file" msgstr "" -#: FlatCAMApp.py:10790 flatcamTools/ToolPDF.py:275 flatcamTools/ToolPcbWizard.py:451 +#: FlatCAMApp.py:10924 flatcamTools/ToolPDF.py:275 flatcamTools/ToolPcbWizard.py:451 msgid "No geometry found in file" msgstr "" -#: FlatCAMApp.py:10793 +#: FlatCAMApp.py:10927 msgid "Opening Excellon." msgstr "" -#: FlatCAMApp.py:10800 +#: FlatCAMApp.py:10934 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "" -#: FlatCAMApp.py:10831 +#: FlatCAMApp.py:10965 msgid "Reading GCode file" msgstr "" -#: FlatCAMApp.py:10838 +#: FlatCAMApp.py:10972 msgid "Failed to open" msgstr "" -#: FlatCAMApp.py:10846 +#: FlatCAMApp.py:10980 msgid "This is not GCODE" msgstr "" -#: FlatCAMApp.py:10851 +#: FlatCAMApp.py:10985 msgid "Opening G-Code." msgstr "" -#: FlatCAMApp.py:10860 +#: FlatCAMApp.py:10994 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:10885 +#: FlatCAMApp.py:11053 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" + +#: FlatCAMApp.py:11058 +msgid "Opening HPGL2" +msgstr "" + +#: FlatCAMApp.py:11065 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr "" + +#: FlatCAMApp.py:11086 msgid "Opening TCL Script..." msgstr "" -#: FlatCAMApp.py:10893 +#: FlatCAMApp.py:11094 msgid "TCL script file opened in Code Editor." msgstr "" -#: FlatCAMApp.py:10896 +#: FlatCAMApp.py:11097 msgid "Failed to open TCL Script." msgstr "" -#: FlatCAMApp.py:10924 +#: FlatCAMApp.py:11125 msgid "Opening FlatCAM Config file." msgstr "" -#: FlatCAMApp.py:10952 +#: FlatCAMApp.py:11153 msgid "Failed to open config file" msgstr "" -#: FlatCAMApp.py:10978 +#: FlatCAMApp.py:11179 msgid "Loading Project ... Please Wait ..." msgstr "" -#: FlatCAMApp.py:10983 +#: FlatCAMApp.py:11184 msgid "Opening FlatCAM Project file." msgstr "" -#: FlatCAMApp.py:10993 FlatCAMApp.py:11011 +#: FlatCAMApp.py:11194 FlatCAMApp.py:11212 msgid "Failed to open project file" msgstr "" -#: FlatCAMApp.py:11045 +#: FlatCAMApp.py:11246 msgid "Loading Project ... restoring" msgstr "" -#: FlatCAMApp.py:11054 +#: FlatCAMApp.py:11255 msgid "Project loaded from" msgstr "" -#: FlatCAMApp.py:11117 +#: FlatCAMApp.py:11318 msgid "Redrawing all objects" msgstr "" -#: FlatCAMApp.py:11149 +#: FlatCAMApp.py:11350 msgid "Available commands:\n" msgstr "" -#: FlatCAMApp.py:11151 +#: FlatCAMApp.py:11352 msgid "" "\n" "\n" @@ -1277,64 +1311,64 @@ msgid "" " Example: help open_gerber" msgstr "" -#: FlatCAMApp.py:11301 +#: FlatCAMApp.py:11502 msgid "Shows list of commands." msgstr "" -#: FlatCAMApp.py:11363 +#: FlatCAMApp.py:11564 msgid "Failed to load recent item list." msgstr "" -#: FlatCAMApp.py:11371 +#: FlatCAMApp.py:11572 msgid "Failed to parse recent item list." msgstr "" -#: FlatCAMApp.py:11382 +#: FlatCAMApp.py:11583 msgid "Failed to load recent projects item list." msgstr "" -#: FlatCAMApp.py:11390 +#: FlatCAMApp.py:11591 msgid "Failed to parse recent project item list." msgstr "" -#: FlatCAMApp.py:11449 +#: FlatCAMApp.py:11650 msgid "Clear Recent projects" msgstr "" -#: FlatCAMApp.py:11472 +#: FlatCAMApp.py:11673 msgid "Clear Recent files" msgstr "" -#: FlatCAMApp.py:11489 flatcamGUI/FlatCAMGUI.py:1121 +#: FlatCAMApp.py:11690 flatcamGUI/FlatCAMGUI.py:1133 msgid "Shortcut Key List" msgstr "" -#: FlatCAMApp.py:11563 +#: FlatCAMApp.py:11764 msgid "Selected Tab - Choose an Item from Project Tab" msgstr "" -#: FlatCAMApp.py:11564 +#: FlatCAMApp.py:11765 msgid "Details" msgstr "" -#: FlatCAMApp.py:11566 +#: FlatCAMApp.py:11767 msgid "The normal flow when working in FlatCAM is the following:" msgstr "" -#: FlatCAMApp.py:11567 +#: FlatCAMApp.py:11768 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:11570 +#: FlatCAMApp.py:11771 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:11573 +#: FlatCAMApp.py:11774 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, " @@ -1342,7 +1376,7 @@ msgid "" "Excellon, Geometry or CNCJob object." msgstr "" -#: FlatCAMApp.py:11577 +#: FlatCAMApp.py:11778 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 " @@ -1350,11 +1384,11 @@ msgid "" "TAB and populate it even if it was out of focus." msgstr "" -#: FlatCAMApp.py:11581 +#: FlatCAMApp.py:11782 msgid "You can change the parameters in this screen and the flow direction is like this:" msgstr "" -#: FlatCAMApp.py:11582 +#: FlatCAMApp.py:11783 msgid "" "Gerber/Excellon Object --> Change Parameter --> Generate Geometry --> Geometry Object --> " "Add tools (change param in Selected Tab) --> Generate CNCJob --> CNCJob Object --> Verify " @@ -1362,91 +1396,91 @@ msgid "" "TAB) --> Save GCode." msgstr "" -#: FlatCAMApp.py:11586 +#: FlatCAMApp.py:11787 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:11647 +#: FlatCAMApp.py:11848 msgid "Failed checking for latest version. Could not connect." msgstr "" -#: FlatCAMApp.py:11655 +#: FlatCAMApp.py:11856 msgid "Could not parse information about latest version." msgstr "" -#: FlatCAMApp.py:11666 +#: FlatCAMApp.py:11867 msgid "FlatCAM is up to date!" msgstr "" -#: FlatCAMApp.py:11671 +#: FlatCAMApp.py:11872 msgid "Newer Version Available" msgstr "" -#: FlatCAMApp.py:11672 +#: FlatCAMApp.py:11873 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" msgstr "" -#: FlatCAMApp.py:11674 +#: FlatCAMApp.py:11875 msgid "info" msgstr "" -#: FlatCAMApp.py:11753 +#: FlatCAMApp.py:11954 msgid "All plots disabled." msgstr "" -#: FlatCAMApp.py:11760 +#: FlatCAMApp.py:11961 msgid "All non selected plots disabled." msgstr "" -#: FlatCAMApp.py:11767 +#: FlatCAMApp.py:11968 msgid "All plots enabled." msgstr "" -#: FlatCAMApp.py:11774 +#: FlatCAMApp.py:11975 msgid "Selected plots enabled..." msgstr "" -#: FlatCAMApp.py:11783 +#: FlatCAMApp.py:11984 msgid "Selected plots disabled..." msgstr "" -#: FlatCAMApp.py:11802 +#: FlatCAMApp.py:12003 msgid "Enabling plots ..." msgstr "" -#: FlatCAMApp.py:11842 +#: FlatCAMApp.py:12043 msgid "Disabling plots ..." msgstr "" -#: FlatCAMApp.py:11864 +#: FlatCAMApp.py:12065 msgid "Working ..." msgstr "" -#: FlatCAMApp.py:11903 +#: FlatCAMApp.py:12104 msgid "Saving FlatCAM Project" msgstr "" -#: FlatCAMApp.py:11923 FlatCAMApp.py:11961 +#: FlatCAMApp.py:12124 FlatCAMApp.py:12162 msgid "Project saved to" msgstr "" -#: FlatCAMApp.py:11943 +#: FlatCAMApp.py:12144 msgid "Failed to verify project file" msgstr "" -#: FlatCAMApp.py:11943 FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12144 FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Retry to save it." msgstr "" -#: FlatCAMApp.py:11952 FlatCAMApp.py:11964 +#: FlatCAMApp.py:12153 FlatCAMApp.py:12165 msgid "Failed to parse saved project file" msgstr "" -#: FlatCAMApp.py:12080 +#: FlatCAMApp.py:12281 msgid "The user requested a graceful exit of the current task." msgstr "" @@ -1523,7 +1557,7 @@ msgstr "" msgid "Export FlatCAM Bookmarks" msgstr "" -#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:437 +#: FlatCAMCommon.py:363 flatcamGUI/FlatCAMGUI.py:448 msgid "Bookmarks" msgstr "" @@ -1555,17 +1589,17 @@ msgstr "" msgid "Imported Bookmarks from" msgstr "" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 FlatCAMObj.py:4483 FlatCAMObj.py:4484 -#: FlatCAMObj.py:4493 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 FlatCAMObj.py:4589 FlatCAMObj.py:4590 +#: FlatCAMObj.py:4599 msgid "Iso" msgstr "" -#: FlatCAMCommon.py:477 FlatCAMCommon.py:984 FlatCAMObj.py:1260 FlatCAMObj.py:3488 -#: FlatCAMObj.py:3759 FlatCAMObj.py:4043 +#: FlatCAMCommon.py:477 FlatCAMCommon.py:1012 FlatCAMObj.py:1351 FlatCAMObj.py:3588 +#: FlatCAMObj.py:3861 FlatCAMObj.py:4149 msgid "Rough" msgstr "" -#: FlatCAMCommon.py:477 FlatCAMObj.py:3488 +#: FlatCAMCommon.py:477 FlatCAMObj.py:3588 msgid "Finish" msgstr "" @@ -1573,12 +1607,12 @@ msgstr "" msgid "Tool Name" msgstr "" -#: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 flatcamGUI/ObjectUI.py:1219 +#: FlatCAMCommon.py:514 flatcamEditors/FlatCAMExcEditor.py:1527 flatcamGUI/ObjectUI.py:1256 #: flatcamTools/ToolNonCopperClear.py:271 flatcamTools/ToolPaint.py:176 msgid "Tool Dia" msgstr "" -#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1202 +#: FlatCAMCommon.py:515 flatcamGUI/ObjectUI.py:1239 msgid "Tool Offset" msgstr "" @@ -1586,8 +1620,8 @@ msgstr "" msgid "Custom Offset" msgstr "" -#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:288 flatcamGUI/PreferencesUI.py:1626 -#: flatcamGUI/PreferencesUI.py:3973 flatcamTools/ToolNonCopperClear.py:213 +#: FlatCAMCommon.py:517 flatcamGUI/ObjectUI.py:293 flatcamGUI/PreferencesUI.py:1626 +#: flatcamGUI/PreferencesUI.py:3991 flatcamTools/ToolNonCopperClear.py:213 msgid "Tool Type" msgstr "" @@ -1595,11 +1629,11 @@ msgstr "" msgid "Tool Shape" msgstr "" -#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:329 flatcamGUI/ObjectUI.py:779 -#: flatcamGUI/ObjectUI.py:1329 flatcamGUI/PreferencesUI.py:1666 -#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3177 -#: flatcamGUI/PreferencesUI.py:4018 flatcamGUI/PreferencesUI.py:4272 -#: flatcamGUI/PreferencesUI.py:5096 flatcamTools/ToolCalculators.py:114 +#: FlatCAMCommon.py:519 flatcamGUI/ObjectUI.py:334 flatcamGUI/ObjectUI.py:796 +#: flatcamGUI/ObjectUI.py:1366 flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:1666 +#: flatcamGUI/PreferencesUI.py:2334 flatcamGUI/PreferencesUI.py:3179 +#: flatcamGUI/PreferencesUI.py:4036 flatcamGUI/PreferencesUI.py:4290 +#: flatcamGUI/PreferencesUI.py:5114 flatcamTools/ToolCalculators.py:114 #: flatcamTools/ToolCutOut.py:132 flatcamTools/ToolNonCopperClear.py:254 msgid "Cut Z" msgstr "" @@ -1620,9 +1654,9 @@ msgstr "" msgid "V-Angle" msgstr "" -#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:798 flatcamGUI/ObjectUI.py:1376 -#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3230 -#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:295 +#: FlatCAMCommon.py:524 flatcamGUI/ObjectUI.py:815 flatcamGUI/ObjectUI.py:1413 +#: flatcamGUI/PreferencesUI.py:2352 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/PreferencesUI.py:6466 flatcamTools/ToolCalibration.py:74 msgid "Travel Z" msgstr "" @@ -1642,8 +1676,8 @@ msgstr "" msgid "Spindle Speed" msgstr "" -#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:920 flatcamGUI/ObjectUI.py:1528 -#: flatcamGUI/PreferencesUI.py:2437 flatcamGUI/PreferencesUI.py:3348 +#: FlatCAMCommon.py:529 flatcamGUI/ObjectUI.py:939 flatcamGUI/ObjectUI.py:1582 +#: flatcamGUI/PreferencesUI.py:2439 flatcamGUI/PreferencesUI.py:3353 msgid "Dwell" msgstr "" @@ -1651,8 +1685,8 @@ msgstr "" msgid "Dwelltime" msgstr "" -#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 flatcamGUI/PreferencesUI.py:2459 -#: flatcamGUI/PreferencesUI.py:3370 +#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:958 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/PreferencesUI.py:3375 msgid "Preprocessor" msgstr "" @@ -1661,42 +1695,46 @@ msgid "ExtraCut" msgstr "" #: FlatCAMCommon.py:533 -msgid "Toolchange" +msgid "E-Cut Length" msgstr "" #: FlatCAMCommon.py:534 +msgid "Toolchange" +msgstr "" + +#: FlatCAMCommon.py:535 msgid "Toolchange XY" msgstr "" -#: FlatCAMCommon.py:535 flatcamGUI/PreferencesUI.py:2378 flatcamGUI/PreferencesUI.py:3262 -#: flatcamGUI/PreferencesUI.py:6485 flatcamTools/ToolCalibration.py:332 +#: FlatCAMCommon.py:536 flatcamGUI/PreferencesUI.py:2378 flatcamGUI/PreferencesUI.py:3264 +#: flatcamGUI/PreferencesUI.py:6503 flatcamTools/ToolCalibration.py:111 msgid "Toolchange Z" msgstr "" -#: FlatCAMCommon.py:536 +#: FlatCAMCommon.py:537 msgid "Start Z" msgstr "" -#: FlatCAMCommon.py:537 +#: FlatCAMCommon.py:538 msgid "End Z" msgstr "" -#: FlatCAMCommon.py:541 +#: FlatCAMCommon.py:542 msgid "Tool Index." msgstr "" -#: FlatCAMCommon.py:543 +#: FlatCAMCommon.py:544 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 "" -#: FlatCAMCommon.py:547 +#: FlatCAMCommon.py:548 msgid "Tool Diameter." msgstr "" -#: FlatCAMCommon.py:549 +#: FlatCAMCommon.py:550 msgid "" "Tool Offset.\n" "Can be of a few types:\n" @@ -1706,13 +1744,13 @@ msgid "" "Custom = custom offset using the Custom Offset value" msgstr "" -#: FlatCAMCommon.py:556 +#: FlatCAMCommon.py:557 msgid "" "Custom Offset.\n" "A value to be used as offset from the current path." msgstr "" -#: FlatCAMCommon.py:559 +#: FlatCAMCommon.py:560 msgid "" "Tool Type.\n" "Can be:\n" @@ -1721,7 +1759,7 @@ msgid "" "Finish = finishing cut, high feedrate" msgstr "" -#: FlatCAMCommon.py:565 +#: FlatCAMCommon.py:566 msgid "" "Tool Shape. \n" "Can be:\n" @@ -1730,57 +1768,57 @@ msgid "" "V = v-shape milling tool" msgstr "" -#: FlatCAMCommon.py:571 +#: FlatCAMCommon.py:572 msgid "" "Cutting Depth.\n" "The depth at which to cut into material." msgstr "" -#: FlatCAMCommon.py:574 +#: FlatCAMCommon.py:575 msgid "" "Multi Depth.\n" "Selecting this will allow cutting in multiple passes,\n" "each pass adding a DPP parameter depth." msgstr "" -#: FlatCAMCommon.py:578 +#: FlatCAMCommon.py:579 msgid "" "DPP. Depth per Pass.\n" "The value used to cut into material on each pass." msgstr "" -#: FlatCAMCommon.py:581 +#: FlatCAMCommon.py:582 msgid "" "V-Dia.\n" "Diameter of the tip for V-Shape Tools." msgstr "" -#: FlatCAMCommon.py:584 +#: FlatCAMCommon.py:585 msgid "" "V-Agle.\n" "Angle at the tip for the V-Shape Tools." msgstr "" -#: FlatCAMCommon.py:587 +#: FlatCAMCommon.py:588 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 "" -#: FlatCAMCommon.py:591 +#: FlatCAMCommon.py:592 msgid "" "FR. Feedrate\n" "The speed on XY plane used while cutting into material." msgstr "" -#: FlatCAMCommon.py:594 +#: FlatCAMCommon.py:595 msgid "" "FR Z. Feedrate Z\n" "The speed on Z plane." msgstr "" -#: FlatCAMCommon.py:597 +#: FlatCAMCommon.py:598 msgid "" "FR Rapids. Feedrate Rapids\n" "Speed used while moving as fast as possible.\n" @@ -1788,34 +1826,34 @@ msgid "" "the G0 g-code command. Mostly 3D printers." msgstr "" -#: FlatCAMCommon.py:602 +#: FlatCAMCommon.py:603 msgid "" "Spindle Speed.\n" "If it's left empty it will not be used.\n" "The speed of the spindle in RPM." msgstr "" -#: FlatCAMCommon.py:606 +#: FlatCAMCommon.py:607 msgid "" "Dwell.\n" "Check this if a delay is needed to allow\n" "the spindle motor to reach it's set speed." msgstr "" -#: FlatCAMCommon.py:610 +#: FlatCAMCommon.py:611 msgid "" "Dwell Time.\n" "A delay used to allow the motor spindle reach it's set speed." msgstr "" -#: FlatCAMCommon.py:613 +#: FlatCAMCommon.py:614 msgid "" "Preprocessor.\n" "A selection of files that will alter the generated G-code\n" "to fit for a number of use cases." msgstr "" -#: FlatCAMCommon.py:617 +#: FlatCAMCommon.py:618 msgid "" "Extra Cut.\n" "If checked, after a isolation is finished an extra cut\n" @@ -1824,7 +1862,17 @@ msgid "" "ensure a complete isolation." msgstr "" -#: FlatCAMCommon.py:623 +#: FlatCAMCommon.py:624 +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 "" + +#: FlatCAMCommon.py:631 msgid "" "Toolchange.\n" "It will create a toolchange event.\n" @@ -1832,7 +1880,7 @@ msgid "" "the preprocessor file." msgstr "" -#: FlatCAMCommon.py:628 +#: FlatCAMCommon.py:636 msgid "" "Toolchange XY.\n" "A set of coordinates in the format (x, y).\n" @@ -1840,509 +1888,515 @@ msgid "" "where the tool change event take place." msgstr "" -#: FlatCAMCommon.py:633 +#: FlatCAMCommon.py:641 msgid "" "Toolchange Z.\n" "The position on Z plane where the tool change event take place." msgstr "" -#: FlatCAMCommon.py:636 +#: FlatCAMCommon.py:644 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 "" -#: FlatCAMCommon.py:640 +#: FlatCAMCommon.py:648 msgid "" "End Z.\n" "A position on Z plane to move immediately after job stop." msgstr "" -#: FlatCAMCommon.py:661 +#: FlatCAMCommon.py:669 msgid "Add Tool to Tools DB" msgstr "" -#: FlatCAMCommon.py:663 +#: FlatCAMCommon.py:671 msgid "" "Add a new tool in the Tools Database.\n" "You can edit it after it is added." msgstr "" -#: FlatCAMCommon.py:666 +#: FlatCAMCommon.py:674 msgid "Remove Tool from Tools DB" msgstr "" -#: FlatCAMCommon.py:668 +#: FlatCAMCommon.py:676 msgid "Remove a selection of tools in the Tools Database." msgstr "" -#: FlatCAMCommon.py:670 +#: FlatCAMCommon.py:678 msgid "Export Tool DB" msgstr "" -#: FlatCAMCommon.py:672 +#: FlatCAMCommon.py:680 msgid "Save the Tools Database to a custom text file." msgstr "" -#: FlatCAMCommon.py:674 +#: FlatCAMCommon.py:682 msgid "Import Tool DB" msgstr "" -#: FlatCAMCommon.py:676 +#: FlatCAMCommon.py:684 msgid "Load the Tools Database information's from a custom text file." msgstr "" -#: FlatCAMCommon.py:686 +#: FlatCAMCommon.py:694 msgid "Add Tool from Tools DB" msgstr "" -#: FlatCAMCommon.py:688 +#: FlatCAMCommon.py:696 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 "" -#: FlatCAMCommon.py:727 FlatCAMCommon.py:1077 FlatCAMCommon.py:1111 +#: FlatCAMCommon.py:735 FlatCAMCommon.py:1105 FlatCAMCommon.py:1139 msgid "Could not load Tools DB file." msgstr "" -#: FlatCAMCommon.py:735 FlatCAMCommon.py:1119 +#: FlatCAMCommon.py:743 FlatCAMCommon.py:1147 msgid "Failed to parse Tools DB file." msgstr "" -#: FlatCAMCommon.py:738 FlatCAMCommon.py:1122 +#: FlatCAMCommon.py:746 FlatCAMCommon.py:1150 msgid "Loaded FlatCAM Tools DB from" msgstr "" -#: FlatCAMCommon.py:744 +#: FlatCAMCommon.py:752 msgid "Add to DB" msgstr "" -#: FlatCAMCommon.py:746 +#: FlatCAMCommon.py:754 msgid "Copy from DB" msgstr "" -#: FlatCAMCommon.py:748 +#: FlatCAMCommon.py:756 msgid "Delete from DB" msgstr "" -#: FlatCAMCommon.py:998 +#: FlatCAMCommon.py:1026 msgid "Tool added to DB." msgstr "" -#: FlatCAMCommon.py:1019 +#: FlatCAMCommon.py:1047 msgid "Tool copied from Tools DB." msgstr "" -#: FlatCAMCommon.py:1037 +#: FlatCAMCommon.py:1065 msgid "Tool removed from Tools DB." msgstr "" -#: FlatCAMCommon.py:1048 +#: FlatCAMCommon.py:1076 msgid "Export Tools Database" msgstr "" -#: FlatCAMCommon.py:1051 +#: FlatCAMCommon.py:1079 msgid "Tools_Database" msgstr "" -#: FlatCAMCommon.py:1058 +#: FlatCAMCommon.py:1086 msgid "FlatCAM Tools DB export cancelled." msgstr "" -#: FlatCAMCommon.py:1088 FlatCAMCommon.py:1091 FlatCAMCommon.py:1143 +#: FlatCAMCommon.py:1116 FlatCAMCommon.py:1119 FlatCAMCommon.py:1171 msgid "Failed to write Tools DB to file." msgstr "" -#: FlatCAMCommon.py:1094 +#: FlatCAMCommon.py:1122 msgid "Exported Tools DB to" msgstr "" -#: FlatCAMCommon.py:1101 +#: FlatCAMCommon.py:1129 msgid "Import FlatCAM Tools DB" msgstr "" -#: FlatCAMCommon.py:1104 +#: FlatCAMCommon.py:1132 msgid "FlatCAM Tools DB import cancelled." msgstr "" -#: FlatCAMCommon.py:1147 +#: FlatCAMCommon.py:1175 msgid "Saved Tools DB." msgstr "" -#: FlatCAMCommon.py:1293 +#: FlatCAMCommon.py:1322 msgid "No Tool/row selected in the Tools Database table" msgstr "" -#: FlatCAMCommon.py:1311 +#: FlatCAMCommon.py:1340 msgid "Cancelled adding tool from DB." msgstr "" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "Name changed from" msgstr "" -#: FlatCAMObj.py:248 +#: FlatCAMObj.py:249 msgid "to" msgstr "" -#: FlatCAMObj.py:259 +#: FlatCAMObj.py:260 msgid "Offsetting..." msgstr "" -#: FlatCAMObj.py:278 +#: FlatCAMObj.py:274 FlatCAMObj.py:279 +msgid "Scaling could not be executed." +msgstr "" + +#: FlatCAMObj.py:283 FlatCAMObj.py:291 +msgid "Scale done." +msgstr "" + +#: FlatCAMObj.py:289 msgid "Scaling..." msgstr "" -#: FlatCAMObj.py:294 +#: FlatCAMObj.py:307 msgid "Skewing..." msgstr "" -#: FlatCAMObj.py:708 FlatCAMObj.py:2612 FlatCAMObj.py:3802 flatcamGUI/PreferencesUI.py:1123 +#: FlatCAMObj.py:723 FlatCAMObj.py:2710 FlatCAMObj.py:3904 flatcamGUI/PreferencesUI.py:1123 #: flatcamGUI/PreferencesUI.py:2257 msgid "Basic" msgstr "" -#: FlatCAMObj.py:730 FlatCAMObj.py:2624 FlatCAMObj.py:3822 flatcamGUI/PreferencesUI.py:1124 +#: FlatCAMObj.py:745 FlatCAMObj.py:2722 FlatCAMObj.py:3925 flatcamGUI/PreferencesUI.py:1124 msgid "Advanced" msgstr "" -#: FlatCAMObj.py:947 +#: FlatCAMObj.py:962 msgid "Buffering solid geometry" msgstr "" -#: FlatCAMObj.py:950 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 +#: FlatCAMObj.py:965 camlib.py:965 flatcamGUI/PreferencesUI.py:1700 #: flatcamTools/ToolCopperThieving.py:1010 flatcamTools/ToolCopperThieving.py:1199 -#: flatcamTools/ToolCopperThieving.py:1211 flatcamTools/ToolNonCopperClear.py:1627 -#: flatcamTools/ToolNonCopperClear.py:1725 flatcamTools/ToolNonCopperClear.py:1737 -#: flatcamTools/ToolNonCopperClear.py:1986 flatcamTools/ToolNonCopperClear.py:2082 -#: flatcamTools/ToolNonCopperClear.py:2094 +#: flatcamTools/ToolCopperThieving.py:1211 flatcamTools/ToolNonCopperClear.py:1628 +#: flatcamTools/ToolNonCopperClear.py:1726 flatcamTools/ToolNonCopperClear.py:1738 +#: flatcamTools/ToolNonCopperClear.py:1987 flatcamTools/ToolNonCopperClear.py:2083 +#: flatcamTools/ToolNonCopperClear.py:2095 msgid "Buffering" msgstr "" -#: FlatCAMObj.py:956 +#: FlatCAMObj.py:971 msgid "Done" msgstr "" -#: FlatCAMObj.py:1004 +#: FlatCAMObj.py:1019 msgid "Isolating..." msgstr "" -#: FlatCAMObj.py:1063 +#: FlatCAMObj.py:1078 msgid "Click on a polygon to isolate it." msgstr "" -#: FlatCAMObj.py:1095 flatcamTools/ToolPaint.py:1123 +#: FlatCAMObj.py:1117 FlatCAMObj.py:1222 flatcamTools/ToolPaint.py:1125 msgid "Added polygon" msgstr "" -#: FlatCAMObj.py:1097 +#: FlatCAMObj.py:1119 FlatCAMObj.py:1224 msgid "Click to add next polygon or right click to start isolation." msgstr "" -#: FlatCAMObj.py:1109 flatcamTools/ToolPaint.py:1137 +#: FlatCAMObj.py:1131 flatcamTools/ToolPaint.py:1139 msgid "Removed polygon" msgstr "" -#: FlatCAMObj.py:1110 +#: FlatCAMObj.py:1132 msgid "Click to add/remove next polygon or right click to start isolation." msgstr "" -#: FlatCAMObj.py:1115 flatcamTools/ToolPaint.py:1143 +#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1145 msgid "No polygon detected under click position." msgstr "" -#: FlatCAMObj.py:1137 flatcamTools/ToolPaint.py:1172 +#: FlatCAMObj.py:1158 flatcamTools/ToolPaint.py:1174 msgid "List of single polygons is empty. Aborting." msgstr "" -#: FlatCAMObj.py:1211 FlatCAMObj.py:1339 flatcamTools/ToolNonCopperClear.py:1656 -#: flatcamTools/ToolNonCopperClear.py:2010 +#: FlatCAMObj.py:1227 +msgid "No polygon in selection." +msgstr "" + +#: FlatCAMObj.py:1301 FlatCAMObj.py:1430 flatcamTools/ToolNonCopperClear.py:1657 +#: flatcamTools/ToolNonCopperClear.py:2011 msgid "Isolation geometry could not be generated." msgstr "" -#: FlatCAMObj.py:1286 FlatCAMObj.py:1362 +#: FlatCAMObj.py:1377 FlatCAMObj.py:1453 msgid "Isolation geometry created" msgstr "" -#: FlatCAMObj.py:1295 FlatCAMObj.py:1369 +#: FlatCAMObj.py:1386 FlatCAMObj.py:1460 msgid "Subtracting Geo" msgstr "" -#: FlatCAMObj.py:1686 +#: FlatCAMObj.py:1777 msgid "Plotting Apertures" msgstr "" -#: FlatCAMObj.py:2439 flatcamEditors/FlatCAMExcEditor.py:2352 +#: FlatCAMObj.py:2537 flatcamEditors/FlatCAMExcEditor.py:2352 msgid "Total Drills" msgstr "" -#: FlatCAMObj.py:2471 flatcamEditors/FlatCAMExcEditor.py:2384 +#: FlatCAMObj.py:2569 flatcamEditors/FlatCAMExcEditor.py:2384 msgid "Total Slots" msgstr "" -#: FlatCAMObj.py:2926 FlatCAMObj.py:3021 FlatCAMObj.py:3142 +#: FlatCAMObj.py:3024 FlatCAMObj.py:3119 FlatCAMObj.py:3240 msgid "Please select one or more tools from the list and try again." msgstr "" -#: FlatCAMObj.py:2933 +#: FlatCAMObj.py:3031 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:2934 FlatCAMObj.py:4384 flatcamEditors/FlatCAMGeoEditor.py:408 -#: flatcamGUI/FlatCAMGUI.py:427 flatcamGUI/FlatCAMGUI.py:918 flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:3032 FlatCAMObj.py:4490 flatcamEditors/FlatCAMGeoEditor.py:408 +#: flatcamGUI/FlatCAMGUI.py:438 flatcamGUI/FlatCAMGUI.py:930 flatcamGUI/ObjectUI.py:1314 msgid "Tool" msgstr "" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Tool_nr" msgstr "" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 #: flatcamEditors/FlatCAMExcEditor.py:1507 flatcamEditors/FlatCAMExcEditor.py:2967 -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolNonCopperClear.py:120 +#: flatcamGUI/ObjectUI.py:753 flatcamTools/ToolNonCopperClear.py:120 #: flatcamTools/ToolPaint.py:123 flatcamTools/ToolPcbWizard.py:76 #: flatcamTools/ToolProperties.py:396 flatcamTools/ToolProperties.py:449 #: flatcamTools/ToolSolderPaste.py:84 msgid "Diameter" msgstr "" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Drills_Nr" msgstr "" -#: FlatCAMObj.py:2950 FlatCAMObj.py:3043 FlatCAMObj.py:3161 +#: FlatCAMObj.py:3048 FlatCAMObj.py:3141 FlatCAMObj.py:3259 msgid "Slots_Nr" msgstr "" -#: FlatCAMObj.py:3030 +#: FlatCAMObj.py:3128 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:3202 +#: FlatCAMObj.py:3300 msgid "Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth\"]" msgstr "" -#: FlatCAMObj.py:3213 +#: FlatCAMObj.py:3311 msgid "" "Wrong value format for self.defaults[\"feedrate_probe\"] or self.options[\"feedrate_probe" "\"]" msgstr "" -#: FlatCAMObj.py:3243 FlatCAMObj.py:5203 FlatCAMObj.py:5207 FlatCAMObj.py:5340 +#: FlatCAMObj.py:3341 FlatCAMObj.py:5311 FlatCAMObj.py:5315 FlatCAMObj.py:5450 msgid "Generating CNC Code" msgstr "" -#: FlatCAMObj.py:3270 camlib.py:2387 camlib.py:3396 -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 "" - -#: FlatCAMObj.py:3794 +#: FlatCAMObj.py:3896 msgid "Add from Tool DB" msgstr "" -#: FlatCAMObj.py:3796 flatcamGUI/FlatCAMGUI.py:599 flatcamGUI/FlatCAMGUI.py:704 -#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1954 -#: flatcamGUI/FlatCAMGUI.py:2154 flatcamGUI/FlatCAMGUI.py:2277 flatcamGUI/ObjectUI.py:1248 +#: FlatCAMObj.py:3898 flatcamGUI/FlatCAMGUI.py:610 flatcamGUI/FlatCAMGUI.py:715 +#: flatcamGUI/FlatCAMGUI.py:850 flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1966 +#: flatcamGUI/FlatCAMGUI.py:2166 flatcamGUI/FlatCAMGUI.py:2290 flatcamGUI/ObjectUI.py:1285 #: flatcamTools/ToolPanelize.py:534 flatcamTools/ToolPanelize.py:561 #: flatcamTools/ToolPanelize.py:660 flatcamTools/ToolPanelize.py:694 #: flatcamTools/ToolPanelize.py:759 msgid "Copy" msgstr "" -#: FlatCAMObj.py:3879 FlatCAMObj.py:4248 FlatCAMObj.py:4955 FlatCAMObj.py:5591 -#: flatcamEditors/FlatCAMExcEditor.py:2459 flatcamEditors/FlatCAMGeoEditor.py:1080 -#: flatcamEditors/FlatCAMGeoEditor.py:1114 flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGeoEditor.py:1156 flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGeoEditor.py:1221 flatcamEditors/FlatCAMGeoEditor.py:1242 -#: flatcamTools/ToolNonCopperClear.py:1056 flatcamTools/ToolNonCopperClear.py:1464 -#: flatcamTools/ToolPaint.py:838 flatcamTools/ToolPaint.py:1022 -#: flatcamTools/ToolPaint.py:2094 flatcamTools/ToolSolderPaste.py:879 +#: FlatCAMObj.py:3985 FlatCAMObj.py:4354 FlatCAMObj.py:5061 FlatCAMObj.py:5701 +#: flatcamEditors/FlatCAMExcEditor.py:2459 flatcamEditors/FlatCAMGeoEditor.py:1078 +#: flatcamEditors/FlatCAMGeoEditor.py:1112 flatcamEditors/FlatCAMGeoEditor.py:1133 +#: flatcamEditors/FlatCAMGeoEditor.py:1154 flatcamEditors/FlatCAMGeoEditor.py:1191 +#: flatcamEditors/FlatCAMGeoEditor.py:1219 flatcamEditors/FlatCAMGeoEditor.py:1240 +#: flatcamTools/ToolNonCopperClear.py:1057 flatcamTools/ToolNonCopperClear.py:1465 +#: flatcamTools/ToolPaint.py:840 flatcamTools/ToolPaint.py:1024 +#: flatcamTools/ToolPaint.py:2096 flatcamTools/ToolSolderPaste.py:879 #: flatcamTools/ToolSolderPaste.py:954 msgid "Wrong value format entered, use a number." msgstr "" -#: FlatCAMObj.py:4017 +#: FlatCAMObj.py:4123 msgid "Please enter the desired tool diameter in Float format." msgstr "" -#: FlatCAMObj.py:4087 +#: FlatCAMObj.py:4193 msgid "Tool added in Tool Table." msgstr "" -#: FlatCAMObj.py:4091 +#: FlatCAMObj.py:4197 msgid "Default Tool added. Wrong value format entered." msgstr "" -#: FlatCAMObj.py:4198 FlatCAMObj.py:4207 +#: FlatCAMObj.py:4304 FlatCAMObj.py:4313 msgid "Failed. Select a tool to copy." msgstr "" -#: FlatCAMObj.py:4234 +#: FlatCAMObj.py:4340 msgid "Tool was copied in Tool Table." msgstr "" -#: FlatCAMObj.py:4262 +#: FlatCAMObj.py:4368 msgid "Tool was edited in Tool Table." msgstr "" -#: FlatCAMObj.py:4291 FlatCAMObj.py:4300 +#: FlatCAMObj.py:4397 FlatCAMObj.py:4406 msgid "Failed. Select a tool to delete." msgstr "" -#: FlatCAMObj.py:4323 +#: FlatCAMObj.py:4429 msgid "Tool was deleted in Tool Table." msgstr "" -#: FlatCAMObj.py:4384 flatcamGUI/ObjectUI.py:1277 +#: FlatCAMObj.py:4490 flatcamGUI/ObjectUI.py:1314 msgid "Parameters for" msgstr "" -#: FlatCAMObj.py:4815 +#: FlatCAMObj.py:4921 msgid "This Geometry can't be processed because it is" msgstr "" -#: FlatCAMObj.py:4817 +#: FlatCAMObj.py:4923 msgid "geometry" msgstr "" -#: FlatCAMObj.py:4860 +#: FlatCAMObj.py:4966 msgid "Failed. No tool selected in the tool table ..." msgstr "" -#: FlatCAMObj.py:4960 FlatCAMObj.py:5112 +#: FlatCAMObj.py:5066 FlatCAMObj.py:5219 msgid "" "Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" -#: FlatCAMObj.py:5024 FlatCAMObj.py:5172 +#: FlatCAMObj.py:5131 FlatCAMObj.py:5280 msgid "G-Code parsing in progress..." msgstr "" -#: FlatCAMObj.py:5026 FlatCAMObj.py:5174 +#: FlatCAMObj.py:5133 FlatCAMObj.py:5282 msgid "G-Code parsing finished..." msgstr "" -#: FlatCAMObj.py:5034 +#: FlatCAMObj.py:5141 msgid "Finished G-Code processing" msgstr "" -#: FlatCAMObj.py:5036 FlatCAMObj.py:5186 +#: FlatCAMObj.py:5143 FlatCAMObj.py:5294 msgid "G-Code processing failed with error" msgstr "" -#: FlatCAMObj.py:5082 flatcamTools/ToolSolderPaste.py:1302 +#: FlatCAMObj.py:5189 flatcamTools/ToolSolderPaste.py:1300 msgid "Cancelled. Empty file, it has no geometry" msgstr "" -#: FlatCAMObj.py:5184 FlatCAMObj.py:5333 +#: FlatCAMObj.py:5292 FlatCAMObj.py:5443 msgid "Finished G-Code processing..." msgstr "" -#: FlatCAMObj.py:5205 FlatCAMObj.py:5209 FlatCAMObj.py:5343 +#: FlatCAMObj.py:5313 FlatCAMObj.py:5317 FlatCAMObj.py:5453 msgid "CNCjob created" msgstr "" -#: FlatCAMObj.py:5374 FlatCAMObj.py:5383 flatcamParsers/ParseGerber.py:1750 +#: FlatCAMObj.py:5484 FlatCAMObj.py:5493 flatcamParsers/ParseGerber.py:1750 #: flatcamParsers/ParseGerber.py:1760 msgid "Scale factor has to be a number: integer or float." msgstr "" -#: FlatCAMObj.py:5447 +#: FlatCAMObj.py:5557 msgid "Geometry Scale done." msgstr "" -#: FlatCAMObj.py:5464 flatcamParsers/ParseGerber.py:1876 +#: FlatCAMObj.py:5574 flatcamParsers/ParseGerber.py:1876 msgid "" "An (x,y) pair of values are needed. Probable you entered only one value in the Offset " "field." msgstr "" -#: FlatCAMObj.py:5521 +#: FlatCAMObj.py:5631 msgid "Geometry Offset done." msgstr "" -#: FlatCAMObj.py:5550 +#: FlatCAMObj.py:5660 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 "" -#: FlatCAMObj.py:6137 FlatCAMObj.py:6785 FlatCAMObj.py:6981 +#: FlatCAMObj.py:6335 FlatCAMObj.py:6993 FlatCAMObj.py:7189 msgid "Basic" msgstr "" -#: FlatCAMObj.py:6143 FlatCAMObj.py:6789 FlatCAMObj.py:6985 +#: FlatCAMObj.py:6341 FlatCAMObj.py:6997 FlatCAMObj.py:7193 msgid "Advanced" msgstr "" -#: FlatCAMObj.py:6186 +#: FlatCAMObj.py:6384 msgid "Plotting..." msgstr "" -#: FlatCAMObj.py:6209 FlatCAMObj.py:6214 flatcamTools/ToolSolderPaste.py:1508 +#: FlatCAMObj.py:6407 FlatCAMObj.py:6412 flatcamTools/ToolSolderPaste.py:1506 msgid "Export Machine Code ..." msgstr "" -#: FlatCAMObj.py:6219 flatcamTools/ToolSolderPaste.py:1512 +#: FlatCAMObj.py:6417 flatcamTools/ToolSolderPaste.py:1510 msgid "Export Machine Code cancelled ..." msgstr "" -#: FlatCAMObj.py:6241 +#: FlatCAMObj.py:6439 msgid "Machine Code file saved to" msgstr "" -#: FlatCAMObj.py:6295 flatcamTools/ToolCalibration.py:953 +#: FlatCAMObj.py:6493 flatcamTools/ToolCalibration.py:1083 msgid "Loaded Machine Code into Code Editor" msgstr "" -#: FlatCAMObj.py:6430 +#: FlatCAMObj.py:6628 msgid "This CNCJob object can't be processed because it is a" msgstr "" -#: FlatCAMObj.py:6432 +#: FlatCAMObj.py:6630 msgid "CNCJob object" msgstr "" -#: FlatCAMObj.py:6483 +#: FlatCAMObj.py:6681 msgid "G-code does not have a units code: either G20 or G21" msgstr "" -#: FlatCAMObj.py:6497 +#: FlatCAMObj.py:6695 msgid "Cancelled. The Toolchange Custom code is enabled but it's empty." msgstr "" -#: FlatCAMObj.py:6502 +#: FlatCAMObj.py:6700 msgid "Toolchange G-code was replaced by a custom code." msgstr "" -#: FlatCAMObj.py:6519 flatcamEditors/FlatCAMTextEditor.py:224 -#: flatcamTools/ToolSolderPaste.py:1539 +#: FlatCAMObj.py:6717 flatcamEditors/FlatCAMTextEditor.py:224 +#: flatcamTools/ToolSolderPaste.py:1537 msgid "No such file or directory" msgstr "" -#: FlatCAMObj.py:6533 flatcamEditors/FlatCAMTextEditor.py:236 +#: FlatCAMObj.py:6731 flatcamEditors/FlatCAMTextEditor.py:236 msgid "Saved to" msgstr "" -#: FlatCAMObj.py:6543 FlatCAMObj.py:6553 +#: FlatCAMObj.py:6741 FlatCAMObj.py:6751 msgid "The used preprocessor file has to have in it's name: 'toolchange_custom'" msgstr "" -#: FlatCAMObj.py:6557 +#: FlatCAMObj.py:6755 msgid "There is no preprocessor file." msgstr "" -#: FlatCAMObj.py:6804 +#: FlatCAMObj.py:7012 msgid "Script Editor" msgstr "" -#: FlatCAMObj.py:7085 +#: FlatCAMObj.py:7293 msgid "Document Editor" msgstr "" @@ -2367,7 +2421,7 @@ msgstr "" msgid "Object renamed from {old} to {new}" msgstr "" -#: ObjectCollection.py:834 +#: ObjectCollection.py:852 msgid "Cause of error" msgstr "" @@ -2415,63 +2469,69 @@ msgstr "" msgid "There is no such parameter" msgstr "" -#: camlib.py:2366 +#: camlib.py:2368 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:2374 camlib.py:3078 camlib.py:3423 +#: camlib.py:2376 camlib.py:3089 camlib.py:3436 msgid "The Cut Z parameter is zero. There will be no cut, skipping file" msgstr "" -#: camlib.py:2450 +#: camlib.py:2389 camlib.py:3409 +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:2458 msgid "Creating a list of points to drill..." msgstr "" -#: camlib.py:2532 +#: camlib.py:2540 msgid "Starting G-Code" msgstr "" -#: camlib.py:2627 camlib.py:2770 camlib.py:2871 camlib.py:3189 camlib.py:3534 +#: camlib.py:2635 camlib.py:2778 camlib.py:2880 camlib.py:3200 camlib.py:3547 msgid "Starting G-Code for tool with diameter" msgstr "" -#: camlib.py:2683 camlib.py:2826 camlib.py:2928 +#: camlib.py:2691 camlib.py:2834 camlib.py:2937 msgid "G91 coordinates not implemented" msgstr "" -#: camlib.py:2689 camlib.py:2832 camlib.py:2934 +#: camlib.py:2697 camlib.py:2841 camlib.py:2943 msgid "The loaded Excellon file has no drills" msgstr "" -#: camlib.py:2956 +#: camlib.py:2966 msgid "Finished G-Code generation..." msgstr "" -#: camlib.py:3050 +#: camlib.py:3061 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:3063 camlib.py:3409 +#: camlib.py:3074 camlib.py:3422 msgid "Cut_Z parameter is None or zero. Most likely a bad combinations of other parameters." msgstr "" -#: camlib.py:3070 camlib.py:3415 +#: camlib.py:3081 camlib.py:3428 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:3083 camlib.py:3429 +#: camlib.py:3094 camlib.py:3442 msgid "Travel Z parameter is None or zero." msgstr "" -#: camlib.py:3088 camlib.py:3434 +#: camlib.py:3099 camlib.py:3447 msgid "" "The Travel Z parameter has negative value. It is the height value to travel between " "cuts.\n" @@ -2479,69 +2539,69 @@ msgid "" "the app will convert the value to positive.Check the resulting CNC code (Gcode etc)." msgstr "" -#: camlib.py:3096 camlib.py:3442 +#: camlib.py:3107 camlib.py:3455 msgid "The Z Travel parameter is zero. This is dangerous, skipping file" msgstr "" -#: camlib.py:3115 camlib.py:3461 +#: camlib.py:3126 camlib.py:3474 msgid "Indexing geometry before generating G-Code..." msgstr "" -#: camlib.py:3176 camlib.py:3523 +#: camlib.py:3187 camlib.py:3536 msgid "Starting G-Code..." msgstr "" -#: camlib.py:3258 camlib.py:3604 +#: camlib.py:3270 camlib.py:3618 msgid "Finished G-Code generation" msgstr "" -#: camlib.py:3260 +#: camlib.py:3272 msgid "paths traced" msgstr "" -#: camlib.py:3296 +#: camlib.py:3309 msgid "Expected a Geometry, got" msgstr "" -#: camlib.py:3303 +#: camlib.py:3316 msgid "Trying to generate a CNC Job from a Geometry object without solid_geometry." msgstr "" -#: camlib.py:3343 +#: camlib.py:3356 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:3604 +#: camlib.py:3618 msgid " paths traced." msgstr "" -#: camlib.py:3632 +#: camlib.py:3646 msgid "There is no tool data in the SolderPaste geometry." msgstr "" -#: camlib.py:3719 +#: camlib.py:3733 msgid "Finished SolderPste G-Code generation" msgstr "" -#: camlib.py:3721 +#: camlib.py:3735 msgid "paths traced." msgstr "" -#: camlib.py:3976 +#: camlib.py:3991 msgid "Parsing GCode file. Number of lines" msgstr "" -#: camlib.py:4083 +#: camlib.py:4098 msgid "Creating Geometry from the parsed GCode file. " msgstr "" -#: camlib.py:4219 camlib.py:4503 camlib.py:4606 camlib.py:4653 +#: camlib.py:4234 camlib.py:4518 camlib.py:4621 camlib.py:4690 msgid "G91 coordinates not implemented ..." msgstr "" -#: camlib.py:4350 +#: camlib.py:4365 msgid "Unifying Geometry from parsed Geometry segments" msgstr "" @@ -2634,7 +2694,7 @@ msgid "Resize drill(s) failed. Please enter a diameter for resize." msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:983 flatcamEditors/FlatCAMExcEditor.py:1052 -#: flatcamGUI/FlatCAMGUI.py:2879 flatcamGUI/FlatCAMGUI.py:3092 flatcamGUI/FlatCAMGUI.py:3309 +#: flatcamGUI/FlatCAMGUI.py:2892 flatcamGUI/FlatCAMGUI.py:3105 flatcamGUI/FlatCAMGUI.py:3322 msgid "Cancelled." msgstr "" @@ -2658,7 +2718,7 @@ msgstr "" msgid "Done. Drill(s) copied." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2818 +#: flatcamEditors/FlatCAMExcEditor.py:1480 flatcamGUI/PreferencesUI.py:2820 msgid "Excellon Editor" msgstr "" @@ -2666,13 +2726,13 @@ msgstr "" msgid "Name:" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:716 -#: flatcamGUI/ObjectUI.py:1108 flatcamTools/ToolNonCopperClear.py:109 +#: flatcamEditors/FlatCAMExcEditor.py:1493 flatcamGUI/ObjectUI.py:733 +#: flatcamGUI/ObjectUI.py:1145 flatcamTools/ToolNonCopperClear.py:109 #: flatcamTools/ToolPaint.py:112 flatcamTools/ToolSolderPaste.py:73 msgid "Tools Table" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:718 +#: flatcamEditors/FlatCAMExcEditor.py:1495 flatcamGUI/ObjectUI.py:735 msgid "" "Tools in this Excellon object\n" "when are used for drilling." @@ -2688,8 +2748,8 @@ msgid "" "for this Excellon object." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1221 -#: flatcamGUI/PreferencesUI.py:2849 +#: flatcamEditors/FlatCAMExcEditor.py:1529 flatcamGUI/ObjectUI.py:1258 +#: flatcamGUI/PreferencesUI.py:2851 msgid "Diameter for the new tool" msgstr "" @@ -2713,7 +2773,7 @@ msgid "" "by selecting a row in the tool table." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamEditors/FlatCAMExcEditor.py:1573 flatcamGUI/FlatCAMGUI.py:1749 msgid "Resize Drill(s)" msgstr "" @@ -2737,8 +2797,8 @@ msgstr "" msgid "Resize drill(s)" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1736 -#: flatcamGUI/FlatCAMGUI.py:1946 +#: flatcamEditors/FlatCAMExcEditor.py:1622 flatcamGUI/FlatCAMGUI.py:1748 +#: flatcamGUI/FlatCAMGUI.py:1958 msgid "Add Drill Array" msgstr "" @@ -2758,17 +2818,17 @@ msgid "Linear" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1634 flatcamEditors/FlatCAMExcEditor.py:1848 -#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:295 -#: flatcamGUI/PreferencesUI.py:3981 flatcamGUI/PreferencesUI.py:6378 +#: flatcamEditors/FlatCAMGrbEditor.py:2696 flatcamGUI/ObjectUI.py:300 +#: flatcamGUI/PreferencesUI.py:3999 flatcamGUI/PreferencesUI.py:6396 #: flatcamTools/ToolFiducials.py:220 flatcamTools/ToolNonCopperClear.py:221 msgid "Circular" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2860 +#: flatcamEditors/FlatCAMExcEditor.py:1642 flatcamGUI/PreferencesUI.py:2862 msgid "Nr of drills" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2862 +#: flatcamEditors/FlatCAMExcEditor.py:1643 flatcamGUI/PreferencesUI.py:2864 msgid "Specify how many drills to be in the array." msgstr "" @@ -2776,13 +2836,13 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1783 flatcamEditors/FlatCAMExcEditor.py:1876 #: flatcamEditors/FlatCAMExcEditor.py:1927 flatcamEditors/FlatCAMGrbEditor.py:1524 #: flatcamEditors/FlatCAMGrbEditor.py:2724 flatcamEditors/FlatCAMGrbEditor.py:2773 -#: flatcamGUI/PreferencesUI.py:2970 +#: flatcamGUI/PreferencesUI.py:2972 msgid "Direction" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1663 flatcamEditors/FlatCAMExcEditor.py:1878 #: flatcamEditors/FlatCAMGrbEditor.py:2726 flatcamGUI/PreferencesUI.py:1940 -#: flatcamGUI/PreferencesUI.py:2878 flatcamGUI/PreferencesUI.py:3026 +#: flatcamGUI/PreferencesUI.py:2880 flatcamGUI/PreferencesUI.py:3028 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -2792,17 +2852,17 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1670 flatcamEditors/FlatCAMExcEditor.py:1792 #: flatcamEditors/FlatCAMExcEditor.py:1885 flatcamEditors/FlatCAMGrbEditor.py:2733 -#: flatcamGUI/PreferencesUI.py:1946 flatcamGUI/PreferencesUI.py:2884 -#: flatcamGUI/PreferencesUI.py:2979 flatcamGUI/PreferencesUI.py:3032 -#: flatcamGUI/PreferencesUI.py:4804 flatcamTools/ToolFilm.py:256 +#: flatcamGUI/PreferencesUI.py:1946 flatcamGUI/PreferencesUI.py:2886 +#: flatcamGUI/PreferencesUI.py:2981 flatcamGUI/PreferencesUI.py:3034 +#: flatcamGUI/PreferencesUI.py:4822 flatcamTools/ToolFilm.py:256 msgid "X" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1671 flatcamEditors/FlatCAMExcEditor.py:1793 #: flatcamEditors/FlatCAMExcEditor.py:1886 flatcamEditors/FlatCAMGrbEditor.py:2734 -#: flatcamGUI/PreferencesUI.py:1947 flatcamGUI/PreferencesUI.py:2885 -#: flatcamGUI/PreferencesUI.py:2980 flatcamGUI/PreferencesUI.py:3033 -#: flatcamGUI/PreferencesUI.py:4805 flatcamTools/ToolFilm.py:257 +#: flatcamGUI/PreferencesUI.py:1947 flatcamGUI/PreferencesUI.py:2887 +#: flatcamGUI/PreferencesUI.py:2982 flatcamGUI/PreferencesUI.py:3035 +#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:257 msgid "Y" msgstr "" @@ -2812,10 +2872,10 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1905 flatcamEditors/FlatCAMExcEditor.py:1939 #: flatcamEditors/FlatCAMGrbEditor.py:2735 flatcamEditors/FlatCAMGrbEditor.py:2752 #: flatcamEditors/FlatCAMGrbEditor.py:2788 flatcamGUI/PreferencesUI.py:1948 -#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2886 -#: flatcamGUI/PreferencesUI.py:2905 flatcamGUI/PreferencesUI.py:2981 -#: flatcamGUI/PreferencesUI.py:2986 flatcamGUI/PreferencesUI.py:3034 -#: flatcamGUI/PreferencesUI.py:3055 flatcamGUI/PreferencesUI.py:5197 +#: flatcamGUI/PreferencesUI.py:1966 flatcamGUI/PreferencesUI.py:2888 +#: flatcamGUI/PreferencesUI.py:2907 flatcamGUI/PreferencesUI.py:2983 +#: flatcamGUI/PreferencesUI.py:2988 flatcamGUI/PreferencesUI.py:3036 +#: flatcamGUI/PreferencesUI.py:3057 flatcamGUI/PreferencesUI.py:5215 #: flatcamTools/ToolDistance.py:66 flatcamTools/ToolDistanceMin.py:68 #: flatcamTools/ToolTransform.py:62 msgid "Angle" @@ -2823,13 +2883,13 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1676 flatcamEditors/FlatCAMExcEditor.py:1891 #: flatcamEditors/FlatCAMGrbEditor.py:2739 flatcamGUI/PreferencesUI.py:1954 -#: flatcamGUI/PreferencesUI.py:2892 flatcamGUI/PreferencesUI.py:3040 +#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 msgid "Pitch" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1678 flatcamEditors/FlatCAMExcEditor.py:1893 #: flatcamEditors/FlatCAMGrbEditor.py:2741 flatcamGUI/PreferencesUI.py:1956 -#: flatcamGUI/PreferencesUI.py:2894 flatcamGUI/PreferencesUI.py:3042 +#: flatcamGUI/PreferencesUI.py:2896 flatcamGUI/PreferencesUI.py:3044 msgid "Pitch = Distance between elements of the array." msgstr "" @@ -2848,23 +2908,23 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1719 flatcamEditors/FlatCAMExcEditor.py:1935 #: flatcamEditors/FlatCAMGrbEditor.py:2783 flatcamGUI/PreferencesUI.py:1988 -#: flatcamGUI/PreferencesUI.py:2632 flatcamGUI/PreferencesUI.py:2928 -#: flatcamGUI/PreferencesUI.py:3078 flatcamGUI/PreferencesUI.py:3490 +#: flatcamGUI/PreferencesUI.py:2634 flatcamGUI/PreferencesUI.py:2930 +#: flatcamGUI/PreferencesUI.py:3080 flatcamGUI/PreferencesUI.py:3508 msgid "CW" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1720 flatcamEditors/FlatCAMExcEditor.py:1936 #: flatcamEditors/FlatCAMGrbEditor.py:2784 flatcamGUI/PreferencesUI.py:1989 -#: flatcamGUI/PreferencesUI.py:2633 flatcamGUI/PreferencesUI.py:2929 -#: flatcamGUI/PreferencesUI.py:3079 flatcamGUI/PreferencesUI.py:3491 +#: flatcamGUI/PreferencesUI.py:2635 flatcamGUI/PreferencesUI.py:2931 +#: flatcamGUI/PreferencesUI.py:3081 flatcamGUI/PreferencesUI.py:3509 msgid "CCW" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1724 flatcamEditors/FlatCAMExcEditor.py:1940 #: flatcamEditors/FlatCAMGrbEditor.py:2790 flatcamGUI/PreferencesUI.py:1968 -#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2907 -#: flatcamGUI/PreferencesUI.py:2937 flatcamGUI/PreferencesUI.py:3057 -#: flatcamGUI/PreferencesUI.py:3087 +#: flatcamGUI/PreferencesUI.py:1997 flatcamGUI/PreferencesUI.py:2909 +#: flatcamGUI/PreferencesUI.py:2939 flatcamGUI/PreferencesUI.py:3059 +#: flatcamGUI/PreferencesUI.py:3089 msgid "Angle at which each element in circular array is placed." msgstr "" @@ -2878,16 +2938,16 @@ msgid "" "either single or as an part of an array." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2954 +#: flatcamEditors/FlatCAMExcEditor.py:1769 flatcamGUI/PreferencesUI.py:2956 #: flatcamTools/ToolProperties.py:555 msgid "Length" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2956 +#: flatcamEditors/FlatCAMExcEditor.py:1771 flatcamGUI/PreferencesUI.py:2958 msgid "Length = The length of the slot." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2972 +#: flatcamEditors/FlatCAMExcEditor.py:1785 flatcamGUI/PreferencesUI.py:2974 msgid "" "Direction on which the slot is oriented:\n" "- 'X' - horizontal axis \n" @@ -2917,11 +2977,11 @@ msgid "" "It can be Linear X(Y) or Circular" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3011 +#: flatcamEditors/FlatCAMExcEditor.py:1856 flatcamGUI/PreferencesUI.py:3013 msgid "Nr of slots" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3013 +#: flatcamEditors/FlatCAMExcEditor.py:1857 flatcamGUI/PreferencesUI.py:3015 msgid "Specify how many slots to be in the array." msgstr "" @@ -2931,7 +2991,7 @@ msgid "" "Save and reedit Excellon if you need to add this tool. " msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3478 +#: flatcamEditors/FlatCAMExcEditor.py:2480 flatcamGUI/FlatCAMGUI.py:3491 msgid "Added new tool with dia" msgstr "" @@ -2998,7 +3058,7 @@ msgid "Round" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:96 flatcamEditors/FlatCAMGrbEditor.py:2552 -#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolQRCode.py:198 +#: flatcamGUI/PreferencesUI.py:5989 flatcamTools/ToolQRCode.py:198 msgid "Square" msgstr "" @@ -3018,14 +3078,14 @@ msgstr "" msgid "Full Buffer" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:133 flatcamEditors/FlatCAMGeoEditor.py:2760 -#: flatcamGUI/FlatCAMGUI.py:1646 flatcamGUI/PreferencesUI.py:2008 +#: flatcamEditors/FlatCAMGeoEditor.py:133 flatcamEditors/FlatCAMGeoEditor.py:2758 +#: flatcamGUI/FlatCAMGUI.py:1658 flatcamGUI/PreferencesUI.py:2008 msgid "Buffer Tool" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:145 flatcamEditors/FlatCAMGeoEditor.py:162 -#: flatcamEditors/FlatCAMGeoEditor.py:179 flatcamEditors/FlatCAMGeoEditor.py:2780 -#: flatcamEditors/FlatCAMGeoEditor.py:2810 flatcamEditors/FlatCAMGeoEditor.py:2840 +#: flatcamEditors/FlatCAMGeoEditor.py:179 flatcamEditors/FlatCAMGeoEditor.py:2778 +#: flatcamEditors/FlatCAMGeoEditor.py:2808 flatcamEditors/FlatCAMGeoEditor.py:2838 #: flatcamEditors/FlatCAMGrbEditor.py:4821 msgid "Buffer distance value is missing or wrong format. Add it and retry." msgstr "" @@ -3034,7 +3094,7 @@ msgstr "" msgid "Font" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1907 +#: flatcamEditors/FlatCAMGeoEditor.py:324 flatcamGUI/FlatCAMGUI.py:1919 msgid "Text" msgstr "" @@ -3042,31 +3102,28 @@ msgstr "" msgid "Text Tool" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:343 -#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3142 -#: flatcamGUI/PreferencesUI.py:4482 +#: flatcamEditors/FlatCAMGeoEditor.py:442 flatcamGUI/ObjectUI.py:348 +#: flatcamGUI/PreferencesUI.py:1449 flatcamGUI/PreferencesUI.py:3144 +#: flatcamGUI/PreferencesUI.py:4500 msgid "Tool dia" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4484 +#: flatcamEditors/FlatCAMGeoEditor.py:444 flatcamGUI/PreferencesUI.py:4502 msgid "" "Diameter of the tool to\n" "be used in the operation." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4089 -#: flatcamGUI/PreferencesUI.py:4514 flatcamTools/ToolNonCopperClear.py:319 +#: flatcamEditors/FlatCAMGeoEditor.py:455 flatcamGUI/PreferencesUI.py:4107 +#: flatcamGUI/PreferencesUI.py:4532 flatcamTools/ToolNonCopperClear.py:319 #: flatcamTools/ToolPaint.py:219 msgid "Overlap Rate" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:457 -#, python-format +#: flatcamEditors/FlatCAMGeoEditor.py:457 flatcamGUI/PreferencesUI.py:4534 +#: flatcamTools/ToolPaint.py:221 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" -"Example:\n" -"A value here of 0.25 means 25%% from the tool diameter found above.\n" -"\n" "Adjust the value starting with lower values\n" "and increasing it if areas that should be painted are still \n" "not painted.\n" @@ -3075,17 +3132,17 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4108 -#: flatcamGUI/PreferencesUI.py:4329 flatcamGUI/PreferencesUI.py:4534 -#: flatcamGUI/PreferencesUI.py:6088 flatcamGUI/PreferencesUI.py:6245 -#: flatcamGUI/PreferencesUI.py:6330 flatcamTools/ToolCopperThieving.py:111 +#: flatcamEditors/FlatCAMGeoEditor.py:475 flatcamGUI/PreferencesUI.py:4126 +#: flatcamGUI/PreferencesUI.py:4347 flatcamGUI/PreferencesUI.py:4552 +#: flatcamGUI/PreferencesUI.py:6106 flatcamGUI/PreferencesUI.py:6263 +#: flatcamGUI/PreferencesUI.py:6348 flatcamTools/ToolCopperThieving.py:111 #: flatcamTools/ToolCopperThieving.py:361 flatcamTools/ToolCutOut.py:182 #: flatcamTools/ToolFiducials.py:172 flatcamTools/ToolNonCopperClear.py:337 #: flatcamTools/ToolPaint.py:238 msgid "Margin" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:479 flatcamGUI/PreferencesUI.py:4536 +#: flatcamEditors/FlatCAMGeoEditor.py:477 flatcamGUI/PreferencesUI.py:4554 #: flatcamTools/ToolPaint.py:240 msgid "" "Distance by which to avoid\n" @@ -3093,132 +3150,132 @@ msgid "" "be painted." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:491 flatcamGUI/PreferencesUI.py:4121 -#: flatcamGUI/PreferencesUI.py:4549 flatcamTools/ToolNonCopperClear.py:348 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/PreferencesUI.py:4139 +#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:348 #: flatcamTools/ToolPaint.py:251 msgid "Method" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:493 +#: flatcamEditors/FlatCAMGeoEditor.py:491 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards.
Seed-based: Outwards from seed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4130 -#: flatcamGUI/PreferencesUI.py:4558 flatcamTools/ToolNonCopperClear.py:357 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/PreferencesUI.py:4148 +#: flatcamGUI/PreferencesUI.py:4576 flatcamTools/ToolNonCopperClear.py:357 #: flatcamTools/ToolPaint.py:260 msgid "Standard" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:499 flatcamGUI/PreferencesUI.py:4131 -#: flatcamGUI/PreferencesUI.py:4559 flatcamTools/ToolNonCopperClear.py:358 +#: flatcamEditors/FlatCAMGeoEditor.py:497 flatcamGUI/PreferencesUI.py:4149 +#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:358 #: flatcamTools/ToolPaint.py:261 msgid "Seed-based" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:500 flatcamGUI/PreferencesUI.py:4132 -#: flatcamGUI/PreferencesUI.py:4560 flatcamTools/ToolNonCopperClear.py:359 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/PreferencesUI.py:4150 +#: flatcamGUI/PreferencesUI.py:4578 flatcamTools/ToolNonCopperClear.py:359 #: flatcamTools/ToolPaint.py:262 msgid "Straight lines" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:507 +#: flatcamEditors/FlatCAMGeoEditor.py:505 msgid "Connect:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:509 flatcamGUI/PreferencesUI.py:4141 -#: flatcamGUI/PreferencesUI.py:4567 flatcamTools/ToolNonCopperClear.py:366 +#: flatcamEditors/FlatCAMGeoEditor.py:507 flatcamGUI/PreferencesUI.py:4159 +#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolNonCopperClear.py:366 #: flatcamTools/ToolPaint.py:269 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:517 +#: flatcamEditors/FlatCAMGeoEditor.py:515 msgid "Contour:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:519 flatcamGUI/PreferencesUI.py:4152 -#: flatcamGUI/PreferencesUI.py:4577 flatcamTools/ToolNonCopperClear.py:375 +#: flatcamEditors/FlatCAMGeoEditor.py:517 flatcamGUI/PreferencesUI.py:4170 +#: flatcamGUI/PreferencesUI.py:4595 flatcamTools/ToolNonCopperClear.py:375 #: flatcamTools/ToolPaint.py:278 msgid "" "Cut around the perimeter of the polygon\n" "to trim rough edges." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:531 flatcamGUI/FlatCAMGUI.py:1909 +#: flatcamEditors/FlatCAMGeoEditor.py:529 flatcamGUI/FlatCAMGUI.py:1921 msgid "Paint" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:549 flatcamGUI/FlatCAMGUI.py:738 -#: flatcamGUI/FlatCAMGUI.py:2182 flatcamGUI/ObjectUI.py:1637 flatcamTools/ToolPaint.py:41 -#: flatcamTools/ToolPaint.py:537 +#: flatcamEditors/FlatCAMGeoEditor.py:547 flatcamGUI/FlatCAMGUI.py:749 +#: flatcamGUI/FlatCAMGUI.py:2194 flatcamGUI/ObjectUI.py:1694 flatcamTools/ToolPaint.py:41 +#: flatcamTools/ToolPaint.py:538 msgid "Paint Tool" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:586 +#: flatcamEditors/FlatCAMGeoEditor.py:584 msgid "Paint cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:599 flatcamEditors/FlatCAMGeoEditor.py:2786 -#: flatcamEditors/FlatCAMGeoEditor.py:2816 flatcamEditors/FlatCAMGeoEditor.py:2846 -#: flatcamGUI/PreferencesUI.py:3138 flatcamTools/ToolProperties.py:120 +#: flatcamEditors/FlatCAMGeoEditor.py:597 flatcamEditors/FlatCAMGeoEditor.py:2784 +#: flatcamEditors/FlatCAMGeoEditor.py:2814 flatcamEditors/FlatCAMGeoEditor.py:2844 +#: flatcamGUI/PreferencesUI.py:3140 flatcamTools/ToolProperties.py:120 #: flatcamTools/ToolProperties.py:158 msgid "Tools" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:610 flatcamEditors/FlatCAMGeoEditor.py:994 +#: flatcamEditors/FlatCAMGeoEditor.py:608 flatcamEditors/FlatCAMGeoEditor.py:992 #: flatcamEditors/FlatCAMGrbEditor.py:5011 flatcamEditors/FlatCAMGrbEditor.py:5408 -#: flatcamGUI/FlatCAMGUI.py:751 flatcamGUI/FlatCAMGUI.py:2195 +#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2207 #: flatcamTools/ToolTransform.py:371 msgid "Transform Tool" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:611 flatcamEditors/FlatCAMGeoEditor.py:676 +#: flatcamEditors/FlatCAMGeoEditor.py:609 flatcamEditors/FlatCAMGeoEditor.py:674 #: flatcamEditors/FlatCAMGrbEditor.py:5012 flatcamEditors/FlatCAMGrbEditor.py:5077 -#: flatcamGUI/PreferencesUI.py:5189 flatcamTools/ToolTransform.py:25 +#: flatcamGUI/PreferencesUI.py:5207 flatcamTools/ToolTransform.py:25 #: flatcamTools/ToolTransform.py:79 msgid "Rotate" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:612 flatcamEditors/FlatCAMGrbEditor.py:5013 +#: flatcamEditors/FlatCAMGeoEditor.py:610 flatcamEditors/FlatCAMGrbEditor.py:5013 #: flatcamTools/ToolTransform.py:26 msgid "Skew/Shear" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:613 flatcamEditors/FlatCAMGrbEditor.py:2600 -#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:831 -#: flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:1936 flatcamGUI/FlatCAMGUI.py:2271 -#: flatcamGUI/ObjectUI.py:92 flatcamGUI/ObjectUI.py:113 flatcamGUI/PreferencesUI.py:5239 +#: flatcamEditors/FlatCAMGeoEditor.py:611 flatcamEditors/FlatCAMGrbEditor.py:2600 +#: flatcamEditors/FlatCAMGrbEditor.py:5014 flatcamGUI/FlatCAMGUI.py:843 +#: flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:1948 flatcamGUI/FlatCAMGUI.py:2284 +#: flatcamGUI/ObjectUI.py:92 flatcamGUI/ObjectUI.py:110 flatcamGUI/PreferencesUI.py:5257 #: flatcamTools/ToolTransform.py:27 msgid "Scale" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:614 flatcamEditors/FlatCAMGrbEditor.py:5015 +#: flatcamEditors/FlatCAMGeoEditor.py:612 flatcamEditors/FlatCAMGrbEditor.py:5015 #: flatcamTools/ToolTransform.py:28 msgid "Mirror (Flip)" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:615 flatcamEditors/FlatCAMGrbEditor.py:5016 -#: flatcamGUI/ObjectUI.py:124 flatcamGUI/ObjectUI.py:139 flatcamGUI/ObjectUI.py:1141 -#: flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:4177 -#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolNonCopperClear.py:397 +#: flatcamEditors/FlatCAMGeoEditor.py:613 flatcamEditors/FlatCAMGrbEditor.py:5016 +#: flatcamGUI/ObjectUI.py:121 flatcamGUI/ObjectUI.py:137 flatcamGUI/ObjectUI.py:1178 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/PreferencesUI.py:4195 +#: flatcamGUI/PreferencesUI.py:5304 flatcamTools/ToolNonCopperClear.py:397 #: flatcamTools/ToolTransform.py:29 msgid "Offset" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:628 flatcamEditors/FlatCAMGrbEditor.py:5029 -#: flatcamGUI/FlatCAMGUI.py:698 flatcamGUI/FlatCAMGUI.py:2148 +#: flatcamEditors/FlatCAMGeoEditor.py:626 flatcamEditors/FlatCAMGrbEditor.py:5029 +#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2160 msgid "Editor" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:660 flatcamEditors/FlatCAMGrbEditor.py:5061 +#: flatcamEditors/FlatCAMGeoEditor.py:658 flatcamEditors/FlatCAMGrbEditor.py:5061 msgid "Angle:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:662 flatcamEditors/FlatCAMGrbEditor.py:5063 -#: flatcamGUI/PreferencesUI.py:5199 flatcamTools/ToolTransform.py:64 +#: flatcamEditors/FlatCAMGeoEditor.py:660 flatcamEditors/FlatCAMGrbEditor.py:5063 +#: flatcamGUI/PreferencesUI.py:5217 flatcamTools/ToolTransform.py:64 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -3226,32 +3283,32 @@ msgid "" "Negative numbers for CCW motion." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:678 flatcamEditors/FlatCAMGrbEditor.py:5079 +#: flatcamEditors/FlatCAMGeoEditor.py:676 flatcamEditors/FlatCAMGrbEditor.py:5079 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:701 flatcamEditors/FlatCAMGrbEditor.py:5102 +#: flatcamEditors/FlatCAMGeoEditor.py:699 flatcamEditors/FlatCAMGrbEditor.py:5102 msgid "Angle X:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:703 flatcamEditors/FlatCAMGeoEditor.py:723 +#: flatcamEditors/FlatCAMGeoEditor.py:701 flatcamEditors/FlatCAMGeoEditor.py:721 #: flatcamEditors/FlatCAMGrbEditor.py:5104 flatcamEditors/FlatCAMGrbEditor.py:5124 -#: flatcamGUI/PreferencesUI.py:5218 flatcamGUI/PreferencesUI.py:5232 -#: flatcamTools/ToolCalibration.py:445 flatcamTools/ToolCalibration.py:458 +#: flatcamGUI/PreferencesUI.py:5236 flatcamGUI/PreferencesUI.py:5250 +#: flatcamTools/ToolCalibration.py:508 flatcamTools/ToolCalibration.py:521 msgid "" "Angle for Skew action, in degrees.\n" "Float number between -360 and 359." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:714 flatcamEditors/FlatCAMGrbEditor.py:5115 +#: flatcamEditors/FlatCAMGeoEditor.py:712 flatcamEditors/FlatCAMGrbEditor.py:5115 #: flatcamTools/ToolTransform.py:108 msgid "Skew X" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:716 flatcamEditors/FlatCAMGeoEditor.py:736 +#: flatcamEditors/FlatCAMGeoEditor.py:714 flatcamEditors/FlatCAMGeoEditor.py:734 #: flatcamEditors/FlatCAMGrbEditor.py:5117 flatcamEditors/FlatCAMGrbEditor.py:5137 msgid "" "Skew/shear the selected shape(s).\n" @@ -3259,30 +3316,30 @@ msgid "" "the bounding box for all selected shapes." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:721 flatcamEditors/FlatCAMGrbEditor.py:5122 +#: flatcamEditors/FlatCAMGeoEditor.py:719 flatcamEditors/FlatCAMGrbEditor.py:5122 msgid "Angle Y:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:734 flatcamEditors/FlatCAMGrbEditor.py:5135 +#: flatcamEditors/FlatCAMGeoEditor.py:732 flatcamEditors/FlatCAMGrbEditor.py:5135 #: flatcamTools/ToolTransform.py:130 msgid "Skew Y" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:762 flatcamEditors/FlatCAMGrbEditor.py:5163 +#: flatcamEditors/FlatCAMGeoEditor.py:760 flatcamEditors/FlatCAMGrbEditor.py:5163 msgid "Factor X:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:764 flatcamEditors/FlatCAMGrbEditor.py:5165 -#: flatcamTools/ToolCalibration.py:409 +#: flatcamEditors/FlatCAMGeoEditor.py:762 flatcamEditors/FlatCAMGrbEditor.py:5165 +#: flatcamTools/ToolCalibration.py:472 msgid "Factor for Scale action over X axis." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:774 flatcamEditors/FlatCAMGrbEditor.py:5175 +#: flatcamEditors/FlatCAMGeoEditor.py:772 flatcamEditors/FlatCAMGrbEditor.py:5175 #: flatcamTools/ToolTransform.py:157 msgid "Scale X" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:776 flatcamEditors/FlatCAMGeoEditor.py:795 +#: flatcamEditors/FlatCAMGeoEditor.py:774 flatcamEditors/FlatCAMGeoEditor.py:793 #: flatcamEditors/FlatCAMGrbEditor.py:5177 flatcamEditors/FlatCAMGrbEditor.py:5196 msgid "" "Scale the selected shape(s).\n" @@ -3290,37 +3347,37 @@ msgid "" "the Scale reference checkbox state." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:781 flatcamEditors/FlatCAMGrbEditor.py:5182 +#: flatcamEditors/FlatCAMGeoEditor.py:779 flatcamEditors/FlatCAMGrbEditor.py:5182 msgid "Factor Y:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:783 flatcamEditors/FlatCAMGrbEditor.py:5184 -#: flatcamTools/ToolCalibration.py:421 +#: flatcamEditors/FlatCAMGeoEditor.py:781 flatcamEditors/FlatCAMGrbEditor.py:5184 +#: flatcamTools/ToolCalibration.py:484 msgid "Factor for Scale action over Y axis." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:793 flatcamEditors/FlatCAMGrbEditor.py:5194 +#: flatcamEditors/FlatCAMGeoEditor.py:791 flatcamEditors/FlatCAMGrbEditor.py:5194 #: flatcamTools/ToolTransform.py:178 msgid "Scale Y" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:802 flatcamEditors/FlatCAMGrbEditor.py:5203 -#: flatcamGUI/PreferencesUI.py:5268 flatcamTools/ToolTransform.py:191 +#: flatcamEditors/FlatCAMGeoEditor.py:800 flatcamEditors/FlatCAMGrbEditor.py:5203 +#: flatcamGUI/PreferencesUI.py:5286 flatcamTools/ToolTransform.py:191 msgid "Link" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:804 flatcamEditors/FlatCAMGrbEditor.py:5205 +#: flatcamEditors/FlatCAMGeoEditor.py:802 flatcamEditors/FlatCAMGrbEditor.py:5205 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:810 flatcamEditors/FlatCAMGrbEditor.py:5211 -#: flatcamGUI/PreferencesUI.py:5276 flatcamTools/ToolTransform.py:199 +#: flatcamEditors/FlatCAMGeoEditor.py:808 flatcamEditors/FlatCAMGrbEditor.py:5211 +#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:199 msgid "Scale Reference" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:812 flatcamEditors/FlatCAMGrbEditor.py:5213 +#: flatcamEditors/FlatCAMGeoEditor.py:810 flatcamEditors/FlatCAMGrbEditor.py:5213 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -3328,20 +3385,20 @@ msgid "" "of the selected shapes when unchecked." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:840 flatcamEditors/FlatCAMGrbEditor.py:5242 +#: flatcamEditors/FlatCAMGeoEditor.py:838 flatcamEditors/FlatCAMGrbEditor.py:5242 msgid "Value X:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:842 flatcamEditors/FlatCAMGrbEditor.py:5244 +#: flatcamEditors/FlatCAMGeoEditor.py:840 flatcamEditors/FlatCAMGrbEditor.py:5244 msgid "Value for Offset action on X axis." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:852 flatcamEditors/FlatCAMGrbEditor.py:5254 +#: flatcamEditors/FlatCAMGeoEditor.py:850 flatcamEditors/FlatCAMGrbEditor.py:5254 #: flatcamTools/ToolTransform.py:226 msgid "Offset X" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:854 flatcamEditors/FlatCAMGeoEditor.py:874 +#: flatcamEditors/FlatCAMGeoEditor.py:852 flatcamEditors/FlatCAMGeoEditor.py:872 #: flatcamEditors/FlatCAMGrbEditor.py:5256 flatcamEditors/FlatCAMGrbEditor.py:5276 msgid "" "Offset the selected shape(s).\n" @@ -3349,41 +3406,41 @@ msgid "" "the bounding box for all selected shapes.\n" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:860 flatcamEditors/FlatCAMGrbEditor.py:5262 +#: flatcamEditors/FlatCAMGeoEditor.py:858 flatcamEditors/FlatCAMGrbEditor.py:5262 msgid "Value Y:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:862 flatcamEditors/FlatCAMGrbEditor.py:5264 +#: flatcamEditors/FlatCAMGeoEditor.py:860 flatcamEditors/FlatCAMGrbEditor.py:5264 msgid "Value for Offset action on Y axis." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:872 flatcamEditors/FlatCAMGrbEditor.py:5274 +#: flatcamEditors/FlatCAMGeoEditor.py:870 flatcamEditors/FlatCAMGrbEditor.py:5274 #: flatcamTools/ToolTransform.py:247 msgid "Offset Y" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:903 flatcamEditors/FlatCAMGrbEditor.py:5305 +#: flatcamEditors/FlatCAMGeoEditor.py:901 flatcamEditors/FlatCAMGrbEditor.py:5305 #: flatcamTools/ToolTransform.py:265 msgid "Flip on X" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:905 flatcamEditors/FlatCAMGeoEditor.py:912 +#: flatcamEditors/FlatCAMGeoEditor.py:903 flatcamEditors/FlatCAMGeoEditor.py:910 #: flatcamEditors/FlatCAMGrbEditor.py:5307 flatcamEditors/FlatCAMGrbEditor.py:5314 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:910 flatcamEditors/FlatCAMGrbEditor.py:5312 +#: flatcamEditors/FlatCAMGeoEditor.py:908 flatcamEditors/FlatCAMGrbEditor.py:5312 #: flatcamTools/ToolTransform.py:271 msgid "Flip on Y" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:918 flatcamEditors/FlatCAMGrbEditor.py:5320 +#: flatcamEditors/FlatCAMGeoEditor.py:916 flatcamEditors/FlatCAMGrbEditor.py:5320 msgid "Ref Pt" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:920 flatcamEditors/FlatCAMGrbEditor.py:5322 +#: flatcamEditors/FlatCAMGeoEditor.py:918 flatcamEditors/FlatCAMGrbEditor.py:5322 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -3396,11 +3453,11 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:932 flatcamEditors/FlatCAMGrbEditor.py:5334 +#: flatcamEditors/FlatCAMGeoEditor.py:930 flatcamEditors/FlatCAMGrbEditor.py:5334 msgid "Point:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:934 flatcamEditors/FlatCAMGrbEditor.py:5336 +#: flatcamEditors/FlatCAMGeoEditor.py:932 flatcamEditors/FlatCAMGrbEditor.py:5336 #: flatcamTools/ToolTransform.py:300 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" @@ -3408,7 +3465,7 @@ msgid "" "the 'y' in (x, y) will be used when using Flip on Y." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:944 flatcamEditors/FlatCAMGrbEditor.py:5348 +#: flatcamEditors/FlatCAMGeoEditor.py:942 flatcamEditors/FlatCAMGrbEditor.py:5348 #: flatcamTools/ToolTransform.py:311 msgid "" "The point coordinates can be captured by\n" @@ -3416,439 +3473,439 @@ msgid "" "SHIFT key. Then click Add button to insert." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1059 flatcamEditors/FlatCAMGrbEditor.py:5473 +#: flatcamEditors/FlatCAMGeoEditor.py:1057 flatcamEditors/FlatCAMGrbEditor.py:5473 msgid "Transformation cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1260 flatcamEditors/FlatCAMGrbEditor.py:5657 +#: flatcamEditors/FlatCAMGeoEditor.py:1258 flatcamEditors/FlatCAMGrbEditor.py:5657 msgid "No shape selected. Please Select a shape to rotate!" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1263 flatcamEditors/FlatCAMGrbEditor.py:5660 +#: flatcamEditors/FlatCAMGeoEditor.py:1261 flatcamEditors/FlatCAMGrbEditor.py:5660 #: flatcamTools/ToolTransform.py:545 msgid "Appying Rotate" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1292 flatcamEditors/FlatCAMGrbEditor.py:5694 +#: flatcamEditors/FlatCAMGeoEditor.py:1290 flatcamEditors/FlatCAMGrbEditor.py:5694 msgid "Done. Rotate completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1297 +#: flatcamEditors/FlatCAMGeoEditor.py:1295 msgid "Rotation action was not executed" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1309 flatcamEditors/FlatCAMGrbEditor.py:5715 +#: flatcamEditors/FlatCAMGeoEditor.py:1307 flatcamEditors/FlatCAMGrbEditor.py:5715 msgid "No shape selected. Please Select a shape to flip!" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1312 flatcamEditors/FlatCAMGrbEditor.py:5718 +#: flatcamEditors/FlatCAMGeoEditor.py:1310 flatcamEditors/FlatCAMGrbEditor.py:5718 #: flatcamTools/ToolTransform.py:598 msgid "Applying Flip" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1343 flatcamEditors/FlatCAMGrbEditor.py:5758 +#: flatcamEditors/FlatCAMGeoEditor.py:1341 flatcamEditors/FlatCAMGrbEditor.py:5758 #: flatcamTools/ToolTransform.py:641 msgid "Flip on the Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1347 flatcamEditors/FlatCAMGrbEditor.py:5767 +#: flatcamEditors/FlatCAMGeoEditor.py:1345 flatcamEditors/FlatCAMGrbEditor.py:5767 #: flatcamTools/ToolTransform.py:651 msgid "Flip on the X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1357 +#: flatcamEditors/FlatCAMGeoEditor.py:1355 msgid "Flip action was not executed" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1367 flatcamEditors/FlatCAMGrbEditor.py:5789 +#: flatcamEditors/FlatCAMGeoEditor.py:1365 flatcamEditors/FlatCAMGrbEditor.py:5789 msgid "No shape selected. Please Select a shape to shear/skew!" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1370 flatcamEditors/FlatCAMGrbEditor.py:5792 +#: flatcamEditors/FlatCAMGeoEditor.py:1368 flatcamEditors/FlatCAMGrbEditor.py:5792 #: flatcamTools/ToolTransform.py:676 msgid "Applying Skew" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1396 flatcamEditors/FlatCAMGrbEditor.py:5828 +#: flatcamEditors/FlatCAMGeoEditor.py:1394 flatcamEditors/FlatCAMGrbEditor.py:5828 msgid "Skew on the X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1399 flatcamEditors/FlatCAMGrbEditor.py:5830 +#: flatcamEditors/FlatCAMGeoEditor.py:1397 flatcamEditors/FlatCAMGrbEditor.py:5830 msgid "Skew on the Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1403 +#: flatcamEditors/FlatCAMGeoEditor.py:1401 msgid "Skew action was not executed" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1415 flatcamEditors/FlatCAMGrbEditor.py:5854 +#: flatcamEditors/FlatCAMGeoEditor.py:1413 flatcamEditors/FlatCAMGrbEditor.py:5854 msgid "No shape selected. Please Select a shape to scale!" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1418 flatcamEditors/FlatCAMGrbEditor.py:5857 +#: flatcamEditors/FlatCAMGeoEditor.py:1416 flatcamEditors/FlatCAMGrbEditor.py:5857 #: flatcamTools/ToolTransform.py:728 msgid "Applying Scale" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1453 flatcamEditors/FlatCAMGrbEditor.py:5896 +#: flatcamEditors/FlatCAMGeoEditor.py:1451 flatcamEditors/FlatCAMGrbEditor.py:5896 msgid "Scale on the X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1456 flatcamEditors/FlatCAMGrbEditor.py:5898 +#: flatcamEditors/FlatCAMGeoEditor.py:1454 flatcamEditors/FlatCAMGrbEditor.py:5898 msgid "Scale on the Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1459 +#: flatcamEditors/FlatCAMGeoEditor.py:1457 msgid "Scale action was not executed" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1469 flatcamEditors/FlatCAMGrbEditor.py:5915 +#: flatcamEditors/FlatCAMGeoEditor.py:1467 flatcamEditors/FlatCAMGrbEditor.py:5915 msgid "No shape selected. Please Select a shape to offset!" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1472 flatcamEditors/FlatCAMGrbEditor.py:5918 +#: flatcamEditors/FlatCAMGeoEditor.py:1470 flatcamEditors/FlatCAMGrbEditor.py:5918 #: flatcamTools/ToolTransform.py:783 msgid "Applying Offset" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1485 flatcamEditors/FlatCAMGrbEditor.py:5939 +#: flatcamEditors/FlatCAMGeoEditor.py:1483 flatcamEditors/FlatCAMGrbEditor.py:5939 msgid "Offset on the X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1488 flatcamEditors/FlatCAMGrbEditor.py:5941 +#: flatcamEditors/FlatCAMGeoEditor.py:1486 flatcamEditors/FlatCAMGrbEditor.py:5941 msgid "Offset on the Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1492 +#: flatcamEditors/FlatCAMGeoEditor.py:1490 msgid "Offset action was not executed" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1496 flatcamEditors/FlatCAMGrbEditor.py:5948 +#: flatcamEditors/FlatCAMGeoEditor.py:1494 flatcamEditors/FlatCAMGrbEditor.py:5948 msgid "Rotate ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1497 flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGeoEditor.py:1569 flatcamEditors/FlatCAMGrbEditor.py:5949 +#: flatcamEditors/FlatCAMGeoEditor.py:1495 flatcamEditors/FlatCAMGeoEditor.py:1550 +#: flatcamEditors/FlatCAMGeoEditor.py:1567 flatcamEditors/FlatCAMGrbEditor.py:5949 #: flatcamEditors/FlatCAMGrbEditor.py:5998 flatcamEditors/FlatCAMGrbEditor.py:6013 msgid "Enter an Angle Value (degrees)" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1506 flatcamEditors/FlatCAMGrbEditor.py:5957 +#: flatcamEditors/FlatCAMGeoEditor.py:1504 flatcamEditors/FlatCAMGrbEditor.py:5957 msgid "Geometry shape rotate done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1510 flatcamEditors/FlatCAMGrbEditor.py:5960 +#: flatcamEditors/FlatCAMGeoEditor.py:1508 flatcamEditors/FlatCAMGrbEditor.py:5960 msgid "Geometry shape rotate cancelled" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1515 flatcamEditors/FlatCAMGrbEditor.py:5965 +#: flatcamEditors/FlatCAMGeoEditor.py:1513 flatcamEditors/FlatCAMGrbEditor.py:5965 msgid "Offset on X axis ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1516 flatcamEditors/FlatCAMGeoEditor.py:1535 +#: flatcamEditors/FlatCAMGeoEditor.py:1514 flatcamEditors/FlatCAMGeoEditor.py:1533 #: flatcamEditors/FlatCAMGrbEditor.py:5966 flatcamEditors/FlatCAMGrbEditor.py:5983 msgid "Enter a distance Value" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1525 flatcamEditors/FlatCAMGrbEditor.py:5974 +#: flatcamEditors/FlatCAMGeoEditor.py:1523 flatcamEditors/FlatCAMGrbEditor.py:5974 msgid "Geometry shape offset on X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1529 flatcamEditors/FlatCAMGrbEditor.py:5977 +#: flatcamEditors/FlatCAMGeoEditor.py:1527 flatcamEditors/FlatCAMGrbEditor.py:5977 msgid "Geometry shape offset X cancelled" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1534 flatcamEditors/FlatCAMGrbEditor.py:5982 +#: flatcamEditors/FlatCAMGeoEditor.py:1532 flatcamEditors/FlatCAMGrbEditor.py:5982 msgid "Offset on Y axis ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1544 flatcamEditors/FlatCAMGrbEditor.py:5991 +#: flatcamEditors/FlatCAMGeoEditor.py:1542 flatcamEditors/FlatCAMGrbEditor.py:5991 msgid "Geometry shape offset on Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1548 +#: flatcamEditors/FlatCAMGeoEditor.py:1546 msgid "Geometry shape offset on Y axis canceled" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1551 flatcamEditors/FlatCAMGrbEditor.py:5997 +#: flatcamEditors/FlatCAMGeoEditor.py:1549 flatcamEditors/FlatCAMGrbEditor.py:5997 msgid "Skew on X axis ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1561 flatcamEditors/FlatCAMGrbEditor.py:6006 +#: flatcamEditors/FlatCAMGeoEditor.py:1559 flatcamEditors/FlatCAMGrbEditor.py:6006 msgid "Geometry shape skew on X axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1565 +#: flatcamEditors/FlatCAMGeoEditor.py:1563 msgid "Geometry shape skew on X axis canceled" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1568 flatcamEditors/FlatCAMGrbEditor.py:6012 +#: flatcamEditors/FlatCAMGeoEditor.py:1566 flatcamEditors/FlatCAMGrbEditor.py:6012 msgid "Skew on Y axis ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1578 flatcamEditors/FlatCAMGrbEditor.py:6021 +#: flatcamEditors/FlatCAMGeoEditor.py:1576 flatcamEditors/FlatCAMGrbEditor.py:6021 msgid "Geometry shape skew on Y axis done" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1582 +#: flatcamEditors/FlatCAMGeoEditor.py:1580 msgid "Geometry shape skew on Y axis canceled" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1946 flatcamEditors/FlatCAMGeoEditor.py:1998 +#: flatcamEditors/FlatCAMGeoEditor.py:1944 flatcamEditors/FlatCAMGeoEditor.py:1996 #: flatcamEditors/FlatCAMGrbEditor.py:1397 flatcamEditors/FlatCAMGrbEditor.py:1467 msgid "Click on Center point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1953 flatcamEditors/FlatCAMGrbEditor.py:1405 +#: flatcamEditors/FlatCAMGeoEditor.py:1951 flatcamEditors/FlatCAMGrbEditor.py:1405 msgid "Click on Perimeter point to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:1983 +#: flatcamEditors/FlatCAMGeoEditor.py:1981 msgid "Done. Adding Circle completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2018 flatcamEditors/FlatCAMGrbEditor.py:1499 +#: flatcamEditors/FlatCAMGeoEditor.py:2016 flatcamEditors/FlatCAMGrbEditor.py:1499 msgid "Click on Start point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2020 flatcamEditors/FlatCAMGrbEditor.py:1501 +#: flatcamEditors/FlatCAMGeoEditor.py:2018 flatcamEditors/FlatCAMGrbEditor.py:1501 msgid "Click on Point3 ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2022 flatcamEditors/FlatCAMGrbEditor.py:1503 +#: flatcamEditors/FlatCAMGeoEditor.py:2020 flatcamEditors/FlatCAMGrbEditor.py:1503 msgid "Click on Stop point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2027 flatcamEditors/FlatCAMGrbEditor.py:1508 +#: flatcamEditors/FlatCAMGeoEditor.py:2025 flatcamEditors/FlatCAMGrbEditor.py:1508 msgid "Click on Stop point to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2029 flatcamEditors/FlatCAMGrbEditor.py:1510 +#: flatcamEditors/FlatCAMGeoEditor.py:2027 flatcamEditors/FlatCAMGrbEditor.py:1510 msgid "Click on Point2 to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2031 flatcamEditors/FlatCAMGrbEditor.py:1512 +#: flatcamEditors/FlatCAMGeoEditor.py:2029 flatcamEditors/FlatCAMGrbEditor.py:1512 msgid "Click on Center point to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2043 +#: flatcamEditors/FlatCAMGeoEditor.py:2041 #, python-format msgid "Direction: %s" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2053 flatcamEditors/FlatCAMGrbEditor.py:1534 +#: flatcamEditors/FlatCAMGeoEditor.py:2051 flatcamEditors/FlatCAMGrbEditor.py:1534 msgid "Mode: Start -> Stop -> Center. Click on Start point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2056 flatcamEditors/FlatCAMGrbEditor.py:1537 +#: flatcamEditors/FlatCAMGeoEditor.py:2054 flatcamEditors/FlatCAMGrbEditor.py:1537 msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2059 flatcamEditors/FlatCAMGrbEditor.py:1540 +#: flatcamEditors/FlatCAMGeoEditor.py:2057 flatcamEditors/FlatCAMGrbEditor.py:1540 msgid "Mode: Center -> Start -> Stop. Click on Center point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2198 +#: flatcamEditors/FlatCAMGeoEditor.py:2196 msgid "Done. Arc completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2217 flatcamEditors/FlatCAMGeoEditor.py:2271 -#: flatcamEditors/FlatCAMGeoEditor.py:2698 +#: flatcamEditors/FlatCAMGeoEditor.py:2215 flatcamEditors/FlatCAMGeoEditor.py:2269 +#: flatcamEditors/FlatCAMGeoEditor.py:2696 msgid "Click on 1st corner ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2223 +#: flatcamEditors/FlatCAMGeoEditor.py:2221 msgid "Click on opposite corner to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2252 +#: flatcamEditors/FlatCAMGeoEditor.py:2250 msgid "Done. Rectangle completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2278 +#: flatcamEditors/FlatCAMGeoEditor.py:2276 msgid "Click on next Point or click right mouse button to complete ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2307 +#: flatcamEditors/FlatCAMGeoEditor.py:2305 msgid "Done. Polygon completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2317 flatcamEditors/FlatCAMGeoEditor.py:2363 +#: flatcamEditors/FlatCAMGeoEditor.py:2315 flatcamEditors/FlatCAMGeoEditor.py:2361 #: flatcamEditors/FlatCAMGrbEditor.py:1086 flatcamEditors/FlatCAMGrbEditor.py:1288 msgid "Backtracked one point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2345 +#: flatcamEditors/FlatCAMGeoEditor.py:2343 msgid "Done. Path completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2463 +#: flatcamEditors/FlatCAMGeoEditor.py:2461 msgid "No shape selected. Select a shape to explode" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2496 +#: flatcamEditors/FlatCAMGeoEditor.py:2494 msgid "Done. Polygons exploded into lines." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2518 +#: flatcamEditors/FlatCAMGeoEditor.py:2516 msgid "MOVE: No shape selected. Select a shape to move" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2520 flatcamEditors/FlatCAMGeoEditor.py:2532 +#: flatcamEditors/FlatCAMGeoEditor.py:2518 flatcamEditors/FlatCAMGeoEditor.py:2530 msgid " MOVE: Click on reference point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2523 +#: flatcamEditors/FlatCAMGeoEditor.py:2521 msgid " Click on destination point ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2558 +#: flatcamEditors/FlatCAMGeoEditor.py:2556 msgid "Done. Geometry(s) Move completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2679 +#: flatcamEditors/FlatCAMGeoEditor.py:2677 msgid "Done. Geometry(s) Copy completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2715 +#: flatcamEditors/FlatCAMGeoEditor.py:2713 msgid "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. Error" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2722 +#: flatcamEditors/FlatCAMGeoEditor.py:2720 msgid "No text to add." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2728 +#: flatcamEditors/FlatCAMGeoEditor.py:2726 msgid " Done. Adding Text completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2756 +#: flatcamEditors/FlatCAMGeoEditor.py:2754 msgid "Create buffer geometry ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2768 flatcamEditors/FlatCAMGeoEditor.py:2798 -#: flatcamEditors/FlatCAMGeoEditor.py:2828 +#: flatcamEditors/FlatCAMGeoEditor.py:2766 flatcamEditors/FlatCAMGeoEditor.py:2796 +#: flatcamEditors/FlatCAMGeoEditor.py:2826 msgid "Buffer cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2793 flatcamEditors/FlatCAMGrbEditor.py:4865 +#: flatcamEditors/FlatCAMGeoEditor.py:2791 flatcamEditors/FlatCAMGrbEditor.py:4865 msgid "Done. Buffer Tool completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2823 +#: flatcamEditors/FlatCAMGeoEditor.py:2821 msgid "Done. Buffer Int Tool completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2853 +#: flatcamEditors/FlatCAMGeoEditor.py:2851 msgid "Done. Buffer Ext Tool completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2888 flatcamEditors/FlatCAMGrbEditor.py:2087 +#: flatcamEditors/FlatCAMGeoEditor.py:2886 flatcamEditors/FlatCAMGrbEditor.py:2087 msgid "Select a shape to act as deletion area ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2890 flatcamEditors/FlatCAMGeoEditor.py:2909 -#: flatcamEditors/FlatCAMGeoEditor.py:2915 flatcamEditors/FlatCAMGrbEditor.py:2089 +#: flatcamEditors/FlatCAMGeoEditor.py:2888 flatcamEditors/FlatCAMGeoEditor.py:2907 +#: flatcamEditors/FlatCAMGeoEditor.py:2913 flatcamEditors/FlatCAMGrbEditor.py:2089 msgid "Click to pick-up the erase shape..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2919 flatcamEditors/FlatCAMGrbEditor.py:2146 +#: flatcamEditors/FlatCAMGeoEditor.py:2917 flatcamEditors/FlatCAMGrbEditor.py:2146 msgid "Click to erase ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2949 flatcamEditors/FlatCAMGrbEditor.py:2180 +#: flatcamEditors/FlatCAMGeoEditor.py:2947 flatcamEditors/FlatCAMGrbEditor.py:2180 msgid "Done. Eraser tool action completed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:2992 +#: flatcamEditors/FlatCAMGeoEditor.py:2990 msgid "Create Paint geometry ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3006 flatcamEditors/FlatCAMGrbEditor.py:2331 +#: flatcamEditors/FlatCAMGeoEditor.py:3004 flatcamEditors/FlatCAMGrbEditor.py:2331 msgid "Shape transformations ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3620 +#: flatcamEditors/FlatCAMGeoEditor.py:3618 msgid "Editing MultiGeo Geometry, tool" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3622 +#: flatcamEditors/FlatCAMGeoEditor.py:3620 msgid "with diameter" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4020 +#: flatcamEditors/FlatCAMGeoEditor.py:4018 msgid "Copy cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4027 flatcamGUI/FlatCAMGUI.py:3187 -#: flatcamGUI/FlatCAMGUI.py:3234 flatcamGUI/FlatCAMGUI.py:3253 flatcamGUI/FlatCAMGUI.py:3388 -#: flatcamGUI/FlatCAMGUI.py:3401 flatcamGUI/FlatCAMGUI.py:3435 flatcamGUI/FlatCAMGUI.py:3493 +#: flatcamEditors/FlatCAMGeoEditor.py:4025 flatcamGUI/FlatCAMGUI.py:3200 +#: flatcamGUI/FlatCAMGUI.py:3247 flatcamGUI/FlatCAMGUI.py:3266 flatcamGUI/FlatCAMGUI.py:3401 +#: flatcamGUI/FlatCAMGUI.py:3414 flatcamGUI/FlatCAMGUI.py:3448 flatcamGUI/FlatCAMGUI.py:3506 msgid "Click on target point." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4330 flatcamEditors/FlatCAMGeoEditor.py:4365 +#: flatcamEditors/FlatCAMGeoEditor.py:4328 flatcamEditors/FlatCAMGeoEditor.py:4363 msgid "A selection of at least 2 geo items is required to do Intersection." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4451 flatcamEditors/FlatCAMGeoEditor.py:4555 +#: flatcamEditors/FlatCAMGeoEditor.py:4449 flatcamEditors/FlatCAMGeoEditor.py:4553 msgid "" "Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4461 flatcamEditors/FlatCAMGeoEditor.py:4514 -#: flatcamEditors/FlatCAMGeoEditor.py:4564 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 flatcamEditors/FlatCAMGeoEditor.py:4512 +#: flatcamEditors/FlatCAMGeoEditor.py:4562 msgid "Nothing selected for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4466 flatcamEditors/FlatCAMGeoEditor.py:4518 -#: flatcamEditors/FlatCAMGeoEditor.py:4569 +#: flatcamEditors/FlatCAMGeoEditor.py:4464 flatcamEditors/FlatCAMGeoEditor.py:4516 +#: flatcamEditors/FlatCAMGeoEditor.py:4567 msgid "Invalid distance for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4490 flatcamEditors/FlatCAMGeoEditor.py:4589 +#: flatcamEditors/FlatCAMGeoEditor.py:4488 flatcamEditors/FlatCAMGeoEditor.py:4587 msgid "Failed, the result is empty. Choose a different buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4501 +#: flatcamEditors/FlatCAMGeoEditor.py:4499 msgid "Full buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4507 +#: flatcamEditors/FlatCAMGeoEditor.py:4505 msgid "Negative buffer value is not accepted." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4538 +#: flatcamEditors/FlatCAMGeoEditor.py:4536 msgid "Failed, the result is empty. Choose a smaller buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4548 +#: flatcamEditors/FlatCAMGeoEditor.py:4546 msgid "Interior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4599 +#: flatcamEditors/FlatCAMGeoEditor.py:4597 msgid "Exterior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4605 +#: flatcamEditors/FlatCAMGeoEditor.py:4603 #, python-format msgid "Could not do Paint. Overlap value has to be less than 1.00 (100%%)." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4612 +#: flatcamEditors/FlatCAMGeoEditor.py:4610 msgid "Nothing selected for painting." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4618 +#: flatcamEditors/FlatCAMGeoEditor.py:4616 msgid "Invalid value for" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4677 +#: flatcamEditors/FlatCAMGeoEditor.py:4675 msgid "" "Could not do Paint. Try a different combination of parameters. Or a different method of " "Paint" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4691 +#: flatcamEditors/FlatCAMGeoEditor.py:4689 msgid "Paint done." msgstr "" @@ -3974,61 +4031,61 @@ msgstr "" msgid "Done. Apertures copied." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamEditors/FlatCAMGrbEditor.py:2376 flatcamGUI/FlatCAMGUI.py:1934 #: flatcamGUI/PreferencesUI.py:1847 msgid "Gerber Editor" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:210 +#: flatcamEditors/FlatCAMGrbEditor.py:2396 flatcamGUI/ObjectUI.py:212 #: flatcamTools/ToolProperties.py:156 msgid "Apertures" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:212 +#: flatcamEditors/FlatCAMGrbEditor.py:2398 flatcamGUI/ObjectUI.py:214 msgid "Apertures Table for the Gerber Object." msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2409 flatcamEditors/FlatCAMGrbEditor.py:3755 -#: flatcamGUI/ObjectUI.py:245 +#: flatcamGUI/ObjectUI.py:247 msgid "Code" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2409 flatcamEditors/FlatCAMGrbEditor.py:3755 -#: flatcamGUI/ObjectUI.py:245 flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:247 flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 msgid "Type" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2409 flatcamEditors/FlatCAMGrbEditor.py:3755 -#: flatcamGUI/ObjectUI.py:245 flatcamGUI/PreferencesUI.py:6183 -#: flatcamGUI/PreferencesUI.py:6212 flatcamGUI/PreferencesUI.py:6314 +#: flatcamGUI/ObjectUI.py:247 flatcamGUI/PreferencesUI.py:6201 +#: flatcamGUI/PreferencesUI.py:6230 flatcamGUI/PreferencesUI.py:6332 #: flatcamTools/ToolCopperThieving.py:260 flatcamTools/ToolCopperThieving.py:300 #: flatcamTools/ToolFiducials.py:156 msgid "Size" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2409 flatcamEditors/FlatCAMGrbEditor.py:3755 -#: flatcamGUI/ObjectUI.py:245 +#: flatcamGUI/ObjectUI.py:247 msgid "Dim" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:249 +#: flatcamEditors/FlatCAMGrbEditor.py:2413 flatcamGUI/ObjectUI.py:251 msgid "Index" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2415 flatcamEditors/FlatCAMGrbEditor.py:2444 -#: flatcamGUI/ObjectUI.py:251 +#: flatcamGUI/ObjectUI.py:253 msgid "Aperture Code" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:253 +#: flatcamEditors/FlatCAMGrbEditor.py:2417 flatcamGUI/ObjectUI.py:255 msgid "Type of aperture: circular, rectangle, macros etc" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:2419 flatcamGUI/ObjectUI.py:257 msgid "Aperture Size:" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:2421 flatcamGUI/ObjectUI.py:259 msgid "" "Aperture Dimensions:\n" " - (width, height) for R, O type.\n" @@ -4116,9 +4173,9 @@ msgid "" "corner" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:830 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:1908 flatcamGUI/FlatCAMGUI.py:1935 -#: flatcamGUI/FlatCAMGUI.py:2270 +#: flatcamEditors/FlatCAMGrbEditor.py:2560 flatcamGUI/FlatCAMGUI.py:842 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:1920 flatcamGUI/FlatCAMGUI.py:1947 +#: flatcamGUI/FlatCAMGUI.py:2283 msgid "Buffer" msgstr "" @@ -4188,8 +4245,8 @@ msgstr "" msgid "Clear all the markings." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:820 -#: flatcamGUI/FlatCAMGUI.py:1856 flatcamGUI/FlatCAMGUI.py:2260 +#: flatcamEditors/FlatCAMGrbEditor.py:2684 flatcamGUI/FlatCAMGUI.py:832 +#: flatcamGUI/FlatCAMGUI.py:1868 flatcamGUI/FlatCAMGUI.py:2273 msgid "Add Pad Array" msgstr "" @@ -4389,9 +4446,9 @@ msgstr "" msgid "String to replace the one in the Find box throughout the text." msgstr "" -#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:466 -#: flatcamGUI/ObjectUI.py:1677 flatcamGUI/PreferencesUI.py:1494 -#: flatcamGUI/PreferencesUI.py:3623 flatcamGUI/PreferencesUI.py:4598 +#: flatcamEditors/FlatCAMTextEditor.py:87 flatcamGUI/ObjectUI.py:471 +#: flatcamGUI/ObjectUI.py:1759 flatcamGUI/PreferencesUI.py:1494 +#: flatcamGUI/PreferencesUI.py:3641 flatcamGUI/PreferencesUI.py:4616 msgid "All" msgstr "" @@ -4449,7 +4506,7 @@ msgstr "" msgid "Code Editor content copied to clipboard ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 flatcamGUI/FlatCAMGUI.py:1879 +#: flatcamGUI/FlatCAMGUI.py:52 flatcamGUI/FlatCAMGUI.py:54 flatcamGUI/FlatCAMGUI.py:1891 msgid "Toggle Panel" msgstr "" @@ -4501,7 +4558,7 @@ msgstr "" msgid "Will create a new, empty Document Object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3824 +#: flatcamGUI/FlatCAMGUI.py:98 flatcamGUI/FlatCAMGUI.py:3837 #: flatcamTools/ToolPcbWizard.py:62 flatcamTools/ToolPcbWizard.py:69 msgid "Open" msgstr "" @@ -4510,15 +4567,15 @@ msgstr "" msgid "Open &Project ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3833 +#: flatcamGUI/FlatCAMGUI.py:108 flatcamGUI/FlatCAMGUI.py:3846 msgid "Open &Gerber ...\tCTRL+G" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3838 +#: flatcamGUI/FlatCAMGUI.py:113 flatcamGUI/FlatCAMGUI.py:3851 msgid "Open &Excellon ...\tCTRL+E" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3842 +#: flatcamGUI/FlatCAMGUI.py:117 flatcamGUI/FlatCAMGUI.py:3855 msgid "Open G-&Code ..." msgstr "" @@ -4538,20 +4595,20 @@ msgstr "" msgid "Scripting" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2174 +#: flatcamGUI/FlatCAMGUI.py:137 flatcamGUI/FlatCAMGUI.py:739 flatcamGUI/FlatCAMGUI.py:2186 msgid "New Script ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:2175 +#: flatcamGUI/FlatCAMGUI.py:138 flatcamGUI/FlatCAMGUI.py:740 flatcamGUI/FlatCAMGUI.py:2187 msgid "Open Script ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:2176 -#: flatcamGUI/FlatCAMGUI.py:3813 +#: flatcamGUI/FlatCAMGUI.py:140 flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:3826 msgid "Run Script ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3815 +#: flatcamGUI/FlatCAMGUI.py:142 flatcamGUI/FlatCAMGUI.py:3828 msgid "" "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" @@ -4578,104 +4635,108 @@ msgstr "" msgid "&DXF as Gerber Object ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:173 +#: flatcamGUI/FlatCAMGUI.py:172 +msgid "HPGL2 as Geometry Object ..." +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:177 msgid "Export" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:176 +#: flatcamGUI/FlatCAMGUI.py:180 msgid "Export &SVG ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:179 +#: flatcamGUI/FlatCAMGUI.py:183 msgid "Export DXF ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:184 +#: flatcamGUI/FlatCAMGUI.py:188 msgid "Export &PNG ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:186 +#: flatcamGUI/FlatCAMGUI.py:190 msgid "" "Will export an image in PNG format,\n" "the saved image will contain the visual \n" "information currently in FlatCAM Plot Area." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:195 +#: flatcamGUI/FlatCAMGUI.py:199 msgid "Export &Excellon ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:197 +#: flatcamGUI/FlatCAMGUI.py:201 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 "" -#: flatcamGUI/FlatCAMGUI.py:204 +#: flatcamGUI/FlatCAMGUI.py:208 msgid "Export &Gerber ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:206 +#: flatcamGUI/FlatCAMGUI.py:210 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 "" -#: flatcamGUI/FlatCAMGUI.py:222 +#: flatcamGUI/FlatCAMGUI.py:226 msgid "Backup" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:226 +#: flatcamGUI/FlatCAMGUI.py:230 msgid "Import Preferences from file ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:231 +#: flatcamGUI/FlatCAMGUI.py:235 msgid "Export Preferences to file ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:237 flatcamGUI/FlatCAMGUI.py:601 flatcamGUI/FlatCAMGUI.py:1097 +#: flatcamGUI/FlatCAMGUI.py:241 flatcamGUI/FlatCAMGUI.py:612 flatcamGUI/FlatCAMGUI.py:1109 msgid "Save" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:240 +#: flatcamGUI/FlatCAMGUI.py:244 msgid "&Save Project ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:245 +#: flatcamGUI/FlatCAMGUI.py:249 msgid "Save Project &As ...\tCTRL+S" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:250 +#: flatcamGUI/FlatCAMGUI.py:254 msgid "Save Project C&opy ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:257 +#: flatcamGUI/FlatCAMGUI.py:268 msgid "E&xit" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:265 flatcamGUI/FlatCAMGUI.py:598 flatcamGUI/FlatCAMGUI.py:1956 +#: flatcamGUI/FlatCAMGUI.py:276 flatcamGUI/FlatCAMGUI.py:609 flatcamGUI/FlatCAMGUI.py:1968 msgid "Edit" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:268 +#: flatcamGUI/FlatCAMGUI.py:279 msgid "Edit Object\tE" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:269 +#: flatcamGUI/FlatCAMGUI.py:280 msgid "Close Editor\tCTRL+S" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:277 +#: flatcamGUI/FlatCAMGUI.py:288 msgid "Conversion" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:279 +#: flatcamGUI/FlatCAMGUI.py:290 msgid "&Join Geo/Gerber/Exc -> Geo" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:281 +#: flatcamGUI/FlatCAMGUI.py:292 msgid "" "Merge a selection of objects, which can be of type:\n" "- Gerber\n" @@ -4684,776 +4745,777 @@ msgid "" "into a new combo Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:288 +#: flatcamGUI/FlatCAMGUI.py:299 msgid "Join Excellon(s) -> Excellon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:290 +#: flatcamGUI/FlatCAMGUI.py:301 msgid "Merge a selection of Excellon objects into a new combo Excellon object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:293 +#: flatcamGUI/FlatCAMGUI.py:304 msgid "Join Gerber(s) -> Gerber" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:295 +#: flatcamGUI/FlatCAMGUI.py:306 msgid "Merge a selection of Gerber objects into a new combo Gerber object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:300 +#: flatcamGUI/FlatCAMGUI.py:311 msgid "Convert Single to MultiGeo" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:302 +#: flatcamGUI/FlatCAMGUI.py:313 msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:306 +#: flatcamGUI/FlatCAMGUI.py:317 msgid "Convert Multi to SingleGeo" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:308 +#: flatcamGUI/FlatCAMGUI.py:319 msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:314 +#: flatcamGUI/FlatCAMGUI.py:325 msgid "Convert Any to Geo" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:316 +#: flatcamGUI/FlatCAMGUI.py:327 msgid "Convert Any to Gerber" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:321 +#: flatcamGUI/FlatCAMGUI.py:332 msgid "&Copy\tCTRL+C" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:325 +#: flatcamGUI/FlatCAMGUI.py:336 msgid "&Delete\tDEL" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:329 +#: flatcamGUI/FlatCAMGUI.py:340 msgid "Se&t Origin\tO" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:330 +#: flatcamGUI/FlatCAMGUI.py:341 msgid "Jump to Location\tJ" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:335 +#: flatcamGUI/FlatCAMGUI.py:346 msgid "Toggle Units\tQ" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:336 +#: flatcamGUI/FlatCAMGUI.py:347 msgid "&Select All\tCTRL+A" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:340 +#: flatcamGUI/FlatCAMGUI.py:351 msgid "&Preferences\tSHIFT+P" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:346 flatcamTools/ToolProperties.py:153 +#: flatcamGUI/FlatCAMGUI.py:357 flatcamTools/ToolProperties.py:153 msgid "Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:348 +#: flatcamGUI/FlatCAMGUI.py:359 msgid "&Rotate Selection\tSHIFT+(R)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:353 +#: flatcamGUI/FlatCAMGUI.py:364 msgid "&Skew on X axis\tSHIFT+X" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:355 +#: flatcamGUI/FlatCAMGUI.py:366 msgid "S&kew on Y axis\tSHIFT+Y" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:360 +#: flatcamGUI/FlatCAMGUI.py:371 msgid "Flip on &X axis\tX" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:362 +#: flatcamGUI/FlatCAMGUI.py:373 msgid "Flip on &Y axis\tY" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:367 +#: flatcamGUI/FlatCAMGUI.py:378 msgid "View source\tALT+S" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:369 +#: flatcamGUI/FlatCAMGUI.py:380 msgid "Tools DataBase\tCTRL+D" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:376 flatcamGUI/FlatCAMGUI.py:1892 +#: flatcamGUI/FlatCAMGUI.py:387 flatcamGUI/FlatCAMGUI.py:1904 msgid "View" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:377 +#: flatcamGUI/FlatCAMGUI.py:388 msgid "Enable all plots\tALT+1" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:379 +#: flatcamGUI/FlatCAMGUI.py:390 msgid "Disable all plots\tALT+2" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:381 +#: flatcamGUI/FlatCAMGUI.py:392 msgid "Disable non-selected\tALT+3" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:384 +#: flatcamGUI/FlatCAMGUI.py:395 msgid "&Zoom Fit\tV" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:385 +#: flatcamGUI/FlatCAMGUI.py:396 msgid "&Zoom In\t=" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:386 +#: flatcamGUI/FlatCAMGUI.py:397 msgid "&Zoom Out\t-" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:390 +#: flatcamGUI/FlatCAMGUI.py:401 msgid "Redraw All\tF5" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:394 +#: flatcamGUI/FlatCAMGUI.py:405 msgid "Toggle Code Editor\tSHIFT+E" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:397 +#: flatcamGUI/FlatCAMGUI.py:408 msgid "&Toggle FullScreen\tALT+F10" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:399 +#: flatcamGUI/FlatCAMGUI.py:410 msgid "&Toggle Plot Area\tCTRL+F10" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:401 +#: flatcamGUI/FlatCAMGUI.py:412 msgid "&Toggle Project/Sel/Tool\t`" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:405 +#: flatcamGUI/FlatCAMGUI.py:416 msgid "&Toggle Grid Snap\tG" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:407 +#: flatcamGUI/FlatCAMGUI.py:418 msgid "&Toggle Grid Lines\tALT+G" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:408 +#: flatcamGUI/FlatCAMGUI.py:419 msgid "&Toggle Axis\tSHIFT+G" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:411 +#: flatcamGUI/FlatCAMGUI.py:422 msgid "Toggle Workspace\tSHIFT+W" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:416 +#: flatcamGUI/FlatCAMGUI.py:427 msgid "Objects" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:429 +#: flatcamGUI/FlatCAMGUI.py:440 msgid "&Command Line\tS" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:434 +#: flatcamGUI/FlatCAMGUI.py:445 msgid "Help" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:435 +#: flatcamGUI/FlatCAMGUI.py:446 msgid "Online Help\tF1" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:443 +#: flatcamGUI/FlatCAMGUI.py:454 msgid "Report a bug" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:446 +#: flatcamGUI/FlatCAMGUI.py:457 msgid "Excellon Specification" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:448 +#: flatcamGUI/FlatCAMGUI.py:459 msgid "Gerber Specification" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:453 +#: flatcamGUI/FlatCAMGUI.py:464 msgid "Shortcuts List\tF3" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:454 +#: flatcamGUI/FlatCAMGUI.py:465 msgid "YouTube Channel\tF4" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:465 +#: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Circle\tO" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:467 +#: flatcamGUI/FlatCAMGUI.py:478 msgid "Add Arc\tA" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:470 +#: flatcamGUI/FlatCAMGUI.py:481 msgid "Add Rectangle\tR" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:473 +#: flatcamGUI/FlatCAMGUI.py:484 msgid "Add Polygon\tN" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:475 +#: flatcamGUI/FlatCAMGUI.py:486 msgid "Add Path\tP" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:477 +#: flatcamGUI/FlatCAMGUI.py:488 msgid "Add Text\tT" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:480 +#: flatcamGUI/FlatCAMGUI.py:491 msgid "Polygon Union\tU" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:482 +#: flatcamGUI/FlatCAMGUI.py:493 msgid "Polygon Intersection\tE" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:484 +#: flatcamGUI/FlatCAMGUI.py:495 msgid "Polygon Subtraction\tS" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:488 +#: flatcamGUI/FlatCAMGUI.py:499 msgid "Cut Path\tX" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:490 +#: flatcamGUI/FlatCAMGUI.py:501 msgid "Copy Geom\tC" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:492 +#: flatcamGUI/FlatCAMGUI.py:503 msgid "Delete Shape\tDEL" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:495 flatcamGUI/FlatCAMGUI.py:577 +#: flatcamGUI/FlatCAMGUI.py:506 flatcamGUI/FlatCAMGUI.py:588 msgid "Move\tM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:497 +#: flatcamGUI/FlatCAMGUI.py:508 msgid "Buffer Tool\tB" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:500 +#: flatcamGUI/FlatCAMGUI.py:511 msgid "Paint Tool\tI" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:503 +#: flatcamGUI/FlatCAMGUI.py:514 msgid "Transform Tool\tALT+R" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:507 +#: flatcamGUI/FlatCAMGUI.py:518 msgid "Toggle Corner Snap\tK" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:513 +#: flatcamGUI/FlatCAMGUI.py:524 msgid ">Excellon Editor<" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:517 +#: flatcamGUI/FlatCAMGUI.py:528 msgid "Add Drill Array\tA" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:519 +#: flatcamGUI/FlatCAMGUI.py:530 msgid "Add Drill\tD" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:523 +#: flatcamGUI/FlatCAMGUI.py:534 msgid "Add Slot Array\tQ" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:525 +#: flatcamGUI/FlatCAMGUI.py:536 msgid "Add Slot\tW" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:529 +#: flatcamGUI/FlatCAMGUI.py:540 msgid "Resize Drill(S)\tR" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:531 flatcamGUI/FlatCAMGUI.py:572 +#: flatcamGUI/FlatCAMGUI.py:542 flatcamGUI/FlatCAMGUI.py:583 msgid "Copy\tC" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:533 flatcamGUI/FlatCAMGUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:544 flatcamGUI/FlatCAMGUI.py:585 msgid "Delete\tDEL" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:538 +#: flatcamGUI/FlatCAMGUI.py:549 msgid "Move Drill(s)\tM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:543 +#: flatcamGUI/FlatCAMGUI.py:554 msgid ">Gerber Editor<" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:547 +#: flatcamGUI/FlatCAMGUI.py:558 msgid "Add Pad\tP" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:549 +#: flatcamGUI/FlatCAMGUI.py:560 msgid "Add Pad Array\tA" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:551 +#: flatcamGUI/FlatCAMGUI.py:562 msgid "Add Track\tT" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:553 +#: flatcamGUI/FlatCAMGUI.py:564 msgid "Add Region\tN" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:557 +#: flatcamGUI/FlatCAMGUI.py:568 msgid "Poligonize\tALT+N" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:559 +#: flatcamGUI/FlatCAMGUI.py:570 msgid "Add SemiDisc\tE" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:560 +#: flatcamGUI/FlatCAMGUI.py:571 msgid "Add Disc\tD" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:562 +#: flatcamGUI/FlatCAMGUI.py:573 msgid "Buffer\tB" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:563 +#: flatcamGUI/FlatCAMGUI.py:574 msgid "Scale\tS" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:565 +#: flatcamGUI/FlatCAMGUI.py:576 msgid "Mark Area\tALT+A" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:567 +#: flatcamGUI/FlatCAMGUI.py:578 msgid "Eraser\tCTRL+E" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:569 +#: flatcamGUI/FlatCAMGUI.py:580 msgid "Transform\tALT+R" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:592 +#: flatcamGUI/FlatCAMGUI.py:603 msgid "Enable Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:593 +#: flatcamGUI/FlatCAMGUI.py:604 msgid "Disable Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:606 msgid "Generate CNC" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:596 +#: flatcamGUI/FlatCAMGUI.py:607 msgid "View Source" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:604 flatcamGUI/FlatCAMGUI.py:1962 +#: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1974 #: flatcamTools/ToolProperties.py:30 msgid "Properties" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:633 +#: flatcamGUI/FlatCAMGUI.py:644 msgid "File Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:637 +#: flatcamGUI/FlatCAMGUI.py:648 msgid "Edit Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:641 +#: flatcamGUI/FlatCAMGUI.py:652 msgid "View Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:645 +#: flatcamGUI/FlatCAMGUI.py:656 msgid "Shell Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:649 +#: flatcamGUI/FlatCAMGUI.py:660 msgid "Tools Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:653 +#: flatcamGUI/FlatCAMGUI.py:664 msgid "Excellon Editor Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:659 +#: flatcamGUI/FlatCAMGUI.py:670 msgid "Geometry Editor Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:663 +#: flatcamGUI/FlatCAMGUI.py:674 msgid "Gerber Editor Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:678 msgid "Grid Toolbar" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:688 flatcamGUI/FlatCAMGUI.py:2140 +#: flatcamGUI/FlatCAMGUI.py:699 flatcamGUI/FlatCAMGUI.py:2152 msgid "Open project" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:689 flatcamGUI/FlatCAMGUI.py:2141 +#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2153 msgid "Save project" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:694 flatcamGUI/FlatCAMGUI.py:2144 +#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2156 msgid "New Blank Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:695 flatcamGUI/FlatCAMGUI.py:2145 +#: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:2157 msgid "New Blank Gerber" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:696 flatcamGUI/FlatCAMGUI.py:2146 +#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:2158 msgid "New Blank Excellon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:700 flatcamGUI/FlatCAMGUI.py:2150 +#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2162 msgid "Save Object and close the Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:705 flatcamGUI/FlatCAMGUI.py:2155 +#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2167 msgid "&Delete" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:707 flatcamGUI/FlatCAMGUI.py:1454 flatcamGUI/FlatCAMGUI.py:1653 -#: flatcamGUI/FlatCAMGUI.py:2157 flatcamTools/ToolDistance.py:30 +#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1466 flatcamGUI/FlatCAMGUI.py:1665 +#: flatcamGUI/FlatCAMGUI.py:2169 flatcamTools/ToolDistance.py:30 #: flatcamTools/ToolDistance.py:160 msgid "Distance Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:709 flatcamGUI/FlatCAMGUI.py:2159 +#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:2171 msgid "Distance Min Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:710 flatcamGUI/FlatCAMGUI.py:1447 flatcamGUI/FlatCAMGUI.py:2160 +#: flatcamGUI/FlatCAMGUI.py:721 flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:2172 msgid "Set Origin" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:2161 +#: flatcamGUI/FlatCAMGUI.py:722 flatcamGUI/FlatCAMGUI.py:2173 msgid "Jump to Location" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:716 flatcamGUI/FlatCAMGUI.py:2164 +#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2176 msgid "&Replot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:717 flatcamGUI/FlatCAMGUI.py:2165 +#: flatcamGUI/FlatCAMGUI.py:728 flatcamGUI/FlatCAMGUI.py:2177 msgid "&Clear plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:718 flatcamGUI/FlatCAMGUI.py:1450 flatcamGUI/FlatCAMGUI.py:2166 +#: flatcamGUI/FlatCAMGUI.py:729 flatcamGUI/FlatCAMGUI.py:1462 flatcamGUI/FlatCAMGUI.py:2178 msgid "Zoom In" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:719 flatcamGUI/FlatCAMGUI.py:1450 flatcamGUI/FlatCAMGUI.py:2167 +#: flatcamGUI/FlatCAMGUI.py:730 flatcamGUI/FlatCAMGUI.py:1462 flatcamGUI/FlatCAMGUI.py:2179 msgid "Zoom Out" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:720 flatcamGUI/FlatCAMGUI.py:1449 flatcamGUI/FlatCAMGUI.py:1893 -#: flatcamGUI/FlatCAMGUI.py:2168 +#: flatcamGUI/FlatCAMGUI.py:731 flatcamGUI/FlatCAMGUI.py:1461 flatcamGUI/FlatCAMGUI.py:1905 +#: flatcamGUI/FlatCAMGUI.py:2180 msgid "Zoom Fit" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:727 flatcamGUI/FlatCAMGUI.py:2173 +#: flatcamGUI/FlatCAMGUI.py:738 flatcamGUI/FlatCAMGUI.py:2185 msgid "&Command Line" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:735 flatcamGUI/FlatCAMGUI.py:2179 +#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:2191 msgid "2Sided Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:736 flatcamGUI/ObjectUI.py:566 flatcamTools/ToolCutOut.py:434 +#: flatcamGUI/FlatCAMGUI.py:747 flatcamGUI/ObjectUI.py:577 flatcamTools/ToolCutOut.py:434 msgid "Cutout Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:2181 flatcamGUI/ObjectUI.py:550 -#: flatcamTools/ToolNonCopperClear.py:637 +#: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:2193 flatcamGUI/ObjectUI.py:555 +#: flatcamGUI/ObjectUI.py:1712 flatcamTools/ToolNonCopperClear.py:637 msgid "NCC Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:741 flatcamGUI/FlatCAMGUI.py:2185 +#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:2197 msgid "Panel Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:2186 flatcamTools/ToolFilm.py:578 +#: flatcamGUI/FlatCAMGUI.py:753 flatcamGUI/FlatCAMGUI.py:2198 flatcamTools/ToolFilm.py:578 msgid "Film Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:743 flatcamGUI/FlatCAMGUI.py:2188 +#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2200 #: flatcamTools/ToolSolderPaste.py:547 msgid "SolderPaste Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:744 flatcamGUI/FlatCAMGUI.py:2189 flatcamTools/ToolSub.py:35 +#: flatcamGUI/FlatCAMGUI.py:755 flatcamGUI/FlatCAMGUI.py:2201 flatcamTools/ToolSub.py:35 msgid "Subtract Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:745 flatcamTools/ToolRulesCheck.py:607 +#: flatcamGUI/FlatCAMGUI.py:756 flatcamTools/ToolRulesCheck.py:607 msgid "Rules Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:746 flatcamGUI/FlatCAMGUI.py:1465 flatcamTools/ToolOptimal.py:34 +#: flatcamGUI/FlatCAMGUI.py:757 flatcamGUI/FlatCAMGUI.py:1477 flatcamTools/ToolOptimal.py:34 #: flatcamTools/ToolOptimal.py:310 msgid "Optimal Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:750 flatcamGUI/FlatCAMGUI.py:1463 flatcamGUI/FlatCAMGUI.py:2194 +#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:1475 flatcamGUI/FlatCAMGUI.py:2206 msgid "Calculators Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:752 flatcamGUI/FlatCAMGUI.py:1466 flatcamGUI/FlatCAMGUI.py:2196 +#: flatcamGUI/FlatCAMGUI.py:763 flatcamGUI/FlatCAMGUI.py:1478 flatcamGUI/FlatCAMGUI.py:2208 #: flatcamTools/ToolQRCode.py:43 flatcamTools/ToolQRCode.py:382 msgid "QRCode Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:2198 +#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:2210 #: flatcamTools/ToolCopperThieving.py:40 flatcamTools/ToolCopperThieving.py:566 msgid "Copper Thieving Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:756 flatcamGUI/FlatCAMGUI.py:1463 flatcamGUI/FlatCAMGUI.py:2200 +#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1475 flatcamGUI/FlatCAMGUI.py:2212 #: flatcamTools/ToolFiducials.py:33 flatcamTools/ToolFiducials.py:393 msgid "Fiducials Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:761 flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:818 -#: flatcamGUI/FlatCAMGUI.py:2203 flatcamGUI/FlatCAMGUI.py:2258 +#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamTools/ToolCalibration.py:37 flatcamTools/ToolCalibration.py:762 +msgid "Calibration Tool" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:773 flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:830 +#: flatcamGUI/FlatCAMGUI.py:2216 flatcamGUI/FlatCAMGUI.py:2271 msgid "Select" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:762 flatcamGUI/FlatCAMGUI.py:2204 +#: flatcamGUI/FlatCAMGUI.py:774 flatcamGUI/FlatCAMGUI.py:2217 msgid "Add Drill Hole" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:764 flatcamGUI/FlatCAMGUI.py:2206 +#: flatcamGUI/FlatCAMGUI.py:776 flatcamGUI/FlatCAMGUI.py:2219 msgid "Add Drill Hole Array" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:765 flatcamGUI/FlatCAMGUI.py:1738 flatcamGUI/FlatCAMGUI.py:1948 -#: flatcamGUI/FlatCAMGUI.py:2208 +#: flatcamGUI/FlatCAMGUI.py:777 flatcamGUI/FlatCAMGUI.py:1750 flatcamGUI/FlatCAMGUI.py:1960 +#: flatcamGUI/FlatCAMGUI.py:2221 msgid "Add Slot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:767 flatcamGUI/FlatCAMGUI.py:1737 flatcamGUI/FlatCAMGUI.py:1949 -#: flatcamGUI/FlatCAMGUI.py:2210 +#: flatcamGUI/FlatCAMGUI.py:779 flatcamGUI/FlatCAMGUI.py:1749 flatcamGUI/FlatCAMGUI.py:1961 +#: flatcamGUI/FlatCAMGUI.py:2223 msgid "Add Slot Array" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:768 flatcamGUI/FlatCAMGUI.py:1951 flatcamGUI/FlatCAMGUI.py:2207 +#: flatcamGUI/FlatCAMGUI.py:780 flatcamGUI/FlatCAMGUI.py:1963 flatcamGUI/FlatCAMGUI.py:2220 msgid "Resize Drill" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:771 flatcamGUI/FlatCAMGUI.py:2213 +#: flatcamGUI/FlatCAMGUI.py:783 flatcamGUI/FlatCAMGUI.py:2226 msgid "Copy Drill" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:772 flatcamGUI/FlatCAMGUI.py:2215 +#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2228 msgid "Delete Drill" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:775 flatcamGUI/FlatCAMGUI.py:2218 +#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2231 msgid "Move Drill" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:781 flatcamGUI/FlatCAMGUI.py:2222 +#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:2235 msgid "Add Circle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:782 flatcamGUI/FlatCAMGUI.py:2223 +#: flatcamGUI/FlatCAMGUI.py:794 flatcamGUI/FlatCAMGUI.py:2236 msgid "Add Arc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:784 flatcamGUI/FlatCAMGUI.py:2225 +#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 msgid "Add Rectangle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:787 flatcamGUI/FlatCAMGUI.py:2228 +#: flatcamGUI/FlatCAMGUI.py:799 flatcamGUI/FlatCAMGUI.py:2241 msgid "Add Path" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:788 flatcamGUI/FlatCAMGUI.py:2230 +#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2243 msgid "Add Polygon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:790 flatcamGUI/FlatCAMGUI.py:2232 +#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2245 msgid "Add Text" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:791 flatcamGUI/FlatCAMGUI.py:2233 +#: flatcamGUI/FlatCAMGUI.py:803 flatcamGUI/FlatCAMGUI.py:2246 msgid "Add Buffer" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:792 flatcamGUI/FlatCAMGUI.py:2234 +#: flatcamGUI/FlatCAMGUI.py:804 flatcamGUI/FlatCAMGUI.py:2247 msgid "Paint Shape" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:793 flatcamGUI/FlatCAMGUI.py:835 flatcamGUI/FlatCAMGUI.py:1910 -#: flatcamGUI/FlatCAMGUI.py:1938 flatcamGUI/FlatCAMGUI.py:2235 flatcamGUI/FlatCAMGUI.py:2274 +#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:847 flatcamGUI/FlatCAMGUI.py:1922 +#: flatcamGUI/FlatCAMGUI.py:1950 flatcamGUI/FlatCAMGUI.py:2248 flatcamGUI/FlatCAMGUI.py:2287 msgid "Eraser" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:796 flatcamGUI/FlatCAMGUI.py:2238 +#: flatcamGUI/FlatCAMGUI.py:808 flatcamGUI/FlatCAMGUI.py:2251 msgid "Polygon Union" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:797 flatcamGUI/FlatCAMGUI.py:2239 +#: flatcamGUI/FlatCAMGUI.py:809 flatcamGUI/FlatCAMGUI.py:2252 msgid "Polygon Explode" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:800 flatcamGUI/FlatCAMGUI.py:2242 +#: flatcamGUI/FlatCAMGUI.py:812 flatcamGUI/FlatCAMGUI.py:2255 msgid "Polygon Intersection" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:802 flatcamGUI/FlatCAMGUI.py:2244 +#: flatcamGUI/FlatCAMGUI.py:814 flatcamGUI/FlatCAMGUI.py:2257 msgid "Polygon Subtraction" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:805 flatcamGUI/FlatCAMGUI.py:2247 +#: flatcamGUI/FlatCAMGUI.py:817 flatcamGUI/FlatCAMGUI.py:2260 msgid "Cut Path" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:806 +#: flatcamGUI/FlatCAMGUI.py:818 msgid "Copy Shape(s)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:809 +#: flatcamGUI/FlatCAMGUI.py:821 msgid "Delete Shape '-'" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:811 flatcamGUI/FlatCAMGUI.py:842 flatcamGUI/FlatCAMGUI.py:1917 -#: flatcamGUI/FlatCAMGUI.py:1942 flatcamGUI/FlatCAMGUI.py:2252 flatcamGUI/FlatCAMGUI.py:2281 +#: flatcamGUI/FlatCAMGUI.py:823 flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:1929 +#: flatcamGUI/FlatCAMGUI.py:1954 flatcamGUI/FlatCAMGUI.py:2265 flatcamGUI/FlatCAMGUI.py:2294 msgid "Transformations" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:813 +#: flatcamGUI/FlatCAMGUI.py:825 msgid "Move Objects " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:819 flatcamGUI/FlatCAMGUI.py:1857 flatcamGUI/FlatCAMGUI.py:2259 +#: flatcamGUI/FlatCAMGUI.py:831 flatcamGUI/FlatCAMGUI.py:1869 flatcamGUI/FlatCAMGUI.py:2272 msgid "Add Pad" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:821 flatcamGUI/FlatCAMGUI.py:1858 flatcamGUI/FlatCAMGUI.py:2261 +#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1870 flatcamGUI/FlatCAMGUI.py:2274 msgid "Add Track" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:822 flatcamGUI/FlatCAMGUI.py:1857 flatcamGUI/FlatCAMGUI.py:2262 +#: flatcamGUI/FlatCAMGUI.py:834 flatcamGUI/FlatCAMGUI.py:1869 flatcamGUI/FlatCAMGUI.py:2275 msgid "Add Region" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:824 flatcamGUI/FlatCAMGUI.py:1930 flatcamGUI/FlatCAMGUI.py:2264 +#: flatcamGUI/FlatCAMGUI.py:836 flatcamGUI/FlatCAMGUI.py:1942 flatcamGUI/FlatCAMGUI.py:2277 msgid "Poligonize" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:826 flatcamGUI/FlatCAMGUI.py:1931 flatcamGUI/FlatCAMGUI.py:2266 +#: flatcamGUI/FlatCAMGUI.py:838 flatcamGUI/FlatCAMGUI.py:1943 flatcamGUI/FlatCAMGUI.py:2279 msgid "SemiDisc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:827 flatcamGUI/FlatCAMGUI.py:1932 flatcamGUI/FlatCAMGUI.py:2267 +#: flatcamGUI/FlatCAMGUI.py:839 flatcamGUI/FlatCAMGUI.py:1944 flatcamGUI/FlatCAMGUI.py:2280 msgid "Disc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:833 flatcamGUI/FlatCAMGUI.py:1937 flatcamGUI/FlatCAMGUI.py:2273 +#: flatcamGUI/FlatCAMGUI.py:845 flatcamGUI/FlatCAMGUI.py:1949 flatcamGUI/FlatCAMGUI.py:2286 msgid "Mark Area" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:844 flatcamGUI/FlatCAMGUI.py:1857 flatcamGUI/FlatCAMGUI.py:1920 -#: flatcamGUI/FlatCAMGUI.py:1961 flatcamGUI/FlatCAMGUI.py:2283 flatcamTools/ToolMove.py:28 +#: flatcamGUI/FlatCAMGUI.py:856 flatcamGUI/FlatCAMGUI.py:1869 flatcamGUI/FlatCAMGUI.py:1932 +#: flatcamGUI/FlatCAMGUI.py:1973 flatcamGUI/FlatCAMGUI.py:2296 flatcamTools/ToolMove.py:28 msgid "Move" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:851 flatcamGUI/FlatCAMGUI.py:2289 +#: flatcamGUI/FlatCAMGUI.py:863 flatcamGUI/FlatCAMGUI.py:2302 msgid "Snap to grid" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:854 flatcamGUI/FlatCAMGUI.py:2292 +#: flatcamGUI/FlatCAMGUI.py:866 flatcamGUI/FlatCAMGUI.py:2305 msgid "Grid X snapping distance" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:859 flatcamGUI/FlatCAMGUI.py:2297 +#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2310 msgid "Grid Y snapping distance" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:865 flatcamGUI/FlatCAMGUI.py:2303 +#: flatcamGUI/FlatCAMGUI.py:877 flatcamGUI/FlatCAMGUI.py:2316 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:871 flatcamGUI/FlatCAMGUI.py:2309 +#: flatcamGUI/FlatCAMGUI.py:883 flatcamGUI/FlatCAMGUI.py:2322 msgid "Snap to corner" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:875 flatcamGUI/FlatCAMGUI.py:2313 +#: flatcamGUI/FlatCAMGUI.py:887 flatcamGUI/FlatCAMGUI.py:2326 #: flatcamGUI/PreferencesUI.py:348 msgid "Max. magnet distance" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:897 flatcamGUI/FlatCAMGUI.py:1887 -msgid "Project" -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:909 +#: flatcamGUI/FlatCAMGUI.py:921 msgid "Selected" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:936 flatcamGUI/FlatCAMGUI.py:944 +#: flatcamGUI/FlatCAMGUI.py:948 flatcamGUI/FlatCAMGUI.py:956 msgid "Plot Area" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:971 +#: flatcamGUI/FlatCAMGUI.py:983 msgid "General" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:986 flatcamTools/ToolCopperThieving.py:74 +#: flatcamGUI/FlatCAMGUI.py:998 flatcamTools/ToolCopperThieving.py:74 #: flatcamTools/ToolDblSided.py:57 flatcamTools/ToolOptimal.py:71 #: flatcamTools/ToolQRCode.py:77 msgid "GERBER" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:996 flatcamTools/ToolDblSided.py:85 +#: flatcamGUI/FlatCAMGUI.py:1008 flatcamTools/ToolDblSided.py:85 msgid "EXCELLON" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1006 flatcamTools/ToolDblSided.py:113 +#: flatcamGUI/FlatCAMGUI.py:1018 flatcamTools/ToolDblSided.py:113 msgid "GEOMETRY" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1016 +#: flatcamGUI/FlatCAMGUI.py:1028 msgid "CNC-JOB" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1025 flatcamGUI/ObjectUI.py:539 +#: flatcamGUI/FlatCAMGUI.py:1037 flatcamGUI/ObjectUI.py:544 flatcamGUI/ObjectUI.py:1687 msgid "TOOLS" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1034 +#: flatcamGUI/FlatCAMGUI.py:1046 msgid "TOOLS 2" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1044 +#: flatcamGUI/FlatCAMGUI.py:1056 msgid "UTILITIES" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1061 +#: flatcamGUI/FlatCAMGUI.py:1073 msgid "Import Preferences" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1064 +#: flatcamGUI/FlatCAMGUI.py:1076 msgid "" "Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n" @@ -5462,586 +5524,586 @@ msgid "" "on the first start. Do not delete that file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1071 +#: flatcamGUI/FlatCAMGUI.py:1083 msgid "Export Preferences" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1074 +#: flatcamGUI/FlatCAMGUI.py:1086 msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1079 +#: flatcamGUI/FlatCAMGUI.py:1091 msgid "Open Pref Folder" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1082 +#: flatcamGUI/FlatCAMGUI.py:1094 msgid "Open the folder where FlatCAM save the preferences files." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1090 +#: flatcamGUI/FlatCAMGUI.py:1102 msgid "Apply" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1093 +#: flatcamGUI/FlatCAMGUI.py:1105 msgid "Apply the current preferences without saving to a file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1100 +#: flatcamGUI/FlatCAMGUI.py:1112 msgid "" "Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1108 +#: flatcamGUI/FlatCAMGUI.py:1120 msgid "Will not save the changes and will close the preferences window." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "SHOW SHORTCUT LIST" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Project Tab" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1444 +#: flatcamGUI/FlatCAMGUI.py:1456 msgid "Switch to Selected Tab" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1445 +#: flatcamGUI/FlatCAMGUI.py:1457 msgid "Switch to Tool Tab" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "New Gerber" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Edit Object (if selected)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1446 +#: flatcamGUI/FlatCAMGUI.py:1458 msgid "Jump to Coordinates" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Excellon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Move Obj" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "New Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1447 +#: flatcamGUI/FlatCAMGUI.py:1459 msgid "Change Units" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Open Properties Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Rotate by 90 degree CW" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1448 +#: flatcamGUI/FlatCAMGUI.py:1460 msgid "Shell Toggle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1449 +#: flatcamGUI/FlatCAMGUI.py:1461 msgid "Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on X_axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1450 +#: flatcamGUI/FlatCAMGUI.py:1462 msgid "Flip on Y_axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Copy Obj" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1453 +#: flatcamGUI/FlatCAMGUI.py:1465 msgid "Open Tools Database" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Excellon File" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "Open Gerber File" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1454 +#: flatcamGUI/FlatCAMGUI.py:1466 msgid "New Project" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1455 flatcamTools/ToolPDF.py:42 +#: flatcamGUI/FlatCAMGUI.py:1467 flatcamTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Save Project As" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1455 +#: flatcamGUI/FlatCAMGUI.py:1467 msgid "Toggle Plot Area" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1458 +#: flatcamGUI/FlatCAMGUI.py:1470 msgid "Copy Obj_Name" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle Code Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Toggle the axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1459 flatcamGUI/FlatCAMGUI.py:1651 flatcamGUI/FlatCAMGUI.py:1738 -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1471 flatcamGUI/FlatCAMGUI.py:1663 flatcamGUI/FlatCAMGUI.py:1750 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Distance Minimum Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1459 +#: flatcamGUI/FlatCAMGUI.py:1471 msgid "Open Preferences Window" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Rotate by 90 degree CCW" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Run a Script" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Toggle the workspace" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1460 +#: flatcamGUI/FlatCAMGUI.py:1472 msgid "Skew on X axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1461 +#: flatcamGUI/FlatCAMGUI.py:1473 msgid "Skew on Y axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "2-Sided PCB Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1463 +#: flatcamGUI/FlatCAMGUI.py:1475 msgid "Transformations Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1464 +#: flatcamGUI/FlatCAMGUI.py:1476 msgid "Solder Paste Dispensing Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Film PCB Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1465 +#: flatcamGUI/FlatCAMGUI.py:1477 msgid "Non-Copper Clearing Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Paint Area Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1466 +#: flatcamGUI/FlatCAMGUI.py:1478 msgid "Rules Check Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1467 +#: flatcamGUI/FlatCAMGUI.py:1479 msgid "View File Source" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Cutout PCB Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Enable all Plots" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable all Plots" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1468 +#: flatcamGUI/FlatCAMGUI.py:1480 msgid "Disable Non-selected Plots" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1469 +#: flatcamGUI/FlatCAMGUI.py:1481 msgid "Toggle Full Screen" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1472 +#: flatcamGUI/FlatCAMGUI.py:1484 msgid "Abort current task (gracefully)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1475 +#: flatcamGUI/FlatCAMGUI.py:1487 msgid "Open Online Manual" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Open Online Tutorials" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Refresh Plots" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1476 flatcamTools/ToolSolderPaste.py:503 +#: flatcamGUI/FlatCAMGUI.py:1488 flatcamTools/ToolSolderPaste.py:503 msgid "Delete Object" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1476 +#: flatcamGUI/FlatCAMGUI.py:1488 msgid "Alternate: Delete Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "(left to Key_1)Toogle Notebook Area (Left Side)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1477 +#: flatcamGUI/FlatCAMGUI.py:1489 msgid "En(Dis)able Obj Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1478 +#: flatcamGUI/FlatCAMGUI.py:1490 msgid "Deselects all objects" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1492 +#: flatcamGUI/FlatCAMGUI.py:1504 msgid "Editor Shortcut list" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "GEOMETRY EDITOR" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Draw an Arc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1646 +#: flatcamGUI/FlatCAMGUI.py:1658 msgid "Copy Geo Item" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Within Add Arc will toogle the ARC direction: CW or CCW" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1647 +#: flatcamGUI/FlatCAMGUI.py:1659 msgid "Polygon Intersection Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Geo Paint Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1648 flatcamGUI/FlatCAMGUI.py:1737 flatcamGUI/FlatCAMGUI.py:1857 +#: flatcamGUI/FlatCAMGUI.py:1660 flatcamGUI/FlatCAMGUI.py:1749 flatcamGUI/FlatCAMGUI.py:1869 msgid "Jump to Location (x, y)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Toggle Corner Snap" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1648 +#: flatcamGUI/FlatCAMGUI.py:1660 msgid "Move Geo Item" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Within Add Arc will cycle through the ARC modes" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Polygon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1649 +#: flatcamGUI/FlatCAMGUI.py:1661 msgid "Draw a Circle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw a Path" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Draw Rectangle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Polygon Subtraction Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1650 +#: flatcamGUI/FlatCAMGUI.py:1662 msgid "Add Text Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Polygon Union Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on X axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1651 +#: flatcamGUI/FlatCAMGUI.py:1663 msgid "Flip shape on Y axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on X axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Skew shape on Y axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1652 +#: flatcamGUI/FlatCAMGUI.py:1664 msgid "Editor Transformation Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on X axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1653 +#: flatcamGUI/FlatCAMGUI.py:1665 msgid "Offset shape on Y axis" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1654 flatcamGUI/FlatCAMGUI.py:1740 flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1666 flatcamGUI/FlatCAMGUI.py:1752 flatcamGUI/FlatCAMGUI.py:1874 msgid "Save Object and Exit Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1654 +#: flatcamGUI/FlatCAMGUI.py:1666 msgid "Polygon Cut Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Rotate Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1655 +#: flatcamGUI/FlatCAMGUI.py:1667 msgid "Finish drawing for certain tools" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1655 flatcamGUI/FlatCAMGUI.py:1740 flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1667 flatcamGUI/FlatCAMGUI.py:1752 flatcamGUI/FlatCAMGUI.py:1872 msgid "Abort and return to Select" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1656 flatcamGUI/FlatCAMGUI.py:2250 +#: flatcamGUI/FlatCAMGUI.py:1668 flatcamGUI/FlatCAMGUI.py:2263 msgid "Delete Shape" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "EXCELLON EDITOR" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1736 +#: flatcamGUI/FlatCAMGUI.py:1748 msgid "Copy Drill(s)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1736 flatcamGUI/FlatCAMGUI.py:1945 +#: flatcamGUI/FlatCAMGUI.py:1748 flatcamGUI/FlatCAMGUI.py:1957 msgid "Add Drill" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1737 +#: flatcamGUI/FlatCAMGUI.py:1749 msgid "Move Drill(s)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1738 +#: flatcamGUI/FlatCAMGUI.py:1750 msgid "Add a new Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Delete Drill(s)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1739 +#: flatcamGUI/FlatCAMGUI.py:1751 msgid "Alternate: Delete Tool(s)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "GERBER EDITOR" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add Disc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1856 +#: flatcamGUI/FlatCAMGUI.py:1868 msgid "Add SemiDisc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1858 +#: flatcamGUI/FlatCAMGUI.py:1870 msgid "Within Track & Region Tools will cycle in REVERSE the bend modes" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1859 +#: flatcamGUI/FlatCAMGUI.py:1871 msgid "Within Track & Region Tools will cycle FORWARD the bend modes" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1860 +#: flatcamGUI/FlatCAMGUI.py:1872 msgid "Alternate: Delete Apertures" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1861 +#: flatcamGUI/FlatCAMGUI.py:1873 msgid "Eraser Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1862 flatcamGUI/PreferencesUI.py:2038 +#: flatcamGUI/FlatCAMGUI.py:1874 flatcamGUI/PreferencesUI.py:2038 msgid "Mark Area Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Poligonize Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1862 +#: flatcamGUI/FlatCAMGUI.py:1874 msgid "Transformation Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1878 +#: flatcamGUI/FlatCAMGUI.py:1890 msgid "Toggle Visibility" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1882 +#: flatcamGUI/FlatCAMGUI.py:1894 msgid "New" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1883 flatcamTools/ToolCalibration.py:569 +#: flatcamGUI/FlatCAMGUI.py:1895 flatcamTools/ToolCalibration.py:634 msgid "Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1885 flatcamTools/ToolCalibration.py:90 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolFilm.py:359 +#: flatcamGUI/FlatCAMGUI.py:1897 flatcamTools/ToolCalibration.py:197 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolFilm.py:359 msgid "Excellon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1890 +#: flatcamGUI/FlatCAMGUI.py:1902 msgid "Grids" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1894 +#: flatcamGUI/FlatCAMGUI.py:1906 msgid "Clear Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1895 +#: flatcamGUI/FlatCAMGUI.py:1907 msgid "Replot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1898 +#: flatcamGUI/FlatCAMGUI.py:1910 msgid "Geo Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1899 +#: flatcamGUI/FlatCAMGUI.py:1911 msgid "Path" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1900 +#: flatcamGUI/FlatCAMGUI.py:1912 msgid "Rectangle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1902 +#: flatcamGUI/FlatCAMGUI.py:1914 msgid "Circle" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1903 +#: flatcamGUI/FlatCAMGUI.py:1915 msgid "Polygon" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1904 +#: flatcamGUI/FlatCAMGUI.py:1916 msgid "Arc" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1913 +#: flatcamGUI/FlatCAMGUI.py:1925 msgid "Union" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1914 +#: flatcamGUI/FlatCAMGUI.py:1926 msgid "Intersection" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1915 +#: flatcamGUI/FlatCAMGUI.py:1927 msgid "Subtraction" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1916 flatcamGUI/ObjectUI.py:1679 -#: flatcamGUI/PreferencesUI.py:3625 +#: flatcamGUI/FlatCAMGUI.py:1928 flatcamGUI/ObjectUI.py:1761 +#: flatcamGUI/PreferencesUI.py:3643 msgid "Cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1923 +#: flatcamGUI/FlatCAMGUI.py:1935 msgid "Pad" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1924 +#: flatcamGUI/FlatCAMGUI.py:1936 msgid "Pad Array" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1927 +#: flatcamGUI/FlatCAMGUI.py:1939 msgid "Track" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1928 +#: flatcamGUI/FlatCAMGUI.py:1940 msgid "Region" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1944 +#: flatcamGUI/FlatCAMGUI.py:1956 msgid "Exc Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1974 +#: flatcamGUI/FlatCAMGUI.py:1986 msgid "" "Relative neasurement.\n" "Reference is last click position" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:1980 +#: flatcamGUI/FlatCAMGUI.py:1992 msgid "" "Absolute neasurement.\n" "Reference is (X=0, Y= 0) position" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2087 +#: flatcamGUI/FlatCAMGUI.py:2099 msgid "Lock Toolbars" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2180 +#: flatcamGUI/FlatCAMGUI.py:2192 msgid "&Cutout Tool" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2221 +#: flatcamGUI/FlatCAMGUI.py:2234 msgid "Select 'Esc'" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2248 +#: flatcamGUI/FlatCAMGUI.py:2261 msgid "Copy Objects" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2255 +#: flatcamGUI/FlatCAMGUI.py:2268 msgid "Move Objects" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2800 +#: flatcamGUI/FlatCAMGUI.py:2813 msgid "" "Please first select a geometry item to be cutted\n" "then select the geometry item that will be cutted\n" @@ -6049,75 +6111,75 @@ msgid "" "the toolbar button." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2807 flatcamGUI/FlatCAMGUI.py:2951 flatcamGUI/FlatCAMGUI.py:3010 -#: flatcamGUI/FlatCAMGUI.py:3030 +#: flatcamGUI/FlatCAMGUI.py:2820 flatcamGUI/FlatCAMGUI.py:2964 flatcamGUI/FlatCAMGUI.py:3023 +#: flatcamGUI/FlatCAMGUI.py:3043 msgid "Warning" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:2946 +#: flatcamGUI/FlatCAMGUI.py:2959 msgid "" "Please select geometry items \n" "on which to perform Intersection Tool." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3005 +#: flatcamGUI/FlatCAMGUI.py:3018 msgid "" "Please select geometry items \n" "on which to perform Substraction Tool." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3025 +#: flatcamGUI/FlatCAMGUI.py:3038 msgid "" "Please select geometry items \n" "on which to perform union." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3109 flatcamGUI/FlatCAMGUI.py:3327 +#: flatcamGUI/FlatCAMGUI.py:3122 flatcamGUI/FlatCAMGUI.py:3340 msgid "Cancelled. Nothing selected to delete." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3194 flatcamGUI/FlatCAMGUI.py:3395 +#: flatcamGUI/FlatCAMGUI.py:3207 flatcamGUI/FlatCAMGUI.py:3408 msgid "Cancelled. Nothing selected to copy." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3241 flatcamGUI/FlatCAMGUI.py:3442 +#: flatcamGUI/FlatCAMGUI.py:3254 flatcamGUI/FlatCAMGUI.py:3455 msgid "Cancelled. Nothing selected to move." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3468 +#: flatcamGUI/FlatCAMGUI.py:3481 msgid "New Tool ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3469 flatcamTools/ToolNonCopperClear.py:588 -#: flatcamTools/ToolPaint.py:498 flatcamTools/ToolSolderPaste.py:554 +#: flatcamGUI/FlatCAMGUI.py:3482 flatcamTools/ToolNonCopperClear.py:588 +#: flatcamTools/ToolPaint.py:499 flatcamTools/ToolSolderPaste.py:554 msgid "Enter a Tool Diameter" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3481 +#: flatcamGUI/FlatCAMGUI.py:3494 msgid "Adding Tool cancelled ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3524 +#: flatcamGUI/FlatCAMGUI.py:3537 msgid "Distance Tool exit..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3734 flatcamGUI/FlatCAMGUI.py:3741 +#: flatcamGUI/FlatCAMGUI.py:3747 flatcamGUI/FlatCAMGUI.py:3754 msgid "Idle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3770 +#: flatcamGUI/FlatCAMGUI.py:3783 msgid "Application started ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3771 +#: flatcamGUI/FlatCAMGUI.py:3784 msgid "Hello!" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3827 +#: flatcamGUI/FlatCAMGUI.py:3840 msgid "Open Project ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:3852 +#: flatcamGUI/FlatCAMGUI.py:3865 msgid "Exit" msgstr "" @@ -6147,110 +6209,112 @@ msgstr "" #: flatcamGUI/ObjectUI.py:102 msgid "" "Factor by which to multiply\n" -"geometric features of this object." +"geometric features of this object.\n" +"Expressions are allowed. E.g: 1/25.4" msgstr "" -#: flatcamGUI/ObjectUI.py:115 +#: flatcamGUI/ObjectUI.py:112 msgid "Perform scaling operation." msgstr "" -#: flatcamGUI/ObjectUI.py:126 +#: flatcamGUI/ObjectUI.py:123 msgid "Change the position of this object." msgstr "" -#: flatcamGUI/ObjectUI.py:131 +#: flatcamGUI/ObjectUI.py:128 msgid "Vector" msgstr "" -#: flatcamGUI/ObjectUI.py:133 +#: flatcamGUI/ObjectUI.py:130 msgid "" "Amount by which to move the object\n" -"in the x and y axes in (x, y) format." +"in the x and y axes in (x, y) format.\n" +"Expressions are allowed. E.g: (1/3.2, 0.5*3)" msgstr "" -#: flatcamGUI/ObjectUI.py:141 +#: flatcamGUI/ObjectUI.py:139 msgid "Perform the offset operation." msgstr "" -#: flatcamGUI/ObjectUI.py:158 +#: flatcamGUI/ObjectUI.py:156 msgid "Gerber Object" msgstr "" -#: flatcamGUI/ObjectUI.py:168 flatcamGUI/ObjectUI.py:685 flatcamGUI/ObjectUI.py:1083 -#: flatcamGUI/ObjectUI.py:1663 flatcamGUI/PreferencesUI.py:1337 -#: flatcamGUI/PreferencesUI.py:2078 flatcamGUI/PreferencesUI.py:3110 -#: flatcamGUI/PreferencesUI.py:3599 +#: flatcamGUI/ObjectUI.py:171 flatcamGUI/ObjectUI.py:743 flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1855 flatcamGUI/PreferencesUI.py:1360 +#: flatcamGUI/PreferencesUI.py:3118 flatcamGUI/PreferencesUI.py:3628 +msgid "Plot (show) this object." +msgstr "" + +#: flatcamGUI/ObjectUI.py:173 flatcamGUI/ObjectUI.py:741 flatcamGUI/PreferencesUI.py:1358 +#: flatcamGUI/PreferencesUI.py:2084 flatcamGUI/PreferencesUI.py:3116 +msgid "Plot" +msgstr "" + +#: flatcamGUI/ObjectUI.py:178 flatcamGUI/ObjectUI.py:702 flatcamGUI/ObjectUI.py:1120 +#: flatcamGUI/ObjectUI.py:1745 flatcamGUI/PreferencesUI.py:1337 +#: flatcamGUI/PreferencesUI.py:2078 flatcamGUI/PreferencesUI.py:3112 +#: flatcamGUI/PreferencesUI.py:3617 msgid "Plot Options" msgstr "" -#: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:686 flatcamGUI/PreferencesUI.py:1344 -#: flatcamGUI/PreferencesUI.py:2090 flatcamGUI/PreferencesUI.py:6135 +#: flatcamGUI/ObjectUI.py:184 flatcamGUI/ObjectUI.py:703 flatcamGUI/PreferencesUI.py:1344 +#: flatcamGUI/PreferencesUI.py:2090 flatcamGUI/PreferencesUI.py:6153 #: flatcamTools/ToolCopperThieving.py:190 msgid "Solid" msgstr "" -#: flatcamGUI/ObjectUI.py:176 flatcamGUI/PreferencesUI.py:1346 +#: flatcamGUI/ObjectUI.py:186 flatcamGUI/PreferencesUI.py:1346 msgid "Solid color polygons." msgstr "" -#: flatcamGUI/ObjectUI.py:182 flatcamGUI/PreferencesUI.py:1351 -msgid "M-Color" +#: flatcamGUI/ObjectUI.py:192 +msgid "Multi-Color" msgstr "" -#: flatcamGUI/ObjectUI.py:184 flatcamGUI/PreferencesUI.py:1353 +#: flatcamGUI/ObjectUI.py:194 flatcamGUI/PreferencesUI.py:1353 msgid "Draw polygons in different colors." msgstr "" -#: flatcamGUI/ObjectUI.py:190 flatcamGUI/ObjectUI.py:724 flatcamGUI/PreferencesUI.py:1358 -#: flatcamGUI/PreferencesUI.py:2084 flatcamGUI/PreferencesUI.py:3114 -msgid "Plot" -msgstr "" - -#: flatcamGUI/ObjectUI.py:192 flatcamGUI/ObjectUI.py:726 flatcamGUI/ObjectUI.py:1129 -#: flatcamGUI/ObjectUI.py:1773 flatcamGUI/PreferencesUI.py:1360 -#: flatcamGUI/PreferencesUI.py:3116 flatcamGUI/PreferencesUI.py:3610 -msgid "Plot (show) this object." -msgstr "" - -#: flatcamGUI/ObjectUI.py:200 flatcamGUI/ObjectUI.py:697 flatcamGUI/ObjectUI.py:1089 -#: flatcamGUI/ObjectUI.py:1693 flatcamGUI/ObjectUI.py:1977 flatcamGUI/ObjectUI.py:2032 -#: flatcamTools/ToolCalibration.py:125 flatcamTools/ToolFiducials.py:73 +#: flatcamGUI/ObjectUI.py:202 flatcamGUI/ObjectUI.py:714 flatcamGUI/ObjectUI.py:1126 +#: flatcamGUI/ObjectUI.py:1775 flatcamGUI/ObjectUI.py:2067 flatcamGUI/ObjectUI.py:2122 +#: flatcamTools/ToolCalibration.py:235 flatcamTools/ToolFiducials.py:73 msgid "Name" msgstr "" -#: flatcamGUI/ObjectUI.py:221 +#: flatcamGUI/ObjectUI.py:223 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 "" -#: flatcamGUI/ObjectUI.py:231 +#: flatcamGUI/ObjectUI.py:233 msgid "Mark All" msgstr "" -#: flatcamGUI/ObjectUI.py:233 +#: flatcamGUI/ObjectUI.py:235 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 "" -#: flatcamGUI/ObjectUI.py:261 +#: flatcamGUI/ObjectUI.py:263 msgid "Mark the aperture instances on canvas." msgstr "" -#: flatcamGUI/ObjectUI.py:270 flatcamGUI/PreferencesUI.py:1438 +#: flatcamGUI/ObjectUI.py:275 flatcamGUI/PreferencesUI.py:1438 msgid "Isolation Routing" msgstr "" -#: flatcamGUI/ObjectUI.py:272 flatcamGUI/PreferencesUI.py:1440 +#: flatcamGUI/ObjectUI.py:277 flatcamGUI/PreferencesUI.py:1440 msgid "" "Create a Geometry object with\n" "toolpaths to cut outside polygons." msgstr "" -#: flatcamGUI/ObjectUI.py:290 flatcamGUI/PreferencesUI.py:1628 +#: flatcamGUI/ObjectUI.py:295 flatcamGUI/PreferencesUI.py:1628 msgid "" "Choose what tool to use for Gerber isolation:\n" "'Circular' or 'V-shape'.\n" @@ -6258,41 +6322,41 @@ msgid "" "diameter will depend on the chosen cut depth." msgstr "" -#: flatcamGUI/ObjectUI.py:296 +#: flatcamGUI/ObjectUI.py:301 msgid "V-Shape" msgstr "" -#: flatcamGUI/ObjectUI.py:302 flatcamGUI/ObjectUI.py:1298 flatcamGUI/PreferencesUI.py:1640 -#: flatcamGUI/PreferencesUI.py:3992 flatcamTools/ToolNonCopperClear.py:231 +#: flatcamGUI/ObjectUI.py:307 flatcamGUI/ObjectUI.py:1335 flatcamGUI/PreferencesUI.py:1640 +#: flatcamGUI/PreferencesUI.py:4010 flatcamTools/ToolNonCopperClear.py:231 msgid "V-Tip Dia" msgstr "" -#: flatcamGUI/ObjectUI.py:304 flatcamGUI/ObjectUI.py:1301 flatcamGUI/PreferencesUI.py:1642 -#: flatcamGUI/PreferencesUI.py:3994 flatcamTools/ToolNonCopperClear.py:233 +#: flatcamGUI/ObjectUI.py:309 flatcamGUI/ObjectUI.py:1338 flatcamGUI/PreferencesUI.py:1642 +#: flatcamGUI/PreferencesUI.py:4012 flatcamTools/ToolNonCopperClear.py:233 msgid "The tip diameter for V-Shape Tool" msgstr "" -#: flatcamGUI/ObjectUI.py:315 flatcamGUI/ObjectUI.py:1313 flatcamGUI/PreferencesUI.py:1653 -#: flatcamGUI/PreferencesUI.py:4004 flatcamTools/ToolNonCopperClear.py:242 +#: flatcamGUI/ObjectUI.py:320 flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:1653 +#: flatcamGUI/PreferencesUI.py:4022 flatcamTools/ToolNonCopperClear.py:242 msgid "V-Tip Angle" msgstr "" -#: flatcamGUI/ObjectUI.py:317 flatcamGUI/ObjectUI.py:1316 flatcamGUI/PreferencesUI.py:1655 -#: flatcamGUI/PreferencesUI.py:4006 flatcamTools/ToolNonCopperClear.py:244 +#: flatcamGUI/ObjectUI.py:322 flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:1655 +#: flatcamGUI/PreferencesUI.py:4024 flatcamTools/ToolNonCopperClear.py:244 msgid "" "The tip angle for V-Shape Tool.\n" "In degree." msgstr "" -#: flatcamGUI/ObjectUI.py:331 flatcamGUI/ObjectUI.py:1332 flatcamGUI/PreferencesUI.py:1668 -#: flatcamGUI/PreferencesUI.py:3179 flatcamGUI/PreferencesUI.py:4275 +#: flatcamGUI/ObjectUI.py:336 flatcamGUI/ObjectUI.py:1369 flatcamGUI/PreferencesUI.py:1668 +#: flatcamGUI/PreferencesUI.py:3181 flatcamGUI/PreferencesUI.py:4293 #: flatcamTools/ToolCutOut.py:135 msgid "" "Cutting depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/ObjectUI.py:345 +#: flatcamGUI/ObjectUI.py:350 msgid "" "Diameter of the cutting tool.\n" "If you want to have an isolation path\n" @@ -6301,84 +6365,84 @@ msgid "" "this parameter." msgstr "" -#: flatcamGUI/ObjectUI.py:361 flatcamGUI/PreferencesUI.py:1462 +#: flatcamGUI/ObjectUI.py:366 flatcamGUI/PreferencesUI.py:1462 msgid "# Passes" msgstr "" -#: flatcamGUI/ObjectUI.py:363 flatcamGUI/PreferencesUI.py:1464 +#: flatcamGUI/ObjectUI.py:368 flatcamGUI/PreferencesUI.py:1464 msgid "" "Width of the isolation gap in\n" "number (integer) of tool widths." msgstr "" -#: flatcamGUI/ObjectUI.py:373 flatcamGUI/PreferencesUI.py:1474 +#: flatcamGUI/ObjectUI.py:378 flatcamGUI/PreferencesUI.py:1474 msgid "Pass overlap" msgstr "" -#: flatcamGUI/ObjectUI.py:375 flatcamGUI/PreferencesUI.py:1476 +#: flatcamGUI/ObjectUI.py:380 flatcamGUI/PreferencesUI.py:1476 msgid "How much (fraction) of the tool width to overlap each tool pass." msgstr "" -#: flatcamGUI/ObjectUI.py:387 flatcamGUI/PreferencesUI.py:1501 -#: flatcamGUI/PreferencesUI.py:3576 flatcamGUI/PreferencesUI.py:4049 +#: flatcamGUI/ObjectUI.py:392 flatcamGUI/PreferencesUI.py:1501 +#: flatcamGUI/PreferencesUI.py:3594 flatcamGUI/PreferencesUI.py:4067 #: flatcamTools/ToolNonCopperClear.py:162 msgid "Milling Type" msgstr "" -#: flatcamGUI/ObjectUI.py:389 flatcamGUI/PreferencesUI.py:1503 -#: flatcamGUI/PreferencesUI.py:3578 +#: flatcamGUI/ObjectUI.py:394 flatcamGUI/PreferencesUI.py:1503 +#: flatcamGUI/PreferencesUI.py:3596 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:393 flatcamGUI/PreferencesUI.py:1508 -#: flatcamGUI/PreferencesUI.py:3582 flatcamGUI/PreferencesUI.py:4056 +#: flatcamGUI/ObjectUI.py:398 flatcamGUI/PreferencesUI.py:1508 +#: flatcamGUI/PreferencesUI.py:3600 flatcamGUI/PreferencesUI.py:4074 #: flatcamTools/ToolNonCopperClear.py:169 msgid "Climb" msgstr "" -#: flatcamGUI/ObjectUI.py:394 +#: flatcamGUI/ObjectUI.py:399 msgid "Conventional" msgstr "" -#: flatcamGUI/ObjectUI.py:399 +#: flatcamGUI/ObjectUI.py:404 msgid "Combine" msgstr "" -#: flatcamGUI/ObjectUI.py:401 flatcamGUI/PreferencesUI.py:1515 +#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1515 msgid "Combine all passes into one object" msgstr "" -#: flatcamGUI/ObjectUI.py:405 flatcamGUI/PreferencesUI.py:1607 +#: flatcamGUI/ObjectUI.py:410 flatcamGUI/PreferencesUI.py:1607 msgid "\"Follow\"" msgstr "" -#: flatcamGUI/ObjectUI.py:406 flatcamGUI/PreferencesUI.py:1609 +#: flatcamGUI/ObjectUI.py:411 flatcamGUI/PreferencesUI.py:1609 msgid "" "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" "the middle of the trace." msgstr "" -#: flatcamGUI/ObjectUI.py:412 +#: flatcamGUI/ObjectUI.py:417 msgid "Except" msgstr "" -#: flatcamGUI/ObjectUI.py:415 +#: flatcamGUI/ObjectUI.py:420 msgid "" "When the isolation geometry is generated,\n" "by checking this, the area of the object bellow\n" "will be subtracted from the isolation geometry." msgstr "" -#: flatcamGUI/ObjectUI.py:437 flatcamTools/ToolNonCopperClear.py:82 +#: flatcamGUI/ObjectUI.py:442 flatcamTools/ToolNonCopperClear.py:82 #: flatcamTools/ToolPaint.py:85 msgid "Obj Type" msgstr "" -#: flatcamGUI/ObjectUI.py:439 +#: flatcamGUI/ObjectUI.py:444 msgid "" "Specify the type of object to be excepted from isolation.\n" "It can be of type: Gerber or Geometry.\n" @@ -6386,38 +6450,38 @@ msgid "" "of objects that will populate the 'Object' combobox." msgstr "" -#: flatcamGUI/ObjectUI.py:452 flatcamGUI/PreferencesUI.py:6435 -#: flatcamTools/ToolCalibration.py:79 flatcamTools/ToolNonCopperClear.py:100 +#: flatcamGUI/ObjectUI.py:457 flatcamGUI/PreferencesUI.py:6453 +#: flatcamTools/ToolCalibration.py:186 flatcamTools/ToolNonCopperClear.py:100 #: flatcamTools/ToolPaint.py:103 flatcamTools/ToolPanelize.py:81 #: flatcamTools/ToolPanelize.py:94 msgid "Object" msgstr "" -#: flatcamGUI/ObjectUI.py:453 +#: flatcamGUI/ObjectUI.py:458 msgid "Object whose area will be removed from isolation geometry." msgstr "" -#: flatcamGUI/ObjectUI.py:460 flatcamGUI/PreferencesUI.py:1488 +#: flatcamGUI/ObjectUI.py:465 flatcamGUI/PreferencesUI.py:1488 msgid "Scope" msgstr "" -#: flatcamGUI/ObjectUI.py:462 flatcamGUI/PreferencesUI.py:1490 +#: flatcamGUI/ObjectUI.py:467 flatcamGUI/PreferencesUI.py:1490 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:467 flatcamGUI/PreferencesUI.py:1495 -#: flatcamGUI/PreferencesUI.py:4585 flatcamTools/ToolPaint.py:300 +#: flatcamGUI/ObjectUI.py:472 flatcamGUI/PreferencesUI.py:1495 +#: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 msgid "Selection" msgstr "" -#: flatcamGUI/ObjectUI.py:475 flatcamGUI/PreferencesUI.py:1681 +#: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 msgid "Isolation Type" msgstr "" -#: flatcamGUI/ObjectUI.py:477 flatcamGUI/PreferencesUI.py:1683 +#: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" "Choose how the isolation will be executed:\n" "- 'Full' -> complete isolation of polygons\n" @@ -6429,24 +6493,24 @@ msgid "" "inside of the polygon (e.g polygon is a 'doughnut' shape)." msgstr "" -#: flatcamGUI/ObjectUI.py:486 flatcamGUI/PreferencesUI.py:1692 +#: flatcamGUI/ObjectUI.py:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 msgid "Full" msgstr "" -#: flatcamGUI/ObjectUI.py:487 +#: flatcamGUI/ObjectUI.py:492 msgid "Ext" msgstr "" -#: flatcamGUI/ObjectUI.py:488 +#: flatcamGUI/ObjectUI.py:493 msgid "Int" msgstr "" -#: flatcamGUI/ObjectUI.py:493 +#: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" msgstr "" -#: flatcamGUI/ObjectUI.py:501 +#: flatcamGUI/ObjectUI.py:506 msgid "" "Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" @@ -6459,11 +6523,11 @@ msgid "" "diameter above." msgstr "" -#: flatcamGUI/ObjectUI.py:513 +#: flatcamGUI/ObjectUI.py:518 msgid "Buffer Solid Geometry" msgstr "" -#: flatcamGUI/ObjectUI.py:515 +#: flatcamGUI/ObjectUI.py:520 msgid "" "This button is shown only when the Gerber file\n" "is loaded without buffering.\n" @@ -6471,44 +6535,45 @@ msgid "" "required for isolation." msgstr "" -#: flatcamGUI/ObjectUI.py:543 +#: flatcamGUI/ObjectUI.py:548 msgid "Clear N-copper" msgstr "" -#: flatcamGUI/ObjectUI.py:545 flatcamGUI/PreferencesUI.py:3956 +#: flatcamGUI/ObjectUI.py:550 flatcamGUI/PreferencesUI.py:3974 msgid "" "Create a Geometry object with\n" "toolpaths to cut all non-copper regions." msgstr "" -#: flatcamGUI/ObjectUI.py:552 flatcamTools/ToolNonCopperClear.py:479 +#: flatcamGUI/ObjectUI.py:557 flatcamGUI/ObjectUI.py:1714 +#: flatcamTools/ToolNonCopperClear.py:479 msgid "" "Create the Geometry Object\n" "for non-copper routing." msgstr "" -#: flatcamGUI/ObjectUI.py:559 +#: flatcamGUI/ObjectUI.py:570 msgid "Board cutout" msgstr "" -#: flatcamGUI/ObjectUI.py:561 flatcamGUI/PreferencesUI.py:4248 +#: flatcamGUI/ObjectUI.py:572 flatcamGUI/PreferencesUI.py:4266 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" "the original board." msgstr "" -#: flatcamGUI/ObjectUI.py:568 +#: flatcamGUI/ObjectUI.py:579 msgid "" "Generate the geometry for\n" "the board cutout." msgstr "" -#: flatcamGUI/ObjectUI.py:580 flatcamGUI/PreferencesUI.py:1520 +#: flatcamGUI/ObjectUI.py:597 flatcamGUI/PreferencesUI.py:1520 msgid "Non-copper regions" msgstr "" -#: flatcamGUI/ObjectUI.py:582 flatcamGUI/PreferencesUI.py:1522 +#: flatcamGUI/ObjectUI.py:599 flatcamGUI/PreferencesUI.py:1522 msgid "" "Create polygons covering the\n" "areas without copper on the PCB.\n" @@ -6517,12 +6582,12 @@ msgid "" "copper from a specified region." msgstr "" -#: flatcamGUI/ObjectUI.py:592 flatcamGUI/ObjectUI.py:633 flatcamGUI/PreferencesUI.py:1534 +#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:650 flatcamGUI/PreferencesUI.py:1534 #: flatcamGUI/PreferencesUI.py:1562 msgid "Boundary Margin" msgstr "" -#: flatcamGUI/ObjectUI.py:594 flatcamGUI/PreferencesUI.py:1536 +#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1536 msgid "" "Specify the edge of the PCB\n" "by drawing a box around all\n" @@ -6530,38 +6595,38 @@ msgid "" "distance." msgstr "" -#: flatcamGUI/ObjectUI.py:609 flatcamGUI/ObjectUI.py:647 flatcamGUI/PreferencesUI.py:1549 +#: flatcamGUI/ObjectUI.py:626 flatcamGUI/ObjectUI.py:664 flatcamGUI/PreferencesUI.py:1549 #: flatcamGUI/PreferencesUI.py:1575 msgid "Rounded Geo" msgstr "" -#: flatcamGUI/ObjectUI.py:611 flatcamGUI/PreferencesUI.py:1551 +#: flatcamGUI/ObjectUI.py:628 flatcamGUI/PreferencesUI.py:1551 msgid "Resulting geometry will have rounded corners." msgstr "" -#: flatcamGUI/ObjectUI.py:615 flatcamGUI/ObjectUI.py:656 flatcamTools/ToolSolderPaste.py:133 +#: flatcamGUI/ObjectUI.py:632 flatcamGUI/ObjectUI.py:673 flatcamTools/ToolSolderPaste.py:133 msgid "Generate Geo" msgstr "" -#: flatcamGUI/ObjectUI.py:625 flatcamGUI/PreferencesUI.py:1556 -#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolPanelize.py:95 +#: flatcamGUI/ObjectUI.py:642 flatcamGUI/PreferencesUI.py:1556 +#: flatcamGUI/PreferencesUI.py:5983 flatcamTools/ToolPanelize.py:95 #: flatcamTools/ToolQRCode.py:192 msgid "Bounding Box" msgstr "" -#: flatcamGUI/ObjectUI.py:627 +#: flatcamGUI/ObjectUI.py:644 msgid "" "Create a geometry surrounding the Gerber object.\n" "Square shape." msgstr "" -#: flatcamGUI/ObjectUI.py:635 flatcamGUI/PreferencesUI.py:1564 +#: flatcamGUI/ObjectUI.py:652 flatcamGUI/PreferencesUI.py:1564 msgid "" "Distance of the edges of the box\n" "to the nearest polygon." msgstr "" -#: flatcamGUI/ObjectUI.py:649 flatcamGUI/PreferencesUI.py:1577 +#: flatcamGUI/ObjectUI.py:666 flatcamGUI/PreferencesUI.py:1577 msgid "" "If the bounding box is \n" "to have rounded corners\n" @@ -6569,32 +6634,32 @@ msgid "" "the margin." msgstr "" -#: flatcamGUI/ObjectUI.py:658 +#: flatcamGUI/ObjectUI.py:675 msgid "Generate the Geometry object." msgstr "" -#: flatcamGUI/ObjectUI.py:674 +#: flatcamGUI/ObjectUI.py:691 msgid "Excellon Object" msgstr "" -#: flatcamGUI/ObjectUI.py:688 +#: flatcamGUI/ObjectUI.py:705 msgid "Solid circles." msgstr "" -#: flatcamGUI/ObjectUI.py:736 flatcamTools/ToolProperties.py:161 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 flatcamTools/ToolProperties.py:161 msgid "Drills" msgstr "" -#: flatcamGUI/ObjectUI.py:736 flatcamGUI/PreferencesUI.py:2950 +#: flatcamGUI/ObjectUI.py:753 flatcamGUI/ObjectUI.py:1876 flatcamGUI/PreferencesUI.py:2952 #: flatcamTools/ToolProperties.py:162 msgid "Slots" msgstr "" -#: flatcamGUI/ObjectUI.py:737 flatcamGUI/PreferencesUI.py:2553 +#: flatcamGUI/ObjectUI.py:754 flatcamGUI/PreferencesUI.py:2555 msgid "Offset Z" msgstr "" -#: flatcamGUI/ObjectUI.py:741 +#: flatcamGUI/ObjectUI.py:758 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -6603,112 +6668,112 @@ msgid "" "Here the tools are selected for G-code generation." msgstr "" -#: flatcamGUI/ObjectUI.py:746 flatcamGUI/ObjectUI.py:1154 flatcamTools/ToolPaint.py:137 +#: flatcamGUI/ObjectUI.py:763 flatcamGUI/ObjectUI.py:1191 flatcamTools/ToolPaint.py:137 msgid "" "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." msgstr "" -#: flatcamGUI/ObjectUI.py:749 +#: flatcamGUI/ObjectUI.py:766 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." msgstr "" -#: flatcamGUI/ObjectUI.py:752 +#: flatcamGUI/ObjectUI.py:769 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." msgstr "" -#: flatcamGUI/ObjectUI.py:755 flatcamGUI/PreferencesUI.py:2555 +#: flatcamGUI/ObjectUI.py:772 flatcamGUI/PreferencesUI.py:2557 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 "" -#: flatcamGUI/ObjectUI.py:759 +#: flatcamGUI/ObjectUI.py:776 msgid "" "Toggle display of the drills for the current tool.\n" "This does not select the tools for G-code generation." msgstr "" -#: flatcamGUI/ObjectUI.py:766 flatcamGUI/PreferencesUI.py:2323 -#: flatcamGUI/PreferencesUI.py:3165 +#: flatcamGUI/ObjectUI.py:783 flatcamGUI/PreferencesUI.py:2323 +#: flatcamGUI/PreferencesUI.py:3167 msgid "Create CNC Job" msgstr "" -#: flatcamGUI/ObjectUI.py:768 +#: flatcamGUI/ObjectUI.py:785 msgid "" "Create a CNC Job object\n" "for this drill object." msgstr "" -#: flatcamGUI/ObjectUI.py:781 flatcamGUI/PreferencesUI.py:2336 +#: flatcamGUI/ObjectUI.py:798 flatcamGUI/PreferencesUI.py:2336 msgid "" "Drill depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/ObjectUI.py:800 flatcamGUI/PreferencesUI.py:2354 +#: flatcamGUI/ObjectUI.py:817 flatcamGUI/PreferencesUI.py:2354 msgid "" "Tool height when travelling\n" "across the XY plane." msgstr "" -#: flatcamGUI/ObjectUI.py:817 flatcamGUI/ObjectUI.py:1402 flatcamGUI/PreferencesUI.py:2369 -#: flatcamGUI/PreferencesUI.py:3250 +#: flatcamGUI/ObjectUI.py:834 flatcamGUI/ObjectUI.py:1439 flatcamGUI/PreferencesUI.py:2369 +#: flatcamGUI/PreferencesUI.py:3252 msgid "Tool change" msgstr "" -#: flatcamGUI/ObjectUI.py:819 flatcamGUI/PreferencesUI.py:2371 +#: flatcamGUI/ObjectUI.py:836 flatcamGUI/PreferencesUI.py:2371 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." msgstr "" -#: flatcamGUI/ObjectUI.py:825 flatcamGUI/ObjectUI.py:1395 +#: flatcamGUI/ObjectUI.py:842 flatcamGUI/ObjectUI.py:1432 msgid "Tool change Z" msgstr "" -#: flatcamGUI/ObjectUI.py:827 flatcamGUI/ObjectUI.py:1398 flatcamGUI/PreferencesUI.py:2380 -#: flatcamGUI/PreferencesUI.py:3265 +#: flatcamGUI/ObjectUI.py:844 flatcamGUI/ObjectUI.py:1435 flatcamGUI/PreferencesUI.py:2380 +#: flatcamGUI/PreferencesUI.py:3267 msgid "" "Z-axis position (height) for\n" "tool change." msgstr "" -#: flatcamGUI/ObjectUI.py:845 flatcamGUI/PreferencesUI.py:2573 -#: flatcamGUI/PreferencesUI.py:3415 +#: flatcamGUI/ObjectUI.py:862 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/PreferencesUI.py:3420 msgid "Start move Z" msgstr "" -#: flatcamGUI/ObjectUI.py:847 flatcamGUI/PreferencesUI.py:2575 +#: flatcamGUI/ObjectUI.py:864 flatcamGUI/PreferencesUI.py:2577 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/ObjectUI.py:855 flatcamGUI/ObjectUI.py:1436 flatcamGUI/PreferencesUI.py:2395 -#: flatcamGUI/PreferencesUI.py:3284 +#: flatcamGUI/ObjectUI.py:872 flatcamGUI/ObjectUI.py:1473 flatcamGUI/PreferencesUI.py:2395 +#: flatcamGUI/PreferencesUI.py:3286 msgid "End move Z" msgstr "" -#: flatcamGUI/ObjectUI.py:857 flatcamGUI/ObjectUI.py:1438 flatcamGUI/PreferencesUI.py:2397 -#: flatcamGUI/PreferencesUI.py:3286 +#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1475 flatcamGUI/PreferencesUI.py:2397 +#: flatcamGUI/PreferencesUI.py:3288 msgid "" "Height of the tool after\n" "the last move at the end of the job." msgstr "" -#: flatcamGUI/ObjectUI.py:874 flatcamGUI/ObjectUI.py:1469 flatcamGUI/PreferencesUI.py:2412 -#: flatcamGUI/PreferencesUI.py:3319 flatcamGUI/PreferencesUI.py:5479 +#: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:2412 +#: flatcamGUI/PreferencesUI.py:3321 flatcamGUI/PreferencesUI.py:5497 #: flatcamTools/ToolSolderPaste.py:264 msgid "Feedrate Z" msgstr "" -#: flatcamGUI/ObjectUI.py:876 flatcamGUI/PreferencesUI.py:2414 +#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2414 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6716,12 +6781,12 @@ msgid "" "This is for linear move G01." msgstr "" -#: flatcamGUI/ObjectUI.py:890 flatcamGUI/ObjectUI.py:1484 flatcamGUI/PreferencesUI.py:2583 -#: flatcamGUI/PreferencesUI.py:3425 +#: flatcamGUI/ObjectUI.py:907 flatcamGUI/ObjectUI.py:1521 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/PreferencesUI.py:3430 msgid "Feedrate Rapids" msgstr "" -#: flatcamGUI/ObjectUI.py:892 flatcamGUI/PreferencesUI.py:2585 +#: flatcamGUI/ObjectUI.py:909 flatcamGUI/PreferencesUI.py:2587 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6730,61 +6795,61 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/ObjectUI.py:910 flatcamGUI/ObjectUI.py:1514 flatcamGUI/PreferencesUI.py:3335 +#: flatcamGUI/ObjectUI.py:927 flatcamGUI/ObjectUI.py:1566 flatcamGUI/PreferencesUI.py:3337 msgid "Spindle speed" msgstr "" -#: flatcamGUI/ObjectUI.py:912 flatcamGUI/PreferencesUI.py:2429 +#: flatcamGUI/ObjectUI.py:929 flatcamGUI/PreferencesUI.py:2429 msgid "" "Speed of the spindle\n" "in RPM (optional)" msgstr "" -#: flatcamGUI/ObjectUI.py:922 flatcamGUI/ObjectUI.py:1531 flatcamGUI/PreferencesUI.py:2439 -#: flatcamGUI/PreferencesUI.py:3350 +#: flatcamGUI/ObjectUI.py:941 flatcamGUI/ObjectUI.py:1585 flatcamGUI/PreferencesUI.py:2441 +#: flatcamGUI/PreferencesUI.py:3355 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." msgstr "" -#: flatcamGUI/ObjectUI.py:931 flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:2444 -#: flatcamGUI/PreferencesUI.py:3355 +#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1595 flatcamGUI/PreferencesUI.py:2446 +#: flatcamGUI/PreferencesUI.py:3360 msgid "Number of time units for spindle to dwell." msgstr "" -#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2461 +#: flatcamGUI/ObjectUI.py:960 flatcamGUI/PreferencesUI.py:2463 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output." msgstr "" -#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1561 flatcamGUI/PreferencesUI.py:2599 -#: flatcamGUI/PreferencesUI.py:3453 +#: flatcamGUI/ObjectUI.py:969 flatcamGUI/ObjectUI.py:1615 flatcamGUI/PreferencesUI.py:2601 +#: flatcamGUI/PreferencesUI.py:3471 msgid "Probe Z depth" msgstr "" -#: flatcamGUI/ObjectUI.py:952 flatcamGUI/ObjectUI.py:1563 flatcamGUI/PreferencesUI.py:2601 -#: flatcamGUI/PreferencesUI.py:3455 +#: flatcamGUI/ObjectUI.py:971 flatcamGUI/ObjectUI.py:1617 flatcamGUI/PreferencesUI.py:2603 +#: flatcamGUI/PreferencesUI.py:3473 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: flatcamGUI/ObjectUI.py:966 flatcamGUI/ObjectUI.py:1578 flatcamGUI/PreferencesUI.py:2612 -#: flatcamGUI/PreferencesUI.py:3468 +#: flatcamGUI/ObjectUI.py:985 flatcamGUI/ObjectUI.py:1632 flatcamGUI/PreferencesUI.py:2614 +#: flatcamGUI/PreferencesUI.py:3486 msgid "Feedrate Probe" msgstr "" -#: flatcamGUI/ObjectUI.py:968 flatcamGUI/ObjectUI.py:1580 flatcamGUI/PreferencesUI.py:2614 -#: flatcamGUI/PreferencesUI.py:3470 +#: flatcamGUI/ObjectUI.py:987 flatcamGUI/ObjectUI.py:1634 flatcamGUI/PreferencesUI.py:2616 +#: flatcamGUI/PreferencesUI.py:3488 msgid "The feedrate used while the probe is probing." msgstr "" -#: flatcamGUI/ObjectUI.py:994 flatcamGUI/PreferencesUI.py:2470 +#: flatcamGUI/ObjectUI.py:1013 flatcamGUI/PreferencesUI.py:2472 msgid "Gcode" msgstr "" -#: flatcamGUI/ObjectUI.py:996 +#: flatcamGUI/ObjectUI.py:1015 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -6792,69 +6857,69 @@ msgid "" "converted to a series of drills." msgstr "" -#: flatcamGUI/ObjectUI.py:1010 +#: flatcamGUI/ObjectUI.py:1029 msgid "Create Drills GCode" msgstr "" -#: flatcamGUI/ObjectUI.py:1012 +#: flatcamGUI/ObjectUI.py:1031 msgid "Generate the CNC Job." msgstr "" -#: flatcamGUI/ObjectUI.py:1017 flatcamGUI/PreferencesUI.py:2488 +#: flatcamGUI/ObjectUI.py:1042 flatcamGUI/PreferencesUI.py:2490 msgid "Mill Holes" msgstr "" -#: flatcamGUI/ObjectUI.py:1019 +#: flatcamGUI/ObjectUI.py:1044 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 "" -#: flatcamGUI/ObjectUI.py:1025 flatcamGUI/PreferencesUI.py:2494 +#: flatcamGUI/ObjectUI.py:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" msgstr "" -#: flatcamGUI/ObjectUI.py:1027 flatcamGUI/PreferencesUI.py:1451 -#: flatcamGUI/PreferencesUI.py:2496 +#: flatcamGUI/ObjectUI.py:1052 flatcamGUI/PreferencesUI.py:1451 +#: flatcamGUI/PreferencesUI.py:2498 msgid "Diameter of the cutting tool." msgstr "" -#: flatcamGUI/ObjectUI.py:1034 +#: flatcamGUI/ObjectUI.py:1059 msgid "Mill Drills Geo" msgstr "" -#: flatcamGUI/ObjectUI.py:1036 +#: flatcamGUI/ObjectUI.py:1061 msgid "" "Create the Geometry Object\n" "for milling DRILLS toolpaths." msgstr "" -#: flatcamGUI/ObjectUI.py:1044 flatcamGUI/PreferencesUI.py:2505 +#: flatcamGUI/ObjectUI.py:1075 flatcamGUI/PreferencesUI.py:2507 msgid "Slot Tool dia" msgstr "" -#: flatcamGUI/ObjectUI.py:1046 flatcamGUI/PreferencesUI.py:2507 +#: flatcamGUI/ObjectUI.py:1077 flatcamGUI/PreferencesUI.py:2509 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: flatcamGUI/ObjectUI.py:1055 +#: flatcamGUI/ObjectUI.py:1086 msgid "Mill Slots Geo" msgstr "" -#: flatcamGUI/ObjectUI.py:1057 +#: flatcamGUI/ObjectUI.py:1088 msgid "" "Create the Geometry Object\n" "for milling SLOTS toolpaths." msgstr "" -#: flatcamGUI/ObjectUI.py:1078 flatcamTools/ToolCutOut.py:315 +#: flatcamGUI/ObjectUI.py:1115 flatcamTools/ToolCutOut.py:315 msgid "Geometry Object" msgstr "" -#: flatcamGUI/ObjectUI.py:1110 +#: flatcamGUI/ObjectUI.py:1147 msgid "" "Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -6870,28 +6935,28 @@ msgid "" "showed UI form entries named V-Tip Dia and V-Tip Angle." msgstr "" -#: flatcamGUI/ObjectUI.py:1127 flatcamGUI/ObjectUI.py:1771 flatcamGUI/PreferencesUI.py:3609 +#: flatcamGUI/ObjectUI.py:1164 flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3627 msgid "Plot Object" msgstr "" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 flatcamGUI/PreferencesUI.py:6154 -#: flatcamTools/ToolCopperThieving.py:220 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1876 +#: flatcamGUI/PreferencesUI.py:6172 flatcamTools/ToolCopperThieving.py:220 msgid "Dia" msgstr "" -#: flatcamGUI/ObjectUI.py:1141 flatcamGUI/ObjectUI.py:1784 +#: flatcamGUI/ObjectUI.py:1178 flatcamGUI/ObjectUI.py:1866 #: flatcamTools/ToolNonCopperClear.py:120 flatcamTools/ToolPaint.py:123 msgid "TT" msgstr "" -#: flatcamGUI/ObjectUI.py:1148 +#: flatcamGUI/ObjectUI.py:1185 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 "" -#: flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/ObjectUI.py:1196 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" @@ -6899,7 +6964,7 @@ msgid "" "- Out(side) -> The tool cut will follow the geometry line on the outside." msgstr "" -#: flatcamGUI/ObjectUI.py:1166 +#: flatcamGUI/ObjectUI.py:1203 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" @@ -6909,7 +6974,7 @@ msgid "" "For Isolation we need a lower Feedrate as it use a milling bit with a fine tip." msgstr "" -#: flatcamGUI/ObjectUI.py:1175 +#: flatcamGUI/ObjectUI.py:1212 msgid "" "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the cut width in " @@ -6925,7 +6990,7 @@ msgid "" "Choosing the V-Shape Tool Type automatically will select the Operation Type as Isolation." msgstr "" -#: flatcamGUI/ObjectUI.py:1187 +#: flatcamGUI/ObjectUI.py:1224 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries that holds " "the geometry\n" @@ -6936,7 +7001,7 @@ msgid "" "for the corresponding tool." msgstr "" -#: flatcamGUI/ObjectUI.py:1205 +#: flatcamGUI/ObjectUI.py:1242 msgid "" "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" @@ -6944,47 +7009,47 @@ msgid "" "cut and negative for 'inside' cut." msgstr "" -#: flatcamGUI/ObjectUI.py:1230 +#: flatcamGUI/ObjectUI.py:1267 msgid "" "Add a new tool to the Tool Table\n" "with the specified diameter." msgstr "" -#: flatcamGUI/ObjectUI.py:1238 +#: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" msgstr "" -#: flatcamGUI/ObjectUI.py:1240 +#: flatcamGUI/ObjectUI.py:1277 msgid "" "Add a new tool to the Tool Table\n" "from the Tool DataBase." msgstr "" -#: flatcamGUI/ObjectUI.py:1250 +#: flatcamGUI/ObjectUI.py:1287 msgid "" "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." msgstr "" -#: flatcamGUI/ObjectUI.py:1256 +#: flatcamGUI/ObjectUI.py:1293 msgid "" "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." msgstr "" -#: flatcamGUI/ObjectUI.py:1280 +#: flatcamGUI/ObjectUI.py:1317 msgid "" "The data used for creating GCode.\n" "Each tool store it's own set of such data." msgstr "" -#: flatcamGUI/ObjectUI.py:1350 flatcamGUI/PreferencesUI.py:3197 -#: flatcamGUI/PreferencesUI.py:4293 flatcamTools/ToolCutOut.py:153 +#: flatcamGUI/ObjectUI.py:1387 flatcamGUI/PreferencesUI.py:3199 +#: flatcamGUI/PreferencesUI.py:4311 flatcamTools/ToolCutOut.py:153 msgid "Multi-Depth" msgstr "" -#: flatcamGUI/ObjectUI.py:1353 flatcamGUI/PreferencesUI.py:3200 -#: flatcamGUI/PreferencesUI.py:4296 flatcamTools/ToolCutOut.py:156 +#: flatcamGUI/ObjectUI.py:1390 flatcamGUI/PreferencesUI.py:3202 +#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:156 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -6992,42 +7057,42 @@ msgid "" "reached." msgstr "" -#: flatcamGUI/ObjectUI.py:1367 flatcamGUI/PreferencesUI.py:4308 +#: flatcamGUI/ObjectUI.py:1404 flatcamGUI/PreferencesUI.py:4326 #: flatcamTools/ToolCutOut.py:170 msgid "Depth of each pass (positive)." msgstr "" -#: flatcamGUI/ObjectUI.py:1378 flatcamGUI/PreferencesUI.py:3232 +#: flatcamGUI/ObjectUI.py:1415 flatcamGUI/PreferencesUI.py:3234 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "" -#: flatcamGUI/ObjectUI.py:1405 flatcamGUI/PreferencesUI.py:3253 +#: flatcamGUI/ObjectUI.py:1442 flatcamGUI/PreferencesUI.py:3255 msgid "" "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." msgstr "" -#: flatcamGUI/ObjectUI.py:1455 flatcamGUI/PreferencesUI.py:3304 -#: flatcamGUI/PreferencesUI.py:5466 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/ObjectUI.py:1492 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/PreferencesUI.py:5484 flatcamTools/ToolSolderPaste.py:252 msgid "Feedrate X-Y" msgstr "" -#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3306 +#: flatcamGUI/ObjectUI.py:1494 flatcamGUI/PreferencesUI.py:3308 msgid "" "Cutting speed in the XY\n" "plane in units per minute" msgstr "" -#: flatcamGUI/ObjectUI.py:1471 flatcamGUI/PreferencesUI.py:3321 +#: flatcamGUI/ObjectUI.py:1508 flatcamGUI/PreferencesUI.py:3323 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3427 +#: flatcamGUI/ObjectUI.py:1523 flatcamGUI/PreferencesUI.py:3432 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -7036,11 +7101,12 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/ObjectUI.py:1504 flatcamGUI/PreferencesUI.py:3443 -msgid "Re-cut 1st pt." +#: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 +msgid "Re-cut" msgstr "" -#: flatcamGUI/ObjectUI.py:1506 flatcamGUI/PreferencesUI.py:3445 +#: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 flatcamGUI/PreferencesUI.py:3450 +#: flatcamGUI/PreferencesUI.py:3462 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -7048,54 +7114,54 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: flatcamGUI/ObjectUI.py:1517 flatcamGUI/PreferencesUI.py:3338 +#: flatcamGUI/ObjectUI.py:1569 flatcamGUI/PreferencesUI.py:3340 msgid "" "Speed of the spindle in RPM (optional).\n" "If LASER preprocessor is used,\n" "this value is the power of laser." msgstr "" -#: flatcamGUI/ObjectUI.py:1549 flatcamGUI/PreferencesUI.py:5555 +#: flatcamGUI/ObjectUI.py:1603 flatcamGUI/PreferencesUI.py:5573 #: flatcamTools/ToolSolderPaste.py:334 msgid "PostProcessor" msgstr "" -#: flatcamGUI/ObjectUI.py:1551 flatcamGUI/PreferencesUI.py:3372 +#: flatcamGUI/ObjectUI.py:1605 flatcamGUI/PreferencesUI.py:3377 msgid "" "The Preprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." msgstr "" -#: flatcamGUI/ObjectUI.py:1598 +#: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" msgstr "" -#: flatcamGUI/ObjectUI.py:1600 +#: flatcamGUI/ObjectUI.py:1654 msgid "" "The parameters in the current form will be applied\n" "on all the tools from the Tool Table." msgstr "" -#: flatcamGUI/ObjectUI.py:1609 +#: flatcamGUI/ObjectUI.py:1663 msgid "" "Add 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 "" -#: flatcamGUI/ObjectUI.py:1616 +#: flatcamGUI/ObjectUI.py:1670 msgid "Generate CNCJob object" msgstr "" -#: flatcamGUI/ObjectUI.py:1618 +#: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." msgstr "" -#: flatcamGUI/ObjectUI.py:1625 -msgid "Paint Area" +#: flatcamGUI/ObjectUI.py:1689 +msgid "Launch Paint Tool in Tools Tab." msgstr "" -#: flatcamGUI/ObjectUI.py:1628 flatcamGUI/PreferencesUI.py:4471 +#: flatcamGUI/ObjectUI.py:1697 flatcamGUI/PreferencesUI.py:4489 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -7103,19 +7169,15 @@ msgid "" "to click on the desired polygon." msgstr "" -#: flatcamGUI/ObjectUI.py:1639 -msgid "Launch Paint Tool in Tools Tab." -msgstr "" - -#: flatcamGUI/ObjectUI.py:1655 +#: flatcamGUI/ObjectUI.py:1737 msgid "CNC Job Object" msgstr "" -#: flatcamGUI/ObjectUI.py:1666 flatcamGUI/PreferencesUI.py:3614 +#: flatcamGUI/ObjectUI.py:1748 flatcamGUI/PreferencesUI.py:3632 msgid "Plot kind" msgstr "" -#: flatcamGUI/ObjectUI.py:1669 flatcamGUI/PreferencesUI.py:3616 +#: flatcamGUI/ObjectUI.py:1751 flatcamGUI/PreferencesUI.py:3634 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" @@ -7123,46 +7185,46 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: flatcamGUI/ObjectUI.py:1678 flatcamGUI/PreferencesUI.py:3624 +#: flatcamGUI/ObjectUI.py:1760 flatcamGUI/PreferencesUI.py:3642 msgid "Travel" msgstr "" -#: flatcamGUI/ObjectUI.py:1682 flatcamGUI/PreferencesUI.py:3633 +#: flatcamGUI/ObjectUI.py:1764 flatcamGUI/PreferencesUI.py:3651 msgid "Display Annotation" msgstr "" -#: flatcamGUI/ObjectUI.py:1684 flatcamGUI/PreferencesUI.py:3635 +#: flatcamGUI/ObjectUI.py:1766 flatcamGUI/PreferencesUI.py:3653 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 "" -#: flatcamGUI/ObjectUI.py:1699 +#: flatcamGUI/ObjectUI.py:1781 msgid "Travelled dist." msgstr "" -#: flatcamGUI/ObjectUI.py:1701 flatcamGUI/ObjectUI.py:1706 +#: flatcamGUI/ObjectUI.py:1783 flatcamGUI/ObjectUI.py:1788 msgid "" "This is the total travelled distance on X-Y plane.\n" "In current units." msgstr "" -#: flatcamGUI/ObjectUI.py:1711 +#: flatcamGUI/ObjectUI.py:1793 msgid "Estimated time" msgstr "" -#: flatcamGUI/ObjectUI.py:1713 flatcamGUI/ObjectUI.py:1718 +#: flatcamGUI/ObjectUI.py:1795 flatcamGUI/ObjectUI.py:1800 msgid "" "This is the estimated time to do the routing/drilling,\n" "without the time spent in ToolChange events." msgstr "" -#: flatcamGUI/ObjectUI.py:1753 +#: flatcamGUI/ObjectUI.py:1835 msgid "CNC Tools Table" msgstr "" -#: flatcamGUI/ObjectUI.py:1756 +#: flatcamGUI/ObjectUI.py:1838 msgid "" "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" @@ -7175,66 +7237,57 @@ msgid "" "ball(B), or V-Shaped(V)." msgstr "" -#: flatcamGUI/ObjectUI.py:1785 +#: flatcamGUI/ObjectUI.py:1866 flatcamGUI/ObjectUI.py:1877 msgid "P" msgstr "" -#: flatcamGUI/ObjectUI.py:1797 +#: flatcamGUI/ObjectUI.py:1887 msgid "Update Plot" msgstr "" -#: flatcamGUI/ObjectUI.py:1799 +#: flatcamGUI/ObjectUI.py:1889 msgid "Update the plot." msgstr "" -#: flatcamGUI/ObjectUI.py:1806 flatcamGUI/PreferencesUI.py:3801 +#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3819 msgid "Export CNC Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1808 flatcamGUI/PreferencesUI.py:3742 -#: flatcamGUI/PreferencesUI.py:3803 +#: flatcamGUI/ObjectUI.py:1898 flatcamGUI/PreferencesUI.py:3760 +#: flatcamGUI/PreferencesUI.py:3821 msgid "" "Export and save G-Code to\n" "make this object to a file." msgstr "" -#: flatcamGUI/ObjectUI.py:1814 +#: flatcamGUI/ObjectUI.py:1904 msgid "Prepend to CNC Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1816 flatcamGUI/PreferencesUI.py:3758 +#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3776 +#: flatcamGUI/PreferencesUI.py:3783 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." msgstr "" -#: flatcamGUI/ObjectUI.py:1823 flatcamGUI/PreferencesUI.py:3765 -msgid "" -"Type here any G-Code commands you would like to add at the beginning of the G-Code file." -msgstr "" - -#: flatcamGUI/ObjectUI.py:1829 +#: flatcamGUI/ObjectUI.py:1919 msgid "Append to CNC Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1831 flatcamGUI/PreferencesUI.py:3774 +#: flatcamGUI/ObjectUI.py:1921 flatcamGUI/ObjectUI.py:1929 flatcamGUI/PreferencesUI.py:3792 +#: flatcamGUI/PreferencesUI.py:3800 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 "" -#: flatcamGUI/ObjectUI.py:1839 flatcamGUI/PreferencesUI.py:3782 -msgid "" -"Type here any G-Code commands you would like to append to the generated file. I.e.: M2 " -"(End of program)" -msgstr "" - -#: flatcamGUI/ObjectUI.py:1853 flatcamGUI/PreferencesUI.py:3809 +#: flatcamGUI/ObjectUI.py:1943 flatcamGUI/PreferencesUI.py:3827 msgid "Toolchange G-Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1856 flatcamGUI/PreferencesUI.py:3812 +#: flatcamGUI/ObjectUI.py:1946 flatcamGUI/PreferencesUI.py:3830 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -7247,183 +7300,185 @@ msgid "" "having as template the 'Toolchange Custom' posprocessor file." msgstr "" -#: flatcamGUI/ObjectUI.py:1871 flatcamGUI/PreferencesUI.py:3835 +#: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 msgid "" -"Type here any G-Code commands you would like to be executed when Toolchange event is " -"encountered. This will constitute a Custom Toolchange GCode, or a Toolchange Macro. 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." +"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 "" -#: flatcamGUI/ObjectUI.py:1886 flatcamGUI/PreferencesUI.py:3851 +#: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" msgstr "" -#: flatcamGUI/ObjectUI.py:1888 flatcamGUI/PreferencesUI.py:3853 +#: flatcamGUI/ObjectUI.py:1978 flatcamGUI/PreferencesUI.py:3871 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: flatcamGUI/ObjectUI.py:1896 flatcamGUI/PreferencesUI.py:3865 +#: flatcamGUI/ObjectUI.py:1986 flatcamGUI/PreferencesUI.py:3883 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 "" -#: flatcamGUI/ObjectUI.py:1903 flatcamGUI/PreferencesUI.py:1851 -#: flatcamGUI/PreferencesUI.py:2822 flatcamGUI/PreferencesUI.py:3551 -#: flatcamGUI/PreferencesUI.py:3872 flatcamGUI/PreferencesUI.py:3954 -#: flatcamGUI/PreferencesUI.py:4246 flatcamGUI/PreferencesUI.py:4405 -#: flatcamGUI/PreferencesUI.py:4627 flatcamGUI/PreferencesUI.py:4924 -#: flatcamGUI/PreferencesUI.py:5175 flatcamGUI/PreferencesUI.py:5351 -#: flatcamGUI/PreferencesUI.py:5576 flatcamGUI/PreferencesUI.py:5598 -#: flatcamGUI/PreferencesUI.py:5822 flatcamGUI/PreferencesUI.py:5859 -#: flatcamGUI/PreferencesUI.py:6053 flatcamGUI/PreferencesUI.py:6307 -#: flatcamGUI/PreferencesUI.py:6423 flatcamTools/ToolCopperThieving.py:89 +#: flatcamGUI/ObjectUI.py:1993 flatcamGUI/PreferencesUI.py:1851 +#: flatcamGUI/PreferencesUI.py:2824 flatcamGUI/PreferencesUI.py:3569 +#: flatcamGUI/PreferencesUI.py:3890 flatcamGUI/PreferencesUI.py:3972 +#: flatcamGUI/PreferencesUI.py:4264 flatcamGUI/PreferencesUI.py:4423 +#: flatcamGUI/PreferencesUI.py:4645 flatcamGUI/PreferencesUI.py:4942 +#: flatcamGUI/PreferencesUI.py:5193 flatcamGUI/PreferencesUI.py:5369 +#: flatcamGUI/PreferencesUI.py:5594 flatcamGUI/PreferencesUI.py:5616 +#: flatcamGUI/PreferencesUI.py:5840 flatcamGUI/PreferencesUI.py:5877 +#: flatcamGUI/PreferencesUI.py:6071 flatcamGUI/PreferencesUI.py:6325 +#: flatcamGUI/PreferencesUI.py:6441 flatcamTools/ToolCopperThieving.py:89 #: flatcamTools/ToolFiducials.py:149 flatcamTools/ToolNonCopperClear.py:315 msgid "Parameters" msgstr "" -#: flatcamGUI/ObjectUI.py:1906 flatcamGUI/PreferencesUI.py:3875 +#: flatcamGUI/ObjectUI.py:1996 flatcamGUI/PreferencesUI.py:3893 msgid "FlatCAM CNC parameters" msgstr "" -#: flatcamGUI/ObjectUI.py:1907 flatcamGUI/PreferencesUI.py:3876 +#: flatcamGUI/ObjectUI.py:1997 flatcamGUI/PreferencesUI.py:3894 msgid "tool number" msgstr "" -#: flatcamGUI/ObjectUI.py:1908 flatcamGUI/PreferencesUI.py:3877 +#: flatcamGUI/ObjectUI.py:1998 flatcamGUI/PreferencesUI.py:3895 msgid "tool diameter" msgstr "" -#: flatcamGUI/ObjectUI.py:1909 flatcamGUI/PreferencesUI.py:3878 +#: flatcamGUI/ObjectUI.py:1999 flatcamGUI/PreferencesUI.py:3896 msgid "for Excellon, total number of drills" msgstr "" -#: flatcamGUI/ObjectUI.py:1911 flatcamGUI/PreferencesUI.py:3880 +#: flatcamGUI/ObjectUI.py:2001 flatcamGUI/PreferencesUI.py:3898 msgid "X coord for Toolchange" msgstr "" -#: flatcamGUI/ObjectUI.py:1912 flatcamGUI/PreferencesUI.py:3881 +#: flatcamGUI/ObjectUI.py:2002 flatcamGUI/PreferencesUI.py:3899 msgid "Y coord for Toolchange" msgstr "" -#: flatcamGUI/ObjectUI.py:1913 flatcamGUI/PreferencesUI.py:3883 +#: flatcamGUI/ObjectUI.py:2003 flatcamGUI/PreferencesUI.py:3901 msgid "Z coord for Toolchange" msgstr "" -#: flatcamGUI/ObjectUI.py:1914 +#: flatcamGUI/ObjectUI.py:2004 msgid "depth where to cut" msgstr "" -#: flatcamGUI/ObjectUI.py:1915 +#: flatcamGUI/ObjectUI.py:2005 msgid "height where to travel" msgstr "" -#: flatcamGUI/ObjectUI.py:1916 flatcamGUI/PreferencesUI.py:3886 +#: flatcamGUI/ObjectUI.py:2006 flatcamGUI/PreferencesUI.py:3904 msgid "the step value for multidepth cut" msgstr "" -#: flatcamGUI/ObjectUI.py:1918 flatcamGUI/PreferencesUI.py:3888 +#: flatcamGUI/ObjectUI.py:2008 flatcamGUI/PreferencesUI.py:3906 msgid "the value for the spindle speed" msgstr "" -#: flatcamGUI/ObjectUI.py:1920 +#: flatcamGUI/ObjectUI.py:2010 msgid "time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/ObjectUI.py:1936 +#: flatcamGUI/ObjectUI.py:2026 msgid "View CNC Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1938 +#: flatcamGUI/ObjectUI.py:2028 msgid "" "Opens TAB to view/modify/print G-Code\n" "file." msgstr "" -#: flatcamGUI/ObjectUI.py:1943 +#: flatcamGUI/ObjectUI.py:2033 msgid "Save CNC Code" msgstr "" -#: flatcamGUI/ObjectUI.py:1945 +#: flatcamGUI/ObjectUI.py:2035 msgid "" "Opens dialog to save G-Code\n" "file." msgstr "" -#: flatcamGUI/ObjectUI.py:1965 +#: flatcamGUI/ObjectUI.py:2055 msgid "Script Object" msgstr "" -#: flatcamGUI/ObjectUI.py:1987 flatcamGUI/ObjectUI.py:2049 +#: flatcamGUI/ObjectUI.py:2077 flatcamGUI/ObjectUI.py:2139 msgid "Auto Completer" msgstr "" -#: flatcamGUI/ObjectUI.py:1989 +#: flatcamGUI/ObjectUI.py:2079 msgid "This selects if the auto completer is enabled in the Script Editor." msgstr "" -#: flatcamGUI/ObjectUI.py:2020 +#: flatcamGUI/ObjectUI.py:2110 msgid "Document Object" msgstr "" -#: flatcamGUI/ObjectUI.py:2051 +#: flatcamGUI/ObjectUI.py:2141 msgid "This selects if the auto completer is enabled in the Document Editor." msgstr "" -#: flatcamGUI/ObjectUI.py:2069 +#: flatcamGUI/ObjectUI.py:2159 msgid "Font Type" msgstr "" -#: flatcamGUI/ObjectUI.py:2086 +#: flatcamGUI/ObjectUI.py:2176 msgid "Font Size" msgstr "" -#: flatcamGUI/ObjectUI.py:2122 +#: flatcamGUI/ObjectUI.py:2212 msgid "Alignment" msgstr "" -#: flatcamGUI/ObjectUI.py:2127 +#: flatcamGUI/ObjectUI.py:2217 msgid "Align Left" msgstr "" -#: flatcamGUI/ObjectUI.py:2132 +#: flatcamGUI/ObjectUI.py:2222 msgid "Center" msgstr "" -#: flatcamGUI/ObjectUI.py:2137 +#: flatcamGUI/ObjectUI.py:2227 msgid "Align Right" msgstr "" -#: flatcamGUI/ObjectUI.py:2142 +#: flatcamGUI/ObjectUI.py:2232 msgid "Justify" msgstr "" -#: flatcamGUI/ObjectUI.py:2149 +#: flatcamGUI/ObjectUI.py:2239 msgid "Font Color" msgstr "" -#: flatcamGUI/ObjectUI.py:2151 +#: flatcamGUI/ObjectUI.py:2241 msgid "Set the font color for the selected text" msgstr "" -#: flatcamGUI/ObjectUI.py:2165 +#: flatcamGUI/ObjectUI.py:2255 msgid "Selection Color" msgstr "" -#: flatcamGUI/ObjectUI.py:2167 +#: flatcamGUI/ObjectUI.py:2257 msgid "Set the selection color when doing text selection." msgstr "" -#: flatcamGUI/ObjectUI.py:2181 +#: flatcamGUI/ObjectUI.py:2271 msgid "Tab Size" msgstr "" -#: flatcamGUI/ObjectUI.py:2183 +#: flatcamGUI/ObjectUI.py:2273 msgid "Set the tab size. In pixels. Default value is 80 pixels." msgstr "" @@ -7481,19 +7536,20 @@ msgstr "" msgid "Wk. Orientation" msgstr "" -#: flatcamGUI/PreferencesUI.py:430 flatcamTools/ToolFilm.py:420 +#: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 +#: flatcamTools/ToolFilm.py:420 msgid "" "Can be:\n" "- Portrait\n" "- Landscape" msgstr "" -#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4839 +#: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" msgstr "" -#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4840 +#: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" msgstr "" @@ -7834,7 +7890,7 @@ msgid "App Preferences" msgstr "" #: flatcamGUI/PreferencesUI.py:1063 flatcamGUI/PreferencesUI.py:1388 -#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2684 +#: flatcamGUI/PreferencesUI.py:1763 flatcamGUI/PreferencesUI.py:2686 #: flatcamTools/ToolDistance.py:49 flatcamTools/ToolDistanceMin.py:49 #: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:152 msgid "Units" @@ -7849,7 +7905,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1067 flatcamGUI/PreferencesUI.py:1394 #: flatcamGUI/PreferencesUI.py:1769 flatcamGUI/PreferencesUI.py:2223 -#: flatcamGUI/PreferencesUI.py:2690 flatcamTools/ToolCalculators.py:62 +#: flatcamGUI/PreferencesUI.py:2692 flatcamTools/ToolCalculators.py:62 #: flatcamTools/ToolPcbWizard.py:126 msgid "MM" msgstr "" @@ -8096,8 +8152,12 @@ msgstr "" msgid "Gerber General" msgstr "" -#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3126 -#: flatcamGUI/PreferencesUI.py:3646 flatcamGUI/PreferencesUI.py:6061 +#: flatcamGUI/PreferencesUI.py:1351 +msgid "M-Color" +msgstr "" + +#: flatcamGUI/PreferencesUI.py:1365 flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3664 flatcamGUI/PreferencesUI.py:6079 msgid "Circle Steps" msgstr "" @@ -8124,13 +8184,13 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1393 flatcamGUI/PreferencesUI.py:1768 #: flatcamGUI/PreferencesUI.py:2124 flatcamGUI/PreferencesUI.py:2222 -#: flatcamGUI/PreferencesUI.py:2689 flatcamTools/ToolCalculators.py:61 +#: flatcamGUI/PreferencesUI.py:2691 flatcamTools/ToolCalculators.py:61 #: flatcamTools/ToolPcbWizard.py:125 msgid "INCH" msgstr "" #: flatcamGUI/PreferencesUI.py:1403 flatcamGUI/PreferencesUI.py:1817 -#: flatcamGUI/PreferencesUI.py:2757 +#: flatcamGUI/PreferencesUI.py:2759 msgid "Zeros" msgstr "" @@ -8145,13 +8205,13 @@ msgid "" msgstr "" #: flatcamGUI/PreferencesUI.py:1413 flatcamGUI/PreferencesUI.py:1827 -#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2767 +#: flatcamGUI/PreferencesUI.py:2198 flatcamGUI/PreferencesUI.py:2769 #: flatcamTools/ToolPcbWizard.py:111 msgid "LZ" msgstr "" #: flatcamGUI/PreferencesUI.py:1414 flatcamGUI/PreferencesUI.py:1828 -#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2768 +#: flatcamGUI/PreferencesUI.py:2199 flatcamGUI/PreferencesUI.py:2770 #: flatcamTools/ToolPcbWizard.py:112 msgid "TZ" msgstr "" @@ -8160,8 +8220,8 @@ msgstr "" msgid "Gerber Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3583 -#: flatcamGUI/PreferencesUI.py:4057 flatcamTools/ToolNonCopperClear.py:170 +#: flatcamGUI/PreferencesUI.py:1509 flatcamGUI/PreferencesUI.py:3601 +#: flatcamGUI/PreferencesUI.py:4075 flatcamTools/ToolNonCopperClear.py:170 msgid "Conv." msgstr "" @@ -8173,8 +8233,8 @@ msgstr "" msgid "Gerber Adv. Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2542 -#: flatcamGUI/PreferencesUI.py:3394 +#: flatcamGUI/PreferencesUI.py:1595 flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:3399 msgid "Advanced Options" msgstr "" @@ -8212,8 +8272,8 @@ msgid "" "<>: Don't change this unless you know what you are doing !!!" msgstr "" -#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4803 -#: flatcamGUI/PreferencesUI.py:6359 flatcamTools/ToolFiducials.py:201 +#: flatcamGUI/PreferencesUI.py:1707 flatcamGUI/PreferencesUI.py:4821 +#: flatcamGUI/PreferencesUI.py:6377 flatcamTools/ToolFiducials.py:201 #: flatcamTools/ToolFilm.py:255 flatcamTools/ToolProperties.py:411 #: flatcamTools/ToolProperties.py:426 flatcamTools/ToolProperties.py:429 #: flatcamTools/ToolProperties.py:432 flatcamTools/ToolProperties.py:456 @@ -8243,7 +8303,7 @@ msgstr "" msgid "Gerber Export" msgstr "" -#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2673 +#: flatcamGUI/PreferencesUI.py:1752 flatcamGUI/PreferencesUI.py:2675 msgid "Export Options" msgstr "" @@ -8253,7 +8313,7 @@ msgid "" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2698 +#: flatcamGUI/PreferencesUI.py:1777 flatcamGUI/PreferencesUI.py:2700 msgid "Int/Decimals" msgstr "" @@ -8279,8 +8339,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "" -#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2832 -#: flatcamGUI/PreferencesUI.py:3561 flatcamGUI/PreferencesUI.py:6022 +#: flatcamGUI/PreferencesUI.py:1861 flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:3579 flatcamGUI/PreferencesUI.py:6040 msgid "Selection limit" msgstr "" @@ -8319,8 +8379,8 @@ msgstr "" msgid "Aperture Dimensions" msgstr "" -#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3144 -#: flatcamGUI/PreferencesUI.py:3966 +#: flatcamGUI/PreferencesUI.py:1928 flatcamGUI/PreferencesUI.py:3146 +#: flatcamGUI/PreferencesUI.py:3984 msgid "Diameters of the cutting tools, separated by ','" msgstr "" @@ -8328,8 +8388,8 @@ msgstr "" msgid "Linear Pad Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2876 -#: flatcamGUI/PreferencesUI.py:3024 +#: flatcamGUI/PreferencesUI.py:1938 flatcamGUI/PreferencesUI.py:2878 +#: flatcamGUI/PreferencesUI.py:3026 msgid "Linear Direction" msgstr "" @@ -8337,20 +8397,20 @@ msgstr "" msgid "Circular Pad Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2922 -#: flatcamGUI/PreferencesUI.py:3072 +#: flatcamGUI/PreferencesUI.py:1982 flatcamGUI/PreferencesUI.py:2924 +#: flatcamGUI/PreferencesUI.py:3074 msgid "Circular Direction" msgstr "" -#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2924 -#: flatcamGUI/PreferencesUI.py:3074 +#: flatcamGUI/PreferencesUI.py:1984 flatcamGUI/PreferencesUI.py:2926 +#: flatcamGUI/PreferencesUI.py:3076 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." msgstr "" -#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2935 -#: flatcamGUI/PreferencesUI.py:3085 +#: flatcamGUI/PreferencesUI.py:1995 flatcamGUI/PreferencesUI.py:2937 +#: flatcamGUI/PreferencesUI.py:3087 msgid "Circular Angle" msgstr "" @@ -8418,14 +8478,14 @@ msgid "Default values for INCH are 2:4" msgstr "" #: flatcamGUI/PreferencesUI.py:2134 flatcamGUI/PreferencesUI.py:2165 -#: flatcamGUI/PreferencesUI.py:2712 +#: flatcamGUI/PreferencesUI.py:2714 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" #: flatcamGUI/PreferencesUI.py:2147 flatcamGUI/PreferencesUI.py:2178 -#: flatcamGUI/PreferencesUI.py:2725 +#: flatcamGUI/PreferencesUI.py:2727 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -8443,7 +8503,7 @@ msgstr "" msgid "Default Zeros" msgstr "" -#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2760 +#: flatcamGUI/PreferencesUI.py:2190 flatcamGUI/PreferencesUI.py:2762 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -8536,11 +8596,11 @@ msgid "" "for this drill object." msgstr "" -#: flatcamGUI/PreferencesUI.py:2442 flatcamGUI/PreferencesUI.py:3353 +#: flatcamGUI/PreferencesUI.py:2444 flatcamGUI/PreferencesUI.py:3358 msgid "Duration" msgstr "" -#: flatcamGUI/PreferencesUI.py:2472 +#: flatcamGUI/PreferencesUI.py:2474 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -8548,38 +8608,38 @@ msgid "" "converted to drills." msgstr "" -#: flatcamGUI/PreferencesUI.py:2490 +#: flatcamGUI/PreferencesUI.py:2492 msgid "Create Geometry for milling holes." msgstr "" -#: flatcamGUI/PreferencesUI.py:2522 +#: flatcamGUI/PreferencesUI.py:2524 msgid "Defaults" msgstr "" -#: flatcamGUI/PreferencesUI.py:2535 +#: flatcamGUI/PreferencesUI.py:2537 msgid "Excellon Adv. Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:2544 +#: flatcamGUI/PreferencesUI.py:2546 msgid "" "A list of Excellon advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: flatcamGUI/PreferencesUI.py:2565 +#: flatcamGUI/PreferencesUI.py:2567 msgid "Toolchange X,Y" msgstr "" -#: flatcamGUI/PreferencesUI.py:2567 flatcamGUI/PreferencesUI.py:3408 +#: flatcamGUI/PreferencesUI.py:2569 flatcamGUI/PreferencesUI.py:3413 msgid "Toolchange X,Y position." msgstr "" -#: flatcamGUI/PreferencesUI.py:2624 flatcamGUI/PreferencesUI.py:3482 +#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 msgid "Spindle direction" msgstr "" -#: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3484 +#: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -8587,11 +8647,11 @@ msgid "" "- CCW = counter clockwise" msgstr "" -#: flatcamGUI/PreferencesUI.py:2637 flatcamGUI/PreferencesUI.py:3496 +#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3514 msgid "Fast Plunge" msgstr "" -#: flatcamGUI/PreferencesUI.py:2639 flatcamGUI/PreferencesUI.py:3498 +#: flatcamGUI/PreferencesUI.py:2641 flatcamGUI/PreferencesUI.py:3516 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -8599,11 +8659,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: flatcamGUI/PreferencesUI.py:2648 +#: flatcamGUI/PreferencesUI.py:2650 msgid "Fast Retract" msgstr "" -#: flatcamGUI/PreferencesUI.py:2650 +#: flatcamGUI/PreferencesUI.py:2652 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -8613,21 +8673,21 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: flatcamGUI/PreferencesUI.py:2669 +#: flatcamGUI/PreferencesUI.py:2671 msgid "Excellon Export" msgstr "" -#: flatcamGUI/PreferencesUI.py:2675 +#: flatcamGUI/PreferencesUI.py:2677 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: flatcamGUI/PreferencesUI.py:2686 flatcamGUI/PreferencesUI.py:2692 +#: flatcamGUI/PreferencesUI.py:2688 flatcamGUI/PreferencesUI.py:2694 msgid "The units used in the Excellon file." msgstr "" -#: flatcamGUI/PreferencesUI.py:2700 +#: flatcamGUI/PreferencesUI.py:2702 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -8635,11 +8695,11 @@ msgid "" "coordinates are not using period." msgstr "" -#: flatcamGUI/PreferencesUI.py:2734 +#: flatcamGUI/PreferencesUI.py:2736 msgid "Format" msgstr "" -#: flatcamGUI/PreferencesUI.py:2736 flatcamGUI/PreferencesUI.py:2746 +#: flatcamGUI/PreferencesUI.py:2738 flatcamGUI/PreferencesUI.py:2748 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -8649,15 +8709,15 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: flatcamGUI/PreferencesUI.py:2743 +#: flatcamGUI/PreferencesUI.py:2745 msgid "Decimal" msgstr "" -#: flatcamGUI/PreferencesUI.py:2744 +#: flatcamGUI/PreferencesUI.py:2746 msgid "No-Decimal" msgstr "" -#: flatcamGUI/PreferencesUI.py:2770 +#: flatcamGUI/PreferencesUI.py:2772 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -8666,11 +8726,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/PreferencesUI.py:2780 +#: flatcamGUI/PreferencesUI.py:2782 msgid "Slot type" msgstr "" -#: flatcamGUI/PreferencesUI.py:2783 flatcamGUI/PreferencesUI.py:2793 +#: flatcamGUI/PreferencesUI.py:2785 flatcamGUI/PreferencesUI.py:2795 msgid "" "This sets how the slots will be exported.\n" "If ROUTED then the slots will be routed\n" @@ -8679,19 +8739,19 @@ msgid "" "using the Drilled slot command (G85)." msgstr "" -#: flatcamGUI/PreferencesUI.py:2790 +#: flatcamGUI/PreferencesUI.py:2792 msgid "Routed" msgstr "" -#: flatcamGUI/PreferencesUI.py:2791 +#: flatcamGUI/PreferencesUI.py:2793 msgid "Drilled(G85)" msgstr "" -#: flatcamGUI/PreferencesUI.py:2824 +#: flatcamGUI/PreferencesUI.py:2826 msgid "A list of Excellon Editor parameters." msgstr "" -#: flatcamGUI/PreferencesUI.py:2834 +#: flatcamGUI/PreferencesUI.py:2836 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -8700,19 +8760,19 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/PreferencesUI.py:2847 flatcamGUI/PreferencesUI.py:4037 +#: flatcamGUI/PreferencesUI.py:2849 flatcamGUI/PreferencesUI.py:4055 msgid "New Tool Dia" msgstr "" -#: flatcamGUI/PreferencesUI.py:2872 +#: flatcamGUI/PreferencesUI.py:2874 msgid "Linear Drill Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:2918 +#: flatcamGUI/PreferencesUI.py:2920 msgid "Circular Drill Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:2988 +#: flatcamGUI/PreferencesUI.py:2990 msgid "" "Angle at which the slot is placed.\n" "The precision is of max 2 decimals.\n" @@ -8720,40 +8780,40 @@ msgid "" "Max value is: 360.00 degrees." msgstr "" -#: flatcamGUI/PreferencesUI.py:3007 +#: flatcamGUI/PreferencesUI.py:3009 msgid "Linear Slot Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:3068 +#: flatcamGUI/PreferencesUI.py:3070 msgid "Circular Slot Array" msgstr "" -#: flatcamGUI/PreferencesUI.py:3106 +#: flatcamGUI/PreferencesUI.py:3108 msgid "Geometry General" msgstr "" -#: flatcamGUI/PreferencesUI.py:3128 +#: flatcamGUI/PreferencesUI.py:3130 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/PreferencesUI.py:3159 +#: flatcamGUI/PreferencesUI.py:3161 msgid "Geometry Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:3167 +#: flatcamGUI/PreferencesUI.py:3169 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" "Geometry object." msgstr "" -#: flatcamGUI/PreferencesUI.py:3209 +#: flatcamGUI/PreferencesUI.py:3211 msgid "Depth/Pass" msgstr "" -#: flatcamGUI/PreferencesUI.py:3211 +#: flatcamGUI/PreferencesUI.py:3213 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -8762,59 +8822,60 @@ msgid "" "which has negative value." msgstr "" -#: flatcamGUI/PreferencesUI.py:3388 +#: flatcamGUI/PreferencesUI.py:3393 msgid "Geometry Adv. Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:3396 +#: flatcamGUI/PreferencesUI.py:3401 msgid "" "A list of Geometry advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level." msgstr "" -#: flatcamGUI/PreferencesUI.py:3406 flatcamGUI/PreferencesUI.py:5452 +#: flatcamGUI/PreferencesUI.py:3411 flatcamGUI/PreferencesUI.py:5470 +#: flatcamGUI/PreferencesUI.py:6517 flatcamTools/ToolCalibration.py:125 #: flatcamTools/ToolSolderPaste.py:239 msgid "Toolchange X-Y" msgstr "" -#: flatcamGUI/PreferencesUI.py:3417 +#: flatcamGUI/PreferencesUI.py:3422 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/PreferencesUI.py:3508 +#: flatcamGUI/PreferencesUI.py:3526 msgid "Segment X size" msgstr "" -#: flatcamGUI/PreferencesUI.py:3510 +#: flatcamGUI/PreferencesUI.py:3528 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 "" -#: flatcamGUI/PreferencesUI.py:3524 +#: flatcamGUI/PreferencesUI.py:3542 msgid "Segment Y size" msgstr "" -#: flatcamGUI/PreferencesUI.py:3526 +#: flatcamGUI/PreferencesUI.py:3544 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 "" -#: flatcamGUI/PreferencesUI.py:3547 +#: flatcamGUI/PreferencesUI.py:3565 msgid "Geometry Editor" msgstr "" -#: flatcamGUI/PreferencesUI.py:3553 +#: flatcamGUI/PreferencesUI.py:3571 msgid "A list of Geometry Editor parameters." msgstr "" -#: flatcamGUI/PreferencesUI.py:3563 flatcamGUI/PreferencesUI.py:6024 +#: flatcamGUI/PreferencesUI.py:3581 flatcamGUI/PreferencesUI.py:6042 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -8823,51 +8884,51 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/PreferencesUI.py:3595 +#: flatcamGUI/PreferencesUI.py:3613 msgid "CNC Job General" msgstr "" -#: flatcamGUI/PreferencesUI.py:3648 +#: flatcamGUI/PreferencesUI.py:3666 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/PreferencesUI.py:3657 +#: flatcamGUI/PreferencesUI.py:3675 msgid "Travel dia" msgstr "" -#: flatcamGUI/PreferencesUI.py:3659 +#: flatcamGUI/PreferencesUI.py:3677 msgid "" "The width of the travel lines to be\n" "rendered in the plot." msgstr "" -#: flatcamGUI/PreferencesUI.py:3675 +#: flatcamGUI/PreferencesUI.py:3693 msgid "Coordinates decimals" msgstr "" -#: flatcamGUI/PreferencesUI.py:3677 +#: flatcamGUI/PreferencesUI.py:3695 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/PreferencesUI.py:3688 +#: flatcamGUI/PreferencesUI.py:3706 msgid "Feedrate decimals" msgstr "" -#: flatcamGUI/PreferencesUI.py:3690 +#: flatcamGUI/PreferencesUI.py:3708 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/PreferencesUI.py:3701 +#: flatcamGUI/PreferencesUI.py:3719 msgid "Coordinates type" msgstr "" -#: flatcamGUI/PreferencesUI.py:3703 +#: flatcamGUI/PreferencesUI.py:3721 msgid "" "The type of coordinates to be used in Gcode.\n" "Can be:\n" @@ -8875,81 +8936,81 @@ msgid "" "- Incremental G91 -> the reference is the previous position" msgstr "" -#: flatcamGUI/PreferencesUI.py:3709 +#: flatcamGUI/PreferencesUI.py:3727 msgid "Absolute G90" msgstr "" -#: flatcamGUI/PreferencesUI.py:3710 +#: flatcamGUI/PreferencesUI.py:3728 msgid "Incremental G91" msgstr "" -#: flatcamGUI/PreferencesUI.py:3720 +#: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" msgstr "" -#: flatcamGUI/PreferencesUI.py:3722 +#: flatcamGUI/PreferencesUI.py:3740 msgid "" "When checked will force a Windows style line-ending\n" "(\\r\\n) on non-Windows OS's." msgstr "" -#: flatcamGUI/PreferencesUI.py:3736 +#: flatcamGUI/PreferencesUI.py:3754 msgid "CNC Job Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:3740 +#: flatcamGUI/PreferencesUI.py:3758 msgid "Export G-Code" msgstr "" -#: flatcamGUI/PreferencesUI.py:3756 +#: flatcamGUI/PreferencesUI.py:3774 msgid "Prepend to G-Code" msgstr "" -#: flatcamGUI/PreferencesUI.py:3772 +#: flatcamGUI/PreferencesUI.py:3790 msgid "Append to G-Code" msgstr "" -#: flatcamGUI/PreferencesUI.py:3798 +#: flatcamGUI/PreferencesUI.py:3816 msgid "CNC Job Adv. Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:3884 +#: flatcamGUI/PreferencesUI.py:3902 msgid "Z depth for the cut" msgstr "" -#: flatcamGUI/PreferencesUI.py:3885 +#: flatcamGUI/PreferencesUI.py:3903 msgid "Z height for travel" msgstr "" -#: flatcamGUI/PreferencesUI.py:3891 +#: flatcamGUI/PreferencesUI.py:3909 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/PreferencesUI.py:3910 +#: flatcamGUI/PreferencesUI.py:3928 msgid "Annotation Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:3912 +#: flatcamGUI/PreferencesUI.py:3930 msgid "The font size of the annotation text. In pixels." msgstr "" -#: flatcamGUI/PreferencesUI.py:3922 +#: flatcamGUI/PreferencesUI.py:3940 msgid "Annotation Color" msgstr "" -#: flatcamGUI/PreferencesUI.py:3924 +#: flatcamGUI/PreferencesUI.py:3942 msgid "Set the font color for the annotation texts." msgstr "" -#: flatcamGUI/PreferencesUI.py:3950 +#: flatcamGUI/PreferencesUI.py:3968 msgid "NCC Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:3964 flatcamGUI/PreferencesUI.py:5362 +#: flatcamGUI/PreferencesUI.py:3982 flatcamGUI/PreferencesUI.py:5380 msgid "Tools dia" msgstr "" -#: flatcamGUI/PreferencesUI.py:3975 flatcamGUI/PreferencesUI.py:3983 +#: flatcamGUI/PreferencesUI.py:3993 flatcamGUI/PreferencesUI.py:4001 #: flatcamTools/ToolNonCopperClear.py:215 flatcamTools/ToolNonCopperClear.py:223 msgid "" "Default tool type:\n" @@ -8957,22 +9018,22 @@ msgid "" "- Circular" msgstr "" -#: flatcamGUI/PreferencesUI.py:3980 flatcamTools/ToolNonCopperClear.py:220 +#: flatcamGUI/PreferencesUI.py:3998 flatcamTools/ToolNonCopperClear.py:220 msgid "V-shape" msgstr "" -#: flatcamGUI/PreferencesUI.py:4020 flatcamGUI/PreferencesUI.py:4029 +#: flatcamGUI/PreferencesUI.py:4038 flatcamGUI/PreferencesUI.py:4047 #: flatcamTools/ToolNonCopperClear.py:256 flatcamTools/ToolNonCopperClear.py:264 msgid "" "Depth of cut into material. Negative value.\n" "In FlatCAM units." msgstr "" -#: flatcamGUI/PreferencesUI.py:4039 +#: flatcamGUI/PreferencesUI.py:4057 msgid "The new tool diameter (cut width) to add in the tool table." msgstr "" -#: flatcamGUI/PreferencesUI.py:4051 flatcamGUI/PreferencesUI.py:4059 +#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 flatcamTools/ToolNonCopperClear.py:172 msgid "" "Milling type when the selected tool is of type: 'iso_op':\n" @@ -8980,13 +9041,13 @@ msgid "" "- conventional / useful when there is no backlash compensation" msgstr "" -#: flatcamGUI/PreferencesUI.py:4068 flatcamGUI/PreferencesUI.py:4493 +#: flatcamGUI/PreferencesUI.py:4086 flatcamGUI/PreferencesUI.py:4511 #: flatcamTools/ToolNonCopperClear.py:181 flatcamTools/ToolPaint.py:153 msgid "Tool order" msgstr "" -#: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4079 -#: flatcamGUI/PreferencesUI.py:4494 flatcamGUI/PreferencesUI.py:4504 +#: flatcamGUI/PreferencesUI.py:4087 flatcamGUI/PreferencesUI.py:4097 +#: flatcamGUI/PreferencesUI.py:4512 flatcamGUI/PreferencesUI.py:4522 #: flatcamTools/ToolNonCopperClear.py:182 flatcamTools/ToolNonCopperClear.py:192 #: flatcamTools/ToolPaint.py:154 flatcamTools/ToolPaint.py:164 msgid "" @@ -8999,17 +9060,17 @@ msgid "" "in reverse and disable this control." msgstr "" -#: flatcamGUI/PreferencesUI.py:4077 flatcamGUI/PreferencesUI.py:4502 +#: flatcamGUI/PreferencesUI.py:4095 flatcamGUI/PreferencesUI.py:4520 #: flatcamTools/ToolNonCopperClear.py:190 flatcamTools/ToolPaint.py:162 msgid "Forward" msgstr "" -#: flatcamGUI/PreferencesUI.py:4078 flatcamGUI/PreferencesUI.py:4503 +#: flatcamGUI/PreferencesUI.py:4096 flatcamGUI/PreferencesUI.py:4521 #: flatcamTools/ToolNonCopperClear.py:191 flatcamTools/ToolPaint.py:163 msgid "Reverse" msgstr "" -#: flatcamGUI/PreferencesUI.py:4091 flatcamTools/ToolNonCopperClear.py:321 +#: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -9020,36 +9081,36 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamGUI/PreferencesUI.py:4110 flatcamGUI/PreferencesUI.py:6090 -#: flatcamGUI/PreferencesUI.py:6332 flatcamGUI/PreferencesUI.py:6396 +#: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 #: flatcamTools/ToolCopperThieving.py:113 flatcamTools/ToolFiducials.py:174 #: flatcamTools/ToolFiducials.py:237 flatcamTools/ToolNonCopperClear.py:339 msgid "Bounding box margin." msgstr "" -#: flatcamGUI/PreferencesUI.py:4123 flatcamGUI/PreferencesUI.py:4551 +#: flatcamGUI/PreferencesUI.py:4141 flatcamGUI/PreferencesUI.py:4569 #: flatcamTools/ToolNonCopperClear.py:350 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards.
Seed-" "based: Outwards from seed.
Line-based: Parallel lines." msgstr "" -#: flatcamGUI/PreferencesUI.py:4139 flatcamGUI/PreferencesUI.py:4565 +#: flatcamGUI/PreferencesUI.py:4157 flatcamGUI/PreferencesUI.py:4583 #: flatcamTools/ToolNonCopperClear.py:364 flatcamTools/ToolPaint.py:267 msgid "Connect" msgstr "" -#: flatcamGUI/PreferencesUI.py:4150 flatcamGUI/PreferencesUI.py:4575 +#: flatcamGUI/PreferencesUI.py:4168 flatcamGUI/PreferencesUI.py:4593 #: flatcamTools/ToolNonCopperClear.py:373 flatcamTools/ToolPaint.py:276 msgid "Contour" msgstr "" -#: flatcamGUI/PreferencesUI.py:4161 flatcamTools/ToolNonCopperClear.py:382 +#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:382 #: flatcamTools/ToolPaint.py:285 msgid "Rest M." msgstr "" -#: flatcamGUI/PreferencesUI.py:4163 flatcamTools/ToolNonCopperClear.py:384 +#: flatcamGUI/PreferencesUI.py:4181 flatcamTools/ToolNonCopperClear.py:384 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -9060,7 +9121,7 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: flatcamGUI/PreferencesUI.py:4179 flatcamTools/ToolNonCopperClear.py:399 +#: flatcamGUI/PreferencesUI.py:4197 flatcamTools/ToolNonCopperClear.py:399 #: flatcamTools/ToolNonCopperClear.py:411 msgid "" "If used, it will add an offset to the copper features.\n" @@ -9069,11 +9130,11 @@ msgid "" "The value can be between 0 and 10 FlatCAM units." msgstr "" -#: flatcamGUI/PreferencesUI.py:4190 flatcamTools/ToolNonCopperClear.py:409 +#: flatcamGUI/PreferencesUI.py:4208 flatcamTools/ToolNonCopperClear.py:409 msgid "Offset value" msgstr "" -#: flatcamGUI/PreferencesUI.py:4192 +#: flatcamGUI/PreferencesUI.py:4210 msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -9081,25 +9142,25 @@ msgid "" "The value can be between 0.0 and 9999.9 FlatCAM units." msgstr "" -#: flatcamGUI/PreferencesUI.py:4207 flatcamGUI/PreferencesUI.py:6102 +#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 flatcamTools/ToolNonCopperClear.py:435 msgid "Itself" msgstr "" -#: flatcamGUI/PreferencesUI.py:4208 flatcamGUI/PreferencesUI.py:4597 +#: flatcamGUI/PreferencesUI.py:4226 flatcamGUI/PreferencesUI.py:4615 msgid "Area" msgstr "" -#: flatcamGUI/PreferencesUI.py:4209 flatcamGUI/PreferencesUI.py:4599 +#: flatcamGUI/PreferencesUI.py:4227 flatcamGUI/PreferencesUI.py:4617 msgid "Ref" msgstr "" -#: flatcamGUI/PreferencesUI.py:4210 flatcamGUI/PreferencesUI.py:4776 +#: flatcamGUI/PreferencesUI.py:4228 flatcamGUI/PreferencesUI.py:4794 #: flatcamTools/ToolFilm.py:219 msgid "Reference" msgstr "" -#: flatcamGUI/PreferencesUI.py:4212 +#: flatcamGUI/PreferencesUI.py:4230 msgid "" "- 'Itself' - the non copper clearing extent\n" "is based on the object that is copper cleared.\n" @@ -9109,70 +9170,70 @@ msgid "" "specified by another object." msgstr "" -#: flatcamGUI/PreferencesUI.py:4224 flatcamGUI/PreferencesUI.py:4605 +#: flatcamGUI/PreferencesUI.py:4242 flatcamGUI/PreferencesUI.py:4623 msgid "Normal" msgstr "" -#: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:4606 +#: flatcamGUI/PreferencesUI.py:4243 flatcamGUI/PreferencesUI.py:4624 msgid "Progressive" msgstr "" -#: flatcamGUI/PreferencesUI.py:4226 +#: flatcamGUI/PreferencesUI.py:4244 msgid "NCC Plotting" msgstr "" -#: flatcamGUI/PreferencesUI.py:4228 +#: flatcamGUI/PreferencesUI.py:4246 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/PreferencesUI.py:4242 +#: flatcamGUI/PreferencesUI.py:4260 msgid "Cutout Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:4257 flatcamTools/ToolCalculators.py:123 +#: flatcamGUI/PreferencesUI.py:4275 flatcamTools/ToolCalculators.py:123 #: flatcamTools/ToolCutOut.py:123 msgid "Tool Diameter" msgstr "" -#: flatcamGUI/PreferencesUI.py:4259 flatcamTools/ToolCutOut.py:125 +#: flatcamGUI/PreferencesUI.py:4277 flatcamTools/ToolCutOut.py:125 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." msgstr "" -#: flatcamGUI/PreferencesUI.py:4314 flatcamTools/ToolCutOut.py:104 +#: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 msgid "Object kind" msgstr "" -#: flatcamGUI/PreferencesUI.py:4316 flatcamTools/ToolCutOut.py:106 +#: flatcamGUI/PreferencesUI.py:4334 flatcamTools/ToolCutOut.py:106 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 "" -#: flatcamGUI/PreferencesUI.py:4323 flatcamTools/ToolCutOut.py:112 +#: flatcamGUI/PreferencesUI.py:4341 flatcamTools/ToolCutOut.py:112 msgid "Single" msgstr "" -#: flatcamGUI/PreferencesUI.py:4324 flatcamTools/ToolCutOut.py:113 +#: flatcamGUI/PreferencesUI.py:4342 flatcamTools/ToolCutOut.py:113 msgid "Panel" msgstr "" -#: flatcamGUI/PreferencesUI.py:4331 flatcamTools/ToolCutOut.py:184 +#: flatcamGUI/PreferencesUI.py:4349 flatcamTools/ToolCutOut.py:184 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" "the actual PCB border" msgstr "" -#: flatcamGUI/PreferencesUI.py:4344 flatcamTools/ToolCutOut.py:195 +#: flatcamGUI/PreferencesUI.py:4362 flatcamTools/ToolCutOut.py:195 msgid "Gap size" msgstr "" -#: flatcamGUI/PreferencesUI.py:4346 flatcamTools/ToolCutOut.py:197 +#: flatcamGUI/PreferencesUI.py:4364 flatcamTools/ToolCutOut.py:197 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -9180,11 +9241,11 @@ msgid "" "from which the PCB is cutout)." msgstr "" -#: flatcamGUI/PreferencesUI.py:4360 flatcamTools/ToolCutOut.py:239 +#: flatcamGUI/PreferencesUI.py:4378 flatcamTools/ToolCutOut.py:239 msgid "Gaps" msgstr "" -#: flatcamGUI/PreferencesUI.py:4362 +#: flatcamGUI/PreferencesUI.py:4380 msgid "" "Number of gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -9198,82 +9259,71 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: flatcamGUI/PreferencesUI.py:4385 +#: flatcamGUI/PreferencesUI.py:4403 msgid "Convex Sh." msgstr "" -#: flatcamGUI/PreferencesUI.py:4387 flatcamTools/ToolCutOut.py:217 +#: flatcamGUI/PreferencesUI.py:4405 flatcamTools/ToolCutOut.py:217 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." msgstr "" -#: flatcamGUI/PreferencesUI.py:4401 +#: flatcamGUI/PreferencesUI.py:4419 msgid "2Sided Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:4407 +#: flatcamGUI/PreferencesUI.py:4425 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." msgstr "" -#: flatcamGUI/PreferencesUI.py:4421 flatcamTools/ToolDblSided.py:276 +#: flatcamGUI/PreferencesUI.py:4439 flatcamTools/ToolDblSided.py:276 msgid "Drill dia" msgstr "" -#: flatcamGUI/PreferencesUI.py:4423 flatcamTools/ToolDblSided.py:267 +#: flatcamGUI/PreferencesUI.py:4441 flatcamTools/ToolDblSided.py:267 #: flatcamTools/ToolDblSided.py:278 msgid "Diameter of the drill for the alignment holes." msgstr "" -#: flatcamGUI/PreferencesUI.py:4432 flatcamTools/ToolDblSided.py:144 +#: flatcamGUI/PreferencesUI.py:4450 flatcamTools/ToolDblSided.py:144 msgid "Mirror Axis:" msgstr "" -#: flatcamGUI/PreferencesUI.py:4434 flatcamTools/ToolDblSided.py:145 +#: flatcamGUI/PreferencesUI.py:4452 flatcamTools/ToolDblSided.py:145 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "" -#: flatcamGUI/PreferencesUI.py:4443 flatcamTools/ToolDblSided.py:154 +#: flatcamGUI/PreferencesUI.py:4461 flatcamTools/ToolDblSided.py:154 msgid "Point" msgstr "" -#: flatcamGUI/PreferencesUI.py:4444 flatcamTools/ToolDblSided.py:155 +#: flatcamGUI/PreferencesUI.py:4462 flatcamTools/ToolDblSided.py:155 msgid "Box" msgstr "" -#: flatcamGUI/PreferencesUI.py:4445 +#: flatcamGUI/PreferencesUI.py:4463 flatcamTools/ToolDblSided.py:156 msgid "Axis Ref" msgstr "" -#: flatcamGUI/PreferencesUI.py:4447 flatcamTools/ToolDblSided.py:158 +#: flatcamGUI/PreferencesUI.py:4465 flatcamTools/ToolDblSided.py:158 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a FlatCAM object) through \n" "the center." msgstr "" -#: flatcamGUI/PreferencesUI.py:4463 +#: flatcamGUI/PreferencesUI.py:4481 msgid "Paint Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:4469 +#: flatcamGUI/PreferencesUI.py:4487 msgid "Parameters:" msgstr "" -#: flatcamGUI/PreferencesUI.py:4516 flatcamTools/ToolPaint.py:221 -msgid "" -"How much (fraction) 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 "" - -#: flatcamGUI/PreferencesUI.py:4587 flatcamTools/ToolPaint.py:302 +#: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 msgid "" "How to select Polygons to be painted.\n" @@ -9285,36 +9335,36 @@ msgid "" "specified by another object." msgstr "" -#: flatcamGUI/PreferencesUI.py:4596 +#: flatcamGUI/PreferencesUI.py:4614 msgid "Sel" msgstr "" -#: flatcamGUI/PreferencesUI.py:4607 +#: flatcamGUI/PreferencesUI.py:4625 msgid "Paint Plotting" msgstr "" -#: flatcamGUI/PreferencesUI.py:4609 +#: flatcamGUI/PreferencesUI.py:4627 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/PreferencesUI.py:4623 +#: flatcamGUI/PreferencesUI.py:4641 msgid "Film Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:4629 +#: flatcamGUI/PreferencesUI.py:4647 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: flatcamGUI/PreferencesUI.py:4640 +#: flatcamGUI/PreferencesUI.py:4658 msgid "Film Type" msgstr "" -#: flatcamGUI/PreferencesUI.py:4642 flatcamTools/ToolFilm.py:300 +#: flatcamGUI/PreferencesUI.py:4660 flatcamTools/ToolFilm.py:300 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -9324,19 +9374,19 @@ msgid "" "The Film format is SVG." msgstr "" -#: flatcamGUI/PreferencesUI.py:4653 +#: flatcamGUI/PreferencesUI.py:4671 msgid "Film Color" msgstr "" -#: flatcamGUI/PreferencesUI.py:4655 +#: flatcamGUI/PreferencesUI.py:4673 msgid "Set the film color when positive film is selected." msgstr "" -#: flatcamGUI/PreferencesUI.py:4678 flatcamTools/ToolFilm.py:316 +#: flatcamGUI/PreferencesUI.py:4696 flatcamTools/ToolFilm.py:316 msgid "Border" msgstr "" -#: flatcamGUI/PreferencesUI.py:4680 flatcamTools/ToolFilm.py:318 +#: flatcamGUI/PreferencesUI.py:4698 flatcamTools/ToolFilm.py:318 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -9348,124 +9398,124 @@ msgid "" "surroundings if not for this border." msgstr "" -#: flatcamGUI/PreferencesUI.py:4697 flatcamTools/ToolFilm.py:283 +#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:283 msgid "Scale Stroke" msgstr "" -#: flatcamGUI/PreferencesUI.py:4699 flatcamTools/ToolFilm.py:285 +#: flatcamGUI/PreferencesUI.py:4717 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 "" -#: flatcamGUI/PreferencesUI.py:4706 flatcamTools/ToolFilm.py:141 +#: flatcamGUI/PreferencesUI.py:4724 flatcamTools/ToolFilm.py:141 msgid "Film Adjustments" msgstr "" -#: flatcamGUI/PreferencesUI.py:4708 flatcamTools/ToolFilm.py:143 +#: flatcamGUI/PreferencesUI.py:4726 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 "" -#: flatcamGUI/PreferencesUI.py:4715 flatcamTools/ToolFilm.py:150 +#: flatcamGUI/PreferencesUI.py:4733 flatcamTools/ToolFilm.py:150 msgid "Scale Film geometry" msgstr "" -#: flatcamGUI/PreferencesUI.py:4717 flatcamTools/ToolFilm.py:152 +#: flatcamGUI/PreferencesUI.py:4735 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 "" -#: flatcamGUI/PreferencesUI.py:4727 flatcamGUI/PreferencesUI.py:5247 +#: flatcamGUI/PreferencesUI.py:4745 flatcamGUI/PreferencesUI.py:5265 #: flatcamTools/ToolFilm.py:162 flatcamTools/ToolTransform.py:147 msgid "X factor" msgstr "" -#: flatcamGUI/PreferencesUI.py:4736 flatcamGUI/PreferencesUI.py:5260 +#: flatcamGUI/PreferencesUI.py:4754 flatcamGUI/PreferencesUI.py:5278 #: flatcamTools/ToolFilm.py:171 flatcamTools/ToolTransform.py:168 msgid "Y factor" msgstr "" -#: flatcamGUI/PreferencesUI.py:4746 flatcamTools/ToolFilm.py:189 +#: flatcamGUI/PreferencesUI.py:4764 flatcamTools/ToolFilm.py:189 msgid "Skew Film geometry" msgstr "" -#: flatcamGUI/PreferencesUI.py:4748 flatcamTools/ToolFilm.py:191 +#: flatcamGUI/PreferencesUI.py:4766 flatcamTools/ToolFilm.py:191 msgid "" "Positive values will skew to the right\n" "while negative values will skew to the left." msgstr "" -#: flatcamGUI/PreferencesUI.py:4758 flatcamGUI/PreferencesUI.py:5216 +#: flatcamGUI/PreferencesUI.py:4776 flatcamGUI/PreferencesUI.py:5234 #: flatcamTools/ToolFilm.py:201 flatcamTools/ToolTransform.py:97 msgid "X angle" msgstr "" -#: flatcamGUI/PreferencesUI.py:4767 flatcamGUI/PreferencesUI.py:5230 +#: flatcamGUI/PreferencesUI.py:4785 flatcamGUI/PreferencesUI.py:5248 #: flatcamTools/ToolFilm.py:210 flatcamTools/ToolTransform.py:119 msgid "Y angle" msgstr "" -#: flatcamGUI/PreferencesUI.py:4778 flatcamTools/ToolFilm.py:221 +#: flatcamGUI/PreferencesUI.py:4796 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 "" -#: flatcamGUI/PreferencesUI.py:4781 flatcamTools/ToolFiducials.py:87 +#: flatcamGUI/PreferencesUI.py:4799 flatcamTools/ToolFiducials.py:87 #: flatcamTools/ToolFilm.py:224 msgid "Bottom Left" msgstr "" -#: flatcamGUI/PreferencesUI.py:4782 flatcamTools/ToolFilm.py:225 +#: flatcamGUI/PreferencesUI.py:4800 flatcamTools/ToolFilm.py:225 msgid "Top Left" msgstr "" -#: flatcamGUI/PreferencesUI.py:4783 flatcamTools/ToolFilm.py:226 +#: flatcamGUI/PreferencesUI.py:4801 flatcamTools/ToolFilm.py:226 msgid "Bottom Right" msgstr "" -#: flatcamGUI/PreferencesUI.py:4784 flatcamTools/ToolFilm.py:227 +#: flatcamGUI/PreferencesUI.py:4802 flatcamTools/ToolFilm.py:227 msgid "Top right" msgstr "" -#: flatcamGUI/PreferencesUI.py:4792 flatcamTools/ToolFilm.py:244 +#: flatcamGUI/PreferencesUI.py:4810 flatcamTools/ToolFilm.py:244 msgid "Mirror Film geometry" msgstr "" -#: flatcamGUI/PreferencesUI.py:4794 flatcamTools/ToolFilm.py:246 +#: flatcamGUI/PreferencesUI.py:4812 flatcamTools/ToolFilm.py:246 msgid "Mirror the film geometry on the selected axis or on both." msgstr "" -#: flatcamGUI/PreferencesUI.py:4806 flatcamTools/ToolFilm.py:258 +#: flatcamGUI/PreferencesUI.py:4824 flatcamTools/ToolFilm.py:258 msgid "Both" msgstr "" -#: flatcamGUI/PreferencesUI.py:4808 flatcamTools/ToolFilm.py:260 +#: flatcamGUI/PreferencesUI.py:4826 flatcamTools/ToolFilm.py:260 msgid "Mirror axis" msgstr "" -#: flatcamGUI/PreferencesUI.py:4818 flatcamTools/ToolFilm.py:403 +#: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" msgstr "" -#: flatcamGUI/PreferencesUI.py:4819 flatcamTools/ToolFilm.py:404 +#: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" msgstr "" -#: flatcamGUI/PreferencesUI.py:4820 flatcamTools/ToolFilm.py:405 +#: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" msgstr "" -#: flatcamGUI/PreferencesUI.py:4823 flatcamTools/ToolFilm.py:298 +#: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 msgid "Film Type:" msgstr "" -#: flatcamGUI/PreferencesUI.py:4825 flatcamTools/ToolFilm.py:410 +#: flatcamGUI/PreferencesUI.py:4843 flatcamTools/ToolFilm.py:410 msgid "" "The file type of the saved film. Can be:\n" "- 'SVG' -> open-source vectorial format\n" @@ -9473,97 +9523,90 @@ msgid "" "- 'PDF' -> portable document format" msgstr "" -#: flatcamGUI/PreferencesUI.py:4834 flatcamTools/ToolFilm.py:419 +#: flatcamGUI/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" msgstr "" -#: flatcamGUI/PreferencesUI.py:4835 -msgid "" -"Can be:\n" -"- Portrait\n" -"- Lanscape" -msgstr "" - -#: flatcamGUI/PreferencesUI.py:4847 flatcamTools/ToolFilm.py:432 +#: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 msgid "Page Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:4848 flatcamTools/ToolFilm.py:433 +#: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." msgstr "" -#: flatcamGUI/PreferencesUI.py:4920 +#: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:4926 +#: flatcamGUI/PreferencesUI.py:4944 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 "" -#: flatcamGUI/PreferencesUI.py:4943 flatcamTools/ToolPanelize.py:160 +#: flatcamGUI/PreferencesUI.py:4961 flatcamTools/ToolPanelize.py:160 msgid "Spacing cols" msgstr "" -#: flatcamGUI/PreferencesUI.py:4945 flatcamTools/ToolPanelize.py:162 +#: flatcamGUI/PreferencesUI.py:4963 flatcamTools/ToolPanelize.py:162 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:4957 flatcamTools/ToolPanelize.py:172 +#: flatcamGUI/PreferencesUI.py:4975 flatcamTools/ToolPanelize.py:172 msgid "Spacing rows" msgstr "" -#: flatcamGUI/PreferencesUI.py:4959 flatcamTools/ToolPanelize.py:174 +#: flatcamGUI/PreferencesUI.py:4977 flatcamTools/ToolPanelize.py:174 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:4970 flatcamTools/ToolPanelize.py:183 +#: flatcamGUI/PreferencesUI.py:4988 flatcamTools/ToolPanelize.py:183 msgid "Columns" msgstr "" -#: flatcamGUI/PreferencesUI.py:4972 flatcamTools/ToolPanelize.py:185 +#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolPanelize.py:185 msgid "Number of columns of the desired panel" msgstr "" -#: flatcamGUI/PreferencesUI.py:4982 flatcamTools/ToolPanelize.py:193 +#: flatcamGUI/PreferencesUI.py:5000 flatcamTools/ToolPanelize.py:193 msgid "Rows" msgstr "" -#: flatcamGUI/PreferencesUI.py:4984 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/PreferencesUI.py:5002 flatcamTools/ToolPanelize.py:195 msgid "Number of rows of the desired panel" msgstr "" -#: flatcamGUI/PreferencesUI.py:4990 flatcamTools/ToolCalibration.py:89 -#: flatcamTools/ToolCalibration.py:569 flatcamTools/ToolPanelize.py:201 +#: flatcamGUI/PreferencesUI.py:5008 flatcamTools/ToolCalibration.py:196 +#: flatcamTools/ToolCalibration.py:634 flatcamTools/ToolPanelize.py:201 msgid "Gerber" msgstr "" -#: flatcamGUI/PreferencesUI.py:4991 flatcamTools/ToolPanelize.py:202 +#: flatcamGUI/PreferencesUI.py:5009 flatcamTools/ToolPanelize.py:202 msgid "Geo" msgstr "" -#: flatcamGUI/PreferencesUI.py:4992 flatcamTools/ToolPanelize.py:203 +#: flatcamGUI/PreferencesUI.py:5010 flatcamTools/ToolPanelize.py:203 msgid "Panel Type" msgstr "" -#: flatcamGUI/PreferencesUI.py:4994 +#: flatcamGUI/PreferencesUI.py:5012 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: flatcamGUI/PreferencesUI.py:5003 +#: flatcamGUI/PreferencesUI.py:5021 msgid "Constrain within" msgstr "" -#: flatcamGUI/PreferencesUI.py:5005 flatcamTools/ToolPanelize.py:215 +#: flatcamGUI/PreferencesUI.py:5023 flatcamTools/ToolPanelize.py:215 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -9572,142 +9615,142 @@ msgid "" "they fit completely within selected area." msgstr "" -#: flatcamGUI/PreferencesUI.py:5018 flatcamTools/ToolPanelize.py:227 +#: flatcamGUI/PreferencesUI.py:5036 flatcamTools/ToolPanelize.py:227 msgid "Width (DX)" msgstr "" -#: flatcamGUI/PreferencesUI.py:5020 flatcamTools/ToolPanelize.py:229 +#: flatcamGUI/PreferencesUI.py:5038 flatcamTools/ToolPanelize.py:229 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:5031 flatcamTools/ToolPanelize.py:238 +#: flatcamGUI/PreferencesUI.py:5049 flatcamTools/ToolPanelize.py:238 msgid "Height (DY)" msgstr "" -#: flatcamGUI/PreferencesUI.py:5033 flatcamTools/ToolPanelize.py:240 +#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolPanelize.py:240 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:5047 +#: flatcamGUI/PreferencesUI.py:5065 msgid "Calculators Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5051 flatcamTools/ToolCalculators.py:25 +#: flatcamGUI/PreferencesUI.py:5069 flatcamTools/ToolCalculators.py:25 msgid "V-Shape Tool Calculator" msgstr "" -#: flatcamGUI/PreferencesUI.py:5053 +#: flatcamGUI/PreferencesUI.py:5071 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 "" -#: flatcamGUI/PreferencesUI.py:5068 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/PreferencesUI.py:5086 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter" msgstr "" -#: flatcamGUI/PreferencesUI.py:5070 flatcamTools/ToolCalculators.py:102 +#: flatcamGUI/PreferencesUI.py:5088 flatcamTools/ToolCalculators.py:102 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/PreferencesUI.py:5082 flatcamTools/ToolCalculators.py:105 +#: flatcamGUI/PreferencesUI.py:5100 flatcamTools/ToolCalculators.py:105 msgid "Tip Angle" msgstr "" -#: flatcamGUI/PreferencesUI.py:5084 +#: flatcamGUI/PreferencesUI.py:5102 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/PreferencesUI.py:5098 +#: flatcamGUI/PreferencesUI.py:5116 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: flatcamGUI/PreferencesUI.py:5105 flatcamTools/ToolCalculators.py:27 +#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:27 msgid "ElectroPlating Calculator" msgstr "" -#: flatcamGUI/PreferencesUI.py:5107 flatcamTools/ToolCalculators.py:158 +#: flatcamGUI/PreferencesUI.py:5125 flatcamTools/ToolCalculators.py:158 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium chloride." msgstr "" -#: flatcamGUI/PreferencesUI.py:5121 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/PreferencesUI.py:5139 flatcamTools/ToolCalculators.py:167 msgid "Board Length" msgstr "" -#: flatcamGUI/PreferencesUI.py:5123 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/PreferencesUI.py:5141 flatcamTools/ToolCalculators.py:173 msgid "This is the board length. In centimeters." msgstr "" -#: flatcamGUI/PreferencesUI.py:5133 flatcamTools/ToolCalculators.py:175 +#: flatcamGUI/PreferencesUI.py:5151 flatcamTools/ToolCalculators.py:175 msgid "Board Width" msgstr "" -#: flatcamGUI/PreferencesUI.py:5135 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/PreferencesUI.py:5153 flatcamTools/ToolCalculators.py:181 msgid "This is the board width.In centimeters." msgstr "" -#: flatcamGUI/PreferencesUI.py:5140 flatcamTools/ToolCalculators.py:183 +#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:183 msgid "Current Density" msgstr "" -#: flatcamGUI/PreferencesUI.py:5146 flatcamTools/ToolCalculators.py:190 +#: flatcamGUI/PreferencesUI.py:5164 flatcamTools/ToolCalculators.py:190 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: flatcamGUI/PreferencesUI.py:5152 flatcamTools/ToolCalculators.py:193 +#: flatcamGUI/PreferencesUI.py:5170 flatcamTools/ToolCalculators.py:193 msgid "Copper Growth" msgstr "" -#: flatcamGUI/PreferencesUI.py:5158 flatcamTools/ToolCalculators.py:200 +#: flatcamGUI/PreferencesUI.py:5176 flatcamTools/ToolCalculators.py:200 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: flatcamGUI/PreferencesUI.py:5171 +#: flatcamGUI/PreferencesUI.py:5189 msgid "Transform Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5177 +#: flatcamGUI/PreferencesUI.py:5195 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." msgstr "" -#: flatcamGUI/PreferencesUI.py:5208 +#: flatcamGUI/PreferencesUI.py:5226 msgid "Skew" msgstr "" -#: flatcamGUI/PreferencesUI.py:5249 flatcamTools/ToolTransform.py:149 +#: flatcamGUI/PreferencesUI.py:5267 flatcamTools/ToolTransform.py:149 msgid "Factor for scaling on X axis." msgstr "" -#: flatcamGUI/PreferencesUI.py:5262 flatcamTools/ToolTransform.py:170 +#: flatcamGUI/PreferencesUI.py:5280 flatcamTools/ToolTransform.py:170 msgid "Factor for scaling on Y axis." msgstr "" -#: flatcamGUI/PreferencesUI.py:5270 flatcamTools/ToolTransform.py:193 +#: flatcamGUI/PreferencesUI.py:5288 flatcamTools/ToolTransform.py:193 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: flatcamGUI/PreferencesUI.py:5278 flatcamTools/ToolTransform.py:201 +#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:201 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -9715,27 +9758,27 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: flatcamGUI/PreferencesUI.py:5294 flatcamTools/ToolTransform.py:216 +#: flatcamGUI/PreferencesUI.py:5312 flatcamTools/ToolTransform.py:216 msgid "X val" msgstr "" -#: flatcamGUI/PreferencesUI.py:5296 flatcamTools/ToolTransform.py:218 +#: flatcamGUI/PreferencesUI.py:5314 flatcamTools/ToolTransform.py:218 msgid "Distance to offset on X axis. In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:5307 flatcamTools/ToolTransform.py:237 +#: flatcamGUI/PreferencesUI.py:5325 flatcamTools/ToolTransform.py:237 msgid "Y val" msgstr "" -#: flatcamGUI/PreferencesUI.py:5309 flatcamTools/ToolTransform.py:239 +#: flatcamGUI/PreferencesUI.py:5327 flatcamTools/ToolTransform.py:239 msgid "Distance to offset on Y axis. In current units." msgstr "" -#: flatcamGUI/PreferencesUI.py:5315 flatcamTools/ToolTransform.py:284 +#: flatcamGUI/PreferencesUI.py:5333 flatcamTools/ToolTransform.py:284 msgid "Mirror Reference" msgstr "" -#: flatcamGUI/PreferencesUI.py:5317 flatcamTools/ToolTransform.py:286 +#: flatcamGUI/PreferencesUI.py:5335 flatcamTools/ToolTransform.py:286 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -9748,191 +9791,191 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamGUI/PreferencesUI.py:5328 +#: flatcamGUI/PreferencesUI.py:5346 msgid "Mirror Reference point" msgstr "" -#: flatcamGUI/PreferencesUI.py:5330 +#: flatcamGUI/PreferencesUI.py:5348 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 "" -#: flatcamGUI/PreferencesUI.py:5347 +#: flatcamGUI/PreferencesUI.py:5365 msgid "SolderPaste Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5353 +#: flatcamGUI/PreferencesUI.py:5371 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." msgstr "" -#: flatcamGUI/PreferencesUI.py:5364 +#: flatcamGUI/PreferencesUI.py:5382 msgid "Diameters of nozzle tools, separated by ','" msgstr "" -#: flatcamGUI/PreferencesUI.py:5372 +#: flatcamGUI/PreferencesUI.py:5390 msgid "New Nozzle Dia" msgstr "" -#: flatcamGUI/PreferencesUI.py:5374 flatcamTools/ToolSolderPaste.py:106 +#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:106 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: flatcamGUI/PreferencesUI.py:5390 flatcamTools/ToolSolderPaste.py:182 +#: flatcamGUI/PreferencesUI.py:5408 flatcamTools/ToolSolderPaste.py:182 msgid "Z Dispense Start" msgstr "" -#: flatcamGUI/PreferencesUI.py:5392 flatcamTools/ToolSolderPaste.py:184 +#: flatcamGUI/PreferencesUI.py:5410 flatcamTools/ToolSolderPaste.py:184 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: flatcamGUI/PreferencesUI.py:5403 flatcamTools/ToolSolderPaste.py:194 +#: flatcamGUI/PreferencesUI.py:5421 flatcamTools/ToolSolderPaste.py:194 msgid "Z Dispense" msgstr "" -#: flatcamGUI/PreferencesUI.py:5405 flatcamTools/ToolSolderPaste.py:196 +#: flatcamGUI/PreferencesUI.py:5423 flatcamTools/ToolSolderPaste.py:196 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: flatcamGUI/PreferencesUI.py:5416 flatcamTools/ToolSolderPaste.py:206 +#: flatcamGUI/PreferencesUI.py:5434 flatcamTools/ToolSolderPaste.py:206 msgid "Z Dispense Stop" msgstr "" -#: flatcamGUI/PreferencesUI.py:5418 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/PreferencesUI.py:5436 flatcamTools/ToolSolderPaste.py:208 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: flatcamGUI/PreferencesUI.py:5429 flatcamTools/ToolSolderPaste.py:218 +#: flatcamGUI/PreferencesUI.py:5447 flatcamTools/ToolSolderPaste.py:218 msgid "Z Travel" msgstr "" -#: flatcamGUI/PreferencesUI.py:5431 flatcamTools/ToolSolderPaste.py:220 +#: flatcamGUI/PreferencesUI.py:5449 flatcamTools/ToolSolderPaste.py:220 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: flatcamGUI/PreferencesUI.py:5443 flatcamTools/ToolSolderPaste.py:231 +#: flatcamGUI/PreferencesUI.py:5461 flatcamTools/ToolSolderPaste.py:231 msgid "Z Toolchange" msgstr "" -#: flatcamGUI/PreferencesUI.py:5445 flatcamTools/ToolSolderPaste.py:233 +#: flatcamGUI/PreferencesUI.py:5463 flatcamTools/ToolSolderPaste.py:233 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: flatcamGUI/PreferencesUI.py:5454 flatcamTools/ToolSolderPaste.py:241 +#: flatcamGUI/PreferencesUI.py:5472 flatcamTools/ToolSolderPaste.py:241 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: flatcamGUI/PreferencesUI.py:5468 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/PreferencesUI.py:5486 flatcamTools/ToolSolderPaste.py:254 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "" -#: flatcamGUI/PreferencesUI.py:5481 flatcamTools/ToolSolderPaste.py:266 +#: flatcamGUI/PreferencesUI.py:5499 flatcamTools/ToolSolderPaste.py:266 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: flatcamGUI/PreferencesUI.py:5493 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/PreferencesUI.py:5511 flatcamTools/ToolSolderPaste.py:277 msgid "Feedrate Z Dispense" msgstr "" -#: flatcamGUI/PreferencesUI.py:5495 +#: flatcamGUI/PreferencesUI.py:5513 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: flatcamGUI/PreferencesUI.py:5506 flatcamTools/ToolSolderPaste.py:289 +#: flatcamGUI/PreferencesUI.py:5524 flatcamTools/ToolSolderPaste.py:289 msgid "Spindle Speed FWD" msgstr "" -#: flatcamGUI/PreferencesUI.py:5508 flatcamTools/ToolSolderPaste.py:291 +#: flatcamGUI/PreferencesUI.py:5526 flatcamTools/ToolSolderPaste.py:291 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/PreferencesUI.py:5520 flatcamTools/ToolSolderPaste.py:302 +#: flatcamGUI/PreferencesUI.py:5538 flatcamTools/ToolSolderPaste.py:302 msgid "Dwell FWD" msgstr "" -#: flatcamGUI/PreferencesUI.py:5522 flatcamTools/ToolSolderPaste.py:304 +#: flatcamGUI/PreferencesUI.py:5540 flatcamTools/ToolSolderPaste.py:304 msgid "Pause after solder dispensing." msgstr "" -#: flatcamGUI/PreferencesUI.py:5532 flatcamTools/ToolSolderPaste.py:313 +#: flatcamGUI/PreferencesUI.py:5550 flatcamTools/ToolSolderPaste.py:313 msgid "Spindle Speed REV" msgstr "" -#: flatcamGUI/PreferencesUI.py:5534 flatcamTools/ToolSolderPaste.py:315 +#: flatcamGUI/PreferencesUI.py:5552 flatcamTools/ToolSolderPaste.py:315 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/PreferencesUI.py:5546 flatcamTools/ToolSolderPaste.py:326 +#: flatcamGUI/PreferencesUI.py:5564 flatcamTools/ToolSolderPaste.py:326 msgid "Dwell REV" msgstr "" -#: flatcamGUI/PreferencesUI.py:5548 flatcamTools/ToolSolderPaste.py:328 +#: flatcamGUI/PreferencesUI.py:5566 flatcamTools/ToolSolderPaste.py:328 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: flatcamGUI/PreferencesUI.py:5557 flatcamTools/ToolSolderPaste.py:336 +#: flatcamGUI/PreferencesUI.py:5575 flatcamTools/ToolSolderPaste.py:336 msgid "Files that control the GCode generation." msgstr "" -#: flatcamGUI/PreferencesUI.py:5572 +#: flatcamGUI/PreferencesUI.py:5590 msgid "Substractor Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5578 +#: flatcamGUI/PreferencesUI.py:5596 msgid "" "A tool to substract one Gerber or Geometry object\n" "from another of the same type." msgstr "" -#: flatcamGUI/PreferencesUI.py:5583 flatcamTools/ToolSub.py:149 +#: flatcamGUI/PreferencesUI.py:5601 flatcamTools/ToolSub.py:149 msgid "Close paths" msgstr "" -#: flatcamGUI/PreferencesUI.py:5584 +#: flatcamGUI/PreferencesUI.py:5602 msgid "Checking this will close the paths cut by the Geometry substractor object." msgstr "" -#: flatcamGUI/PreferencesUI.py:5595 +#: flatcamGUI/PreferencesUI.py:5613 msgid "Check Rules Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5600 +#: flatcamGUI/PreferencesUI.py:5618 msgid "" "A tool to check if Gerber files are within a set\n" "of Manufacturing Rules." msgstr "" -#: flatcamGUI/PreferencesUI.py:5610 flatcamTools/ToolRulesCheck.py:256 +#: flatcamGUI/PreferencesUI.py:5628 flatcamTools/ToolRulesCheck.py:256 #: flatcamTools/ToolRulesCheck.py:920 msgid "Trace Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:5612 flatcamTools/ToolRulesCheck.py:258 +#: flatcamGUI/PreferencesUI.py:5630 flatcamTools/ToolRulesCheck.py:258 msgid "This checks if the minimum size for traces is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5622 flatcamGUI/PreferencesUI.py:5642 -#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 -#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 -#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 -#: flatcamGUI/PreferencesUI.py:5784 flatcamGUI/PreferencesUI.py:5804 +#: flatcamGUI/PreferencesUI.py:5640 flatcamGUI/PreferencesUI.py:5660 +#: flatcamGUI/PreferencesUI.py:5680 flatcamGUI/PreferencesUI.py:5700 +#: flatcamGUI/PreferencesUI.py:5720 flatcamGUI/PreferencesUI.py:5740 +#: flatcamGUI/PreferencesUI.py:5760 flatcamGUI/PreferencesUI.py:5780 +#: flatcamGUI/PreferencesUI.py:5802 flatcamGUI/PreferencesUI.py:5822 #: flatcamTools/ToolRulesCheck.py:268 flatcamTools/ToolRulesCheck.py:290 #: flatcamTools/ToolRulesCheck.py:313 flatcamTools/ToolRulesCheck.py:336 #: flatcamTools/ToolRulesCheck.py:359 flatcamTools/ToolRulesCheck.py:382 @@ -9941,173 +9984,173 @@ msgstr "" msgid "Min value" msgstr "" -#: flatcamGUI/PreferencesUI.py:5624 flatcamTools/ToolRulesCheck.py:270 +#: flatcamGUI/PreferencesUI.py:5642 flatcamTools/ToolRulesCheck.py:270 msgid "Minimum acceptable trace size." msgstr "" -#: flatcamGUI/PreferencesUI.py:5629 flatcamTools/ToolRulesCheck.py:277 +#: flatcamGUI/PreferencesUI.py:5647 flatcamTools/ToolRulesCheck.py:277 #: flatcamTools/ToolRulesCheck.py:1148 flatcamTools/ToolRulesCheck.py:1178 msgid "Copper to Copper clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5631 flatcamTools/ToolRulesCheck.py:279 +#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:279 msgid "" "This checks if the minimum clearance between copper\n" "features is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5644 flatcamGUI/PreferencesUI.py:5664 -#: flatcamGUI/PreferencesUI.py:5684 flatcamGUI/PreferencesUI.py:5704 -#: flatcamGUI/PreferencesUI.py:5724 flatcamGUI/PreferencesUI.py:5744 -#: flatcamGUI/PreferencesUI.py:5806 flatcamTools/ToolRulesCheck.py:292 +#: flatcamGUI/PreferencesUI.py:5662 flatcamGUI/PreferencesUI.py:5682 +#: flatcamGUI/PreferencesUI.py:5702 flatcamGUI/PreferencesUI.py:5722 +#: flatcamGUI/PreferencesUI.py:5742 flatcamGUI/PreferencesUI.py:5762 +#: flatcamGUI/PreferencesUI.py:5824 flatcamTools/ToolRulesCheck.py:292 #: flatcamTools/ToolRulesCheck.py:315 flatcamTools/ToolRulesCheck.py:338 #: flatcamTools/ToolRulesCheck.py:361 flatcamTools/ToolRulesCheck.py:384 #: flatcamTools/ToolRulesCheck.py:407 flatcamTools/ToolRulesCheck.py:455 msgid "Minimum acceptable clearance value." msgstr "" -#: flatcamGUI/PreferencesUI.py:5649 flatcamTools/ToolRulesCheck.py:300 +#: flatcamGUI/PreferencesUI.py:5667 flatcamTools/ToolRulesCheck.py:300 #: flatcamTools/ToolRulesCheck.py:1208 flatcamTools/ToolRulesCheck.py:1214 #: flatcamTools/ToolRulesCheck.py:1227 flatcamTools/ToolRulesCheck.py:1234 msgid "Copper to Outline clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5651 flatcamTools/ToolRulesCheck.py:302 +#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:302 msgid "" "This checks if the minimum clearance between copper\n" "features and the outline is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5669 flatcamTools/ToolRulesCheck.py:323 +#: flatcamGUI/PreferencesUI.py:5687 flatcamTools/ToolRulesCheck.py:323 msgid "Silk to Silk Clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5671 flatcamTools/ToolRulesCheck.py:325 +#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:325 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and silkscreen features is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5689 flatcamTools/ToolRulesCheck.py:346 +#: flatcamGUI/PreferencesUI.py:5707 flatcamTools/ToolRulesCheck.py:346 #: flatcamTools/ToolRulesCheck.py:1317 flatcamTools/ToolRulesCheck.py:1323 #: flatcamTools/ToolRulesCheck.py:1341 msgid "Silk to Solder Mask Clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5691 flatcamTools/ToolRulesCheck.py:348 +#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:348 msgid "" "This checks if the minimum clearance between silkscreen\n" "features and soldermask features is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5709 flatcamTools/ToolRulesCheck.py:369 +#: flatcamGUI/PreferencesUI.py:5727 flatcamTools/ToolRulesCheck.py:369 #: flatcamTools/ToolRulesCheck.py:1371 flatcamTools/ToolRulesCheck.py:1377 #: flatcamTools/ToolRulesCheck.py:1391 flatcamTools/ToolRulesCheck.py:1398 msgid "Silk to Outline Clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5711 flatcamTools/ToolRulesCheck.py:371 +#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:371 msgid "" "This checks if the minimum clearance between silk\n" "features and the outline is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5729 flatcamTools/ToolRulesCheck.py:392 +#: flatcamGUI/PreferencesUI.py:5747 flatcamTools/ToolRulesCheck.py:392 #: flatcamTools/ToolRulesCheck.py:1409 flatcamTools/ToolRulesCheck.py:1436 msgid "Minimum Solder Mask Sliver" msgstr "" -#: flatcamGUI/PreferencesUI.py:5731 flatcamTools/ToolRulesCheck.py:394 +#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:394 msgid "" "This checks if the minimum clearance between soldermask\n" "features and soldermask features is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5749 flatcamTools/ToolRulesCheck.py:415 +#: flatcamGUI/PreferencesUI.py:5767 flatcamTools/ToolRulesCheck.py:415 #: flatcamTools/ToolRulesCheck.py:1474 flatcamTools/ToolRulesCheck.py:1480 #: flatcamTools/ToolRulesCheck.py:1496 flatcamTools/ToolRulesCheck.py:1503 msgid "Minimum Annular Ring" msgstr "" -#: flatcamGUI/PreferencesUI.py:5751 flatcamTools/ToolRulesCheck.py:417 +#: flatcamGUI/PreferencesUI.py:5769 flatcamTools/ToolRulesCheck.py:417 msgid "" "This checks if the minimum copper ring left by drilling\n" "a hole into a pad is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5764 flatcamTools/ToolRulesCheck.py:430 +#: flatcamGUI/PreferencesUI.py:5782 flatcamTools/ToolRulesCheck.py:430 msgid "Minimum acceptable ring value." msgstr "" -#: flatcamGUI/PreferencesUI.py:5771 flatcamTools/ToolRulesCheck.py:440 +#: flatcamGUI/PreferencesUI.py:5789 flatcamTools/ToolRulesCheck.py:440 #: flatcamTools/ToolRulesCheck.py:864 msgid "Hole to Hole Clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:5773 flatcamTools/ToolRulesCheck.py:442 +#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:442 msgid "" "This checks if the minimum clearance between a drill hole\n" "and another drill hole is met." msgstr "" -#: flatcamGUI/PreferencesUI.py:5786 flatcamTools/ToolRulesCheck.py:478 +#: flatcamGUI/PreferencesUI.py:5804 flatcamTools/ToolRulesCheck.py:478 msgid "Minimum acceptable drill size." msgstr "" -#: flatcamGUI/PreferencesUI.py:5791 flatcamTools/ToolRulesCheck.py:463 +#: flatcamGUI/PreferencesUI.py:5809 flatcamTools/ToolRulesCheck.py:463 #: flatcamTools/ToolRulesCheck.py:838 msgid "Hole Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:5793 flatcamTools/ToolRulesCheck.py:465 +#: flatcamGUI/PreferencesUI.py:5811 flatcamTools/ToolRulesCheck.py:465 msgid "" "This checks if the drill holes\n" "sizes are above the threshold." msgstr "" -#: flatcamGUI/PreferencesUI.py:5818 +#: flatcamGUI/PreferencesUI.py:5836 msgid "Optimal Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5824 +#: flatcamGUI/PreferencesUI.py:5842 msgid "" "A tool to find the minimum distance between\n" "every two Gerber geometric elements" msgstr "" -#: flatcamGUI/PreferencesUI.py:5839 flatcamTools/ToolOptimal.py:78 +#: flatcamGUI/PreferencesUI.py:5857 flatcamTools/ToolOptimal.py:78 msgid "Precision" msgstr "" -#: flatcamGUI/PreferencesUI.py:5841 +#: flatcamGUI/PreferencesUI.py:5859 msgid "Number of decimals for the distances and coordinates in this tool." msgstr "" -#: flatcamGUI/PreferencesUI.py:5855 +#: flatcamGUI/PreferencesUI.py:5873 msgid "QRCode Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:5861 +#: flatcamGUI/PreferencesUI.py:5879 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 "" -#: flatcamGUI/PreferencesUI.py:5873 flatcamTools/ToolQRCode.py:99 +#: flatcamGUI/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 msgid "Version" msgstr "" -#: flatcamGUI/PreferencesUI.py:5875 flatcamTools/ToolQRCode.py:101 +#: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." msgstr "" -#: flatcamGUI/PreferencesUI.py:5886 flatcamTools/ToolQRCode.py:112 +#: flatcamGUI/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 msgid "Error correction" msgstr "" -#: flatcamGUI/PreferencesUI.py:5888 flatcamGUI/PreferencesUI.py:5899 +#: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 #, python-format msgid "" @@ -10118,60 +10161,60 @@ msgid "" "H = maximum 30%% errors can be corrected." msgstr "" -#: flatcamGUI/PreferencesUI.py:5909 flatcamTools/ToolQRCode.py:135 +#: flatcamGUI/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 msgid "Box Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:5911 flatcamTools/ToolQRCode.py:137 +#: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." msgstr "" -#: flatcamGUI/PreferencesUI.py:5922 flatcamTools/ToolQRCode.py:148 +#: flatcamGUI/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 msgid "Border Size" msgstr "" -#: flatcamGUI/PreferencesUI.py:5924 flatcamTools/ToolQRCode.py:150 +#: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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 "" -#: flatcamGUI/PreferencesUI.py:5935 flatcamTools/ToolQRCode.py:162 +#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 msgid "QRCode Data" msgstr "" -#: flatcamGUI/PreferencesUI.py:5937 flatcamTools/ToolQRCode.py:164 +#: flatcamGUI/PreferencesUI.py:5955 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" -#: flatcamGUI/PreferencesUI.py:5941 flatcamTools/ToolQRCode.py:168 +#: flatcamGUI/PreferencesUI.py:5959 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." msgstr "" -#: flatcamGUI/PreferencesUI.py:5947 flatcamTools/ToolQRCode.py:174 +#: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" msgstr "" -#: flatcamGUI/PreferencesUI.py:5949 flatcamTools/ToolQRCode.py:176 +#: flatcamGUI/PreferencesUI.py:5967 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 "" -#: flatcamGUI/PreferencesUI.py:5953 flatcamTools/ToolFilm.py:296 +#: flatcamGUI/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 msgid "Negative" msgstr "" -#: flatcamGUI/PreferencesUI.py:5954 flatcamTools/ToolFilm.py:295 +#: flatcamGUI/PreferencesUI.py:5972 flatcamTools/ToolFilm.py:295 #: flatcamTools/ToolQRCode.py:181 msgid "Positive" msgstr "" -#: flatcamGUI/PreferencesUI.py:5956 flatcamTools/ToolQRCode.py:183 +#: flatcamGUI/PreferencesUI.py:5974 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" @@ -10179,270 +10222,270 @@ msgid "" "file then perhaps the QRCode can be added as negative." msgstr "" -#: flatcamGUI/PreferencesUI.py:5967 flatcamGUI/PreferencesUI.py:5973 +#: flatcamGUI/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: 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 "" -#: flatcamGUI/PreferencesUI.py:5970 flatcamTools/ToolQRCode.py:197 +#: flatcamGUI/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 msgid "Rounded" msgstr "" -#: flatcamGUI/PreferencesUI.py:5980 flatcamTools/ToolQRCode.py:228 +#: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 msgid "Fill Color" msgstr "" -#: flatcamGUI/PreferencesUI.py:5982 flatcamTools/ToolQRCode.py:230 +#: flatcamGUI/PreferencesUI.py:6000 flatcamTools/ToolQRCode.py:230 msgid "Set the QRCode fill color (squares color)." msgstr "" -#: flatcamGUI/PreferencesUI.py:6001 flatcamTools/ToolQRCode.py:252 +#: flatcamGUI/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 msgid "Back Color" msgstr "" -#: flatcamGUI/PreferencesUI.py:6003 flatcamTools/ToolQRCode.py:254 +#: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." msgstr "" -#: flatcamGUI/PreferencesUI.py:6043 +#: flatcamGUI/PreferencesUI.py:6061 msgid "Copper Thieving Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:6055 +#: flatcamGUI/PreferencesUI.py:6073 msgid "" "A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file." msgstr "" -#: flatcamGUI/PreferencesUI.py:6063 +#: flatcamGUI/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." msgstr "" -#: flatcamGUI/PreferencesUI.py:6073 flatcamGUI/PreferencesUI.py:6277 +#: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 msgid "Clearance" msgstr "" -#: flatcamGUI/PreferencesUI.py:6075 +#: flatcamGUI/PreferencesUI.py:6093 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 "" -#: flatcamGUI/PreferencesUI.py:6103 flatcamTools/ToolCopperThieving.py:126 +#: flatcamGUI/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 msgid "Area Selection" msgstr "" -#: flatcamGUI/PreferencesUI.py:6104 flatcamTools/ToolCopperThieving.py:127 +#: flatcamGUI/PreferencesUI.py:6122 flatcamTools/ToolCopperThieving.py:127 #: flatcamTools/ToolNonCopperClear.py:437 flatcamTools/ToolPaint.py:316 msgid "Reference Object" msgstr "" -#: flatcamGUI/PreferencesUI.py:6106 flatcamTools/ToolCopperThieving.py:129 +#: flatcamGUI/PreferencesUI.py:6124 flatcamTools/ToolCopperThieving.py:129 #: flatcamTools/ToolNonCopperClear.py:439 msgid "Reference:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6108 +#: flatcamGUI/PreferencesUI.py:6126 msgid "" -"- 'Itself' - the copper Thieving extent is based on the object that is copper cleared.\n" -" - 'Area Selection' - left mouse click to start selection of the area to be filled.\n" +"- '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 "" -#: flatcamGUI/PreferencesUI.py:6117 flatcamTools/ToolCopperThieving.py:170 +#: flatcamGUI/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" msgstr "" -#: flatcamGUI/PreferencesUI.py:6118 flatcamTools/ToolCopperThieving.py:171 +#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" msgstr "" -#: flatcamGUI/PreferencesUI.py:6120 flatcamTools/ToolCopperThieving.py:173 +#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6122 +#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" -" - 'Minimal' - the bounding box will be the convex hull shape." +"- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" -#: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:191 +#: flatcamGUI/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" msgstr "" -#: flatcamGUI/PreferencesUI.py:6137 flatcamTools/ToolCopperThieving.py:192 +#: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 msgid "Squares Grid" msgstr "" -#: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:193 +#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 msgid "Lines Grid" msgstr "" -#: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:195 +#: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 msgid "Fill Type:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6142 +#: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" -" - 'Dots Grid' - the empty area will be filled with a pattern of dots.\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 "" -#: flatcamGUI/PreferencesUI.py:6150 flatcamTools/ToolCopperThieving.py:216 +#: flatcamGUI/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 msgid "Dots Grid Parameters" msgstr "" -#: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:222 +#: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 msgid "Dot diameter in Dots Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6167 flatcamGUI/PreferencesUI.py:6196 -#: flatcamGUI/PreferencesUI.py:6225 flatcamTools/ToolCopperThieving.py:233 +#: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 +#: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 flatcamTools/ToolCopperThieving.py:313 msgid "Spacing" msgstr "" -#: flatcamGUI/PreferencesUI.py:6169 flatcamTools/ToolCopperThieving.py:235 +#: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6179 flatcamTools/ToolCopperThieving.py:256 +#: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 msgid "Squares Grid Parameters" msgstr "" -#: flatcamGUI/PreferencesUI.py:6185 flatcamTools/ToolCopperThieving.py:262 +#: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6198 flatcamTools/ToolCopperThieving.py:275 +#: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6208 flatcamTools/ToolCopperThieving.py:296 +#: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 msgid "Lines Grid Parameters" msgstr "" -#: flatcamGUI/PreferencesUI.py:6214 flatcamTools/ToolCopperThieving.py:302 +#: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6227 flatcamTools/ToolCopperThieving.py:315 +#: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." msgstr "" -#: flatcamGUI/PreferencesUI.py:6237 flatcamTools/ToolCopperThieving.py:353 +#: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 msgid "Robber Bar Parameters" msgstr "" -#: flatcamGUI/PreferencesUI.py:6239 flatcamTools/ToolCopperThieving.py:355 +#: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." msgstr "" -#: flatcamGUI/PreferencesUI.py:6247 flatcamTools/ToolCopperThieving.py:363 +#: flatcamGUI/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 msgid "Bounding box margin for robber bar." msgstr "" -#: flatcamGUI/PreferencesUI.py:6258 flatcamTools/ToolCopperThieving.py:374 +#: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" msgstr "" -#: flatcamGUI/PreferencesUI.py:6260 flatcamTools/ToolCopperThieving.py:376 +#: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." msgstr "" -#: flatcamGUI/PreferencesUI.py:6270 flatcamTools/ToolCopperThieving.py:407 +#: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" msgstr "" -#: flatcamGUI/PreferencesUI.py:6272 flatcamTools/ToolCopperThieving.py:409 +#: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." msgstr "" -#: flatcamGUI/PreferencesUI.py:6279 flatcamTools/ToolCopperThieving.py:431 +#: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." msgstr "" -#: flatcamGUI/PreferencesUI.py:6298 +#: flatcamGUI/PreferencesUI.py:6316 msgid "Fiducials Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:6309 flatcamGUI/PreferencesUI.py:6425 +#: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 msgid "Parameters used for this tool." msgstr "" -#: flatcamGUI/PreferencesUI.py:6316 flatcamTools/ToolFiducials.py:158 +#: flatcamGUI/PreferencesUI.py:6334 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 "" -#: flatcamGUI/PreferencesUI.py:6344 flatcamTools/ToolFiducials.py:186 +#: flatcamGUI/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" msgstr "" -#: flatcamGUI/PreferencesUI.py:6345 flatcamTools/ToolFiducials.py:187 +#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 msgid "Manual" msgstr "" -#: flatcamGUI/PreferencesUI.py:6347 flatcamTools/ToolFiducials.py:189 +#: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" msgstr "" -#: flatcamGUI/PreferencesUI.py:6349 flatcamTools/ToolFiducials.py:191 +#: flatcamGUI/PreferencesUI.py:6367 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n" -" - 'Manual' - manual placement of fiducials." +"- 'Manual' - manual placement of fiducials." msgstr "" -#: flatcamGUI/PreferencesUI.py:6357 flatcamTools/ToolFiducials.py:199 +#: flatcamGUI/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" msgstr "" -#: flatcamGUI/PreferencesUI.py:6358 flatcamTools/ToolFiducials.py:200 +#: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" msgstr "" -#: flatcamGUI/PreferencesUI.py:6361 flatcamTools/ToolFiducials.py:203 +#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" msgstr "" -#: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:205 +#: flatcamGUI/PreferencesUI.py:6381 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" +"- '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 "" -#: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:221 +#: flatcamGUI/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" msgstr "" -#: flatcamGUI/PreferencesUI.py:6380 flatcamTools/ToolFiducials.py:222 +#: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" msgstr "" -#: flatcamGUI/PreferencesUI.py:6383 flatcamTools/ToolFiducials.py:224 +#: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 msgid "Fiducial Type" msgstr "" -#: flatcamGUI/PreferencesUI.py:6385 flatcamTools/ToolFiducials.py:226 +#: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -10450,19 +10493,19 @@ msgid "" "- 'Chess' - chess pattern fiducial." msgstr "" -#: flatcamGUI/PreferencesUI.py:6394 flatcamTools/ToolFiducials.py:235 +#: flatcamGUI/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" msgstr "" -#: flatcamGUI/PreferencesUI.py:6414 +#: flatcamGUI/PreferencesUI.py:6432 msgid "Calibration Tool Options" msgstr "" -#: flatcamGUI/PreferencesUI.py:6430 flatcamTools/ToolCalibration.py:74 +#: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 msgid "Source Type" msgstr "" -#: flatcamGUI/PreferencesUI.py:6431 flatcamTools/ToolCalibration.py:75 +#: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" "The source of calibration points.\n" "It can be:\n" @@ -10470,109 +10513,135 @@ msgid "" "- Free -> click freely on canvas to acquire the calibration points" msgstr "" -#: flatcamGUI/PreferencesUI.py:6436 flatcamTools/ToolCalibration.py:80 +#: flatcamGUI/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 msgid "Free" msgstr "" -#: flatcamGUI/PreferencesUI.py:6450 flatcamTools/ToolCalibration.py:297 +#: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 msgid "Height (Z) for travelling between the points." msgstr "" -#: flatcamGUI/PreferencesUI.py:6462 flatcamTools/ToolCalibration.py:309 +#: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 msgid "Verification Z" msgstr "" -#: flatcamGUI/PreferencesUI.py:6464 flatcamTools/ToolCalibration.py:311 +#: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." msgstr "" -#: flatcamGUI/PreferencesUI.py:6476 flatcamTools/ToolCalibration.py:323 +#: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" msgstr "" -#: flatcamGUI/PreferencesUI.py:6478 flatcamTools/ToolCalibration.py:325 +#: flatcamGUI/PreferencesUI.py:6496 flatcamTools/ToolCalibration.py:104 msgid "" "Include a sequence to zero the height (Z)\n" "of the verification tool." msgstr "" -#: flatcamGUI/PreferencesUI.py:6487 flatcamTools/ToolCalibration.py:334 +#: flatcamGUI/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." msgstr "" -#: flatcamGUI/PreferencesUI.py:6506 +#: flatcamGUI/PreferencesUI.py:6519 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 "" + +#: flatcamGUI/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 +msgid "Second point" +msgstr "" + +#: flatcamGUI/PreferencesUI.py:6532 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 "" + +#: flatcamGUI/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 +msgid "Top-Left" +msgstr "" + +#: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 +msgid "Bottom-Right" +msgstr "" + +#: flatcamGUI/PreferencesUI.py:6551 msgid "Excellon File associations" msgstr "" -#: flatcamGUI/PreferencesUI.py:6519 flatcamGUI/PreferencesUI.py:6592 -#: flatcamGUI/PreferencesUI.py:6662 flatcamGUI/PreferencesUI.py:6732 +#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 +#: flatcamGUI/PreferencesUI.py:6707 flatcamGUI/PreferencesUI.py:6777 msgid "Restore" msgstr "" -#: flatcamGUI/PreferencesUI.py:6520 flatcamGUI/PreferencesUI.py:6593 -#: flatcamGUI/PreferencesUI.py:6663 +#: flatcamGUI/PreferencesUI.py:6565 flatcamGUI/PreferencesUI.py:6638 +#: flatcamGUI/PreferencesUI.py:6708 msgid "Restore the extension list to the default state." msgstr "" -#: flatcamGUI/PreferencesUI.py:6521 flatcamGUI/PreferencesUI.py:6594 -#: flatcamGUI/PreferencesUI.py:6664 flatcamGUI/PreferencesUI.py:6734 +#: flatcamGUI/PreferencesUI.py:6566 flatcamGUI/PreferencesUI.py:6639 +#: flatcamGUI/PreferencesUI.py:6709 flatcamGUI/PreferencesUI.py:6779 msgid "Delete All" msgstr "" -#: flatcamGUI/PreferencesUI.py:6522 flatcamGUI/PreferencesUI.py:6595 -#: flatcamGUI/PreferencesUI.py:6665 +#: flatcamGUI/PreferencesUI.py:6567 flatcamGUI/PreferencesUI.py:6640 +#: flatcamGUI/PreferencesUI.py:6710 msgid "Delete all extensions from the list." msgstr "" -#: flatcamGUI/PreferencesUI.py:6530 flatcamGUI/PreferencesUI.py:6603 -#: flatcamGUI/PreferencesUI.py:6673 +#: flatcamGUI/PreferencesUI.py:6575 flatcamGUI/PreferencesUI.py:6648 +#: flatcamGUI/PreferencesUI.py:6718 msgid "Extensions list" msgstr "" -#: flatcamGUI/PreferencesUI.py:6532 flatcamGUI/PreferencesUI.py:6605 -#: flatcamGUI/PreferencesUI.py:6675 +#: flatcamGUI/PreferencesUI.py:6577 flatcamGUI/PreferencesUI.py:6650 +#: flatcamGUI/PreferencesUI.py:6720 msgid "" "List of file extensions to be\n" "associated with FlatCAM." msgstr "" -#: flatcamGUI/PreferencesUI.py:6552 flatcamGUI/PreferencesUI.py:6625 -#: flatcamGUI/PreferencesUI.py:6694 flatcamGUI/PreferencesUI.py:6766 +#: flatcamGUI/PreferencesUI.py:6597 flatcamGUI/PreferencesUI.py:6670 +#: flatcamGUI/PreferencesUI.py:6739 flatcamGUI/PreferencesUI.py:6811 msgid "Extension" msgstr "" -#: flatcamGUI/PreferencesUI.py:6553 flatcamGUI/PreferencesUI.py:6626 -#: flatcamGUI/PreferencesUI.py:6695 +#: flatcamGUI/PreferencesUI.py:6598 flatcamGUI/PreferencesUI.py:6671 +#: flatcamGUI/PreferencesUI.py:6740 msgid "A file extension to be added or deleted to the list." msgstr "" -#: flatcamGUI/PreferencesUI.py:6561 flatcamGUI/PreferencesUI.py:6634 -#: flatcamGUI/PreferencesUI.py:6703 +#: flatcamGUI/PreferencesUI.py:6606 flatcamGUI/PreferencesUI.py:6679 +#: flatcamGUI/PreferencesUI.py:6748 msgid "Add Extension" msgstr "" -#: flatcamGUI/PreferencesUI.py:6562 flatcamGUI/PreferencesUI.py:6635 -#: flatcamGUI/PreferencesUI.py:6704 +#: flatcamGUI/PreferencesUI.py:6607 flatcamGUI/PreferencesUI.py:6680 +#: flatcamGUI/PreferencesUI.py:6749 msgid "Add a file extension to the list" msgstr "" -#: flatcamGUI/PreferencesUI.py:6563 flatcamGUI/PreferencesUI.py:6636 -#: flatcamGUI/PreferencesUI.py:6705 +#: flatcamGUI/PreferencesUI.py:6608 flatcamGUI/PreferencesUI.py:6681 +#: flatcamGUI/PreferencesUI.py:6750 msgid "Delete Extension" msgstr "" -#: flatcamGUI/PreferencesUI.py:6564 flatcamGUI/PreferencesUI.py:6637 -#: flatcamGUI/PreferencesUI.py:6706 +#: flatcamGUI/PreferencesUI.py:6609 flatcamGUI/PreferencesUI.py:6682 +#: flatcamGUI/PreferencesUI.py:6751 msgid "Delete a file extension from the list" msgstr "" -#: flatcamGUI/PreferencesUI.py:6571 flatcamGUI/PreferencesUI.py:6644 -#: flatcamGUI/PreferencesUI.py:6713 +#: flatcamGUI/PreferencesUI.py:6616 flatcamGUI/PreferencesUI.py:6689 +#: flatcamGUI/PreferencesUI.py:6758 msgid "Apply Association" msgstr "" -#: flatcamGUI/PreferencesUI.py:6572 flatcamGUI/PreferencesUI.py:6645 -#: flatcamGUI/PreferencesUI.py:6714 +#: flatcamGUI/PreferencesUI.py:6617 flatcamGUI/PreferencesUI.py:6690 +#: flatcamGUI/PreferencesUI.py:6759 msgid "" "Apply the file associations between\n" "FlatCAM and the files with above extensions.\n" @@ -10580,31 +10649,31 @@ msgid "" "This work only in Windows." msgstr "" -#: flatcamGUI/PreferencesUI.py:6589 +#: flatcamGUI/PreferencesUI.py:6634 msgid "GCode File associations" msgstr "" -#: flatcamGUI/PreferencesUI.py:6659 +#: flatcamGUI/PreferencesUI.py:6704 msgid "Gerber File associations" msgstr "" -#: flatcamGUI/PreferencesUI.py:6729 +#: flatcamGUI/PreferencesUI.py:6774 msgid "Autocompleter Keywords" msgstr "" -#: flatcamGUI/PreferencesUI.py:6733 +#: flatcamGUI/PreferencesUI.py:6778 msgid "Restore the autocompleter keywords list to the default state." msgstr "" -#: flatcamGUI/PreferencesUI.py:6735 +#: flatcamGUI/PreferencesUI.py:6780 msgid "Delete all autocompleter keywords from the list." msgstr "" -#: flatcamGUI/PreferencesUI.py:6743 +#: flatcamGUI/PreferencesUI.py:6788 msgid "Keywords list" msgstr "" -#: flatcamGUI/PreferencesUI.py:6745 +#: flatcamGUI/PreferencesUI.py:6790 msgid "" "List of keywords used by\n" "the autocompleter in FlatCAM.\n" @@ -10612,23 +10681,23 @@ msgid "" "in the Code Editor and for the Tcl Shell." msgstr "" -#: flatcamGUI/PreferencesUI.py:6767 +#: flatcamGUI/PreferencesUI.py:6812 msgid "A keyword to be added or deleted to the list." msgstr "" -#: flatcamGUI/PreferencesUI.py:6775 +#: flatcamGUI/PreferencesUI.py:6820 msgid "Add keyword" msgstr "" -#: flatcamGUI/PreferencesUI.py:6776 +#: flatcamGUI/PreferencesUI.py:6821 msgid "Add a keyword to the list" msgstr "" -#: flatcamGUI/PreferencesUI.py:6777 +#: flatcamGUI/PreferencesUI.py:6822 msgid "Delete keyword" msgstr "" -#: flatcamGUI/PreferencesUI.py:6778 +#: flatcamGUI/PreferencesUI.py:6823 msgid "Delete a keyword from the list" msgstr "" @@ -10650,14 +10719,13 @@ msgid "" "the real diameters." msgstr "" -#: flatcamParsers/ParseExcellon.py:887 -#, python-brace-format +#: flatcamParsers/ParseExcellon.py:889 msgid "" -"{e_code} Excellon Parser error.\n" -"Parsing Failed. Line {l_nr}: {line}\n" +"Excellon Parser error.\n" +"Parsing Failed. Line" msgstr "" -#: flatcamParsers/ParseExcellon.py:972 +#: flatcamParsers/ParseExcellon.py:973 msgid "" "Excellon.create_geometry() -> a drill location was skipped due of not having a tool " "associated.\n" @@ -10672,11 +10740,14 @@ msgstr "" msgid "Gerber processing. Parsing" msgstr "" -#: flatcamParsers/ParseGerber.py:424 +#: flatcamParsers/ParseGerber.py:424 flatcamParsers/ParseHPGL2.py:176 msgid "lines" msgstr "" #: flatcamParsers/ParseGerber.py:953 flatcamParsers/ParseGerber.py:1048 +#: flatcamParsers/ParseHPGL2.py:269 flatcamParsers/ParseHPGL2.py:283 +#: flatcamParsers/ParseHPGL2.py:302 flatcamParsers/ParseHPGL2.py:326 +#: flatcamParsers/ParseHPGL2.py:361 msgid "Coordinates missing, line ignored" msgstr "" @@ -10690,7 +10761,7 @@ msgid "" "Line number" msgstr "" -#: flatcamParsers/ParseGerber.py:1395 +#: flatcamParsers/ParseGerber.py:1395 flatcamParsers/ParseHPGL2.py:396 msgid "Gerber processing. Joining polygons" msgstr "" @@ -10730,6 +10801,22 @@ msgstr "" msgid "Gerber Rotate done." msgstr "" +#: flatcamParsers/ParseHPGL2.py:176 +msgid "HPGL2 processing. Parsing" +msgstr "" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line" +msgstr "" + +#: flatcamParsers/ParseHPGL2.py:408 +msgid "HPGL2 Line Content" +msgstr "" + +#: flatcamParsers/ParseHPGL2.py:409 +msgid "HPGL2 Parser ERROR" +msgstr "" + #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" msgstr "" @@ -10805,95 +10892,99 @@ msgstr "" msgid "Calc. Tool" msgstr "" -#: flatcamTools/ToolCalibration.py:36 -msgid "Calibration Tool" +#: flatcamTools/ToolCalibration.py:67 +msgid "GCode Parameters" msgstr "" -#: flatcamTools/ToolCalibration.py:66 +#: flatcamTools/ToolCalibration.py:69 +msgid "Parameters used when creating the GCode in this tool." +msgstr "" + +#: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:68 +#: flatcamTools/ToolCalibration.py:175 msgid "" -"Pick four points by clicking inside the drill holes.\n" +"Pick four points by clicking on canvas.\n" "Those four points should be in the four\n" -"(as much as possible) corners of the Excellon object." +"(as much as possible) corners of the object." msgstr "" -#: flatcamTools/ToolCalibration.py:86 flatcamTools/ToolCutOut.py:80 +#: flatcamTools/ToolCalibration.py:193 flatcamTools/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 flatcamTools/ToolPanelize.py:66 #: flatcamTools/ToolProperties.py:169 msgid "Object Type" msgstr "" -#: flatcamTools/ToolCalibration.py:101 +#: flatcamTools/ToolCalibration.py:211 msgid "Source object selection" msgstr "" -#: flatcamTools/ToolCalibration.py:103 +#: flatcamTools/ToolCalibration.py:213 msgid "FlatCAM Object to be used as a source for reference points." msgstr "" -#: flatcamTools/ToolCalibration.py:109 +#: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" msgstr "" -#: flatcamTools/ToolCalibration.py:111 +#: flatcamTools/ToolCalibration.py:221 msgid "" "Contain the expected calibration points and the\n" "ones measured." msgstr "" -#: flatcamTools/ToolCalibration.py:126 flatcamTools/ToolSub.py:74 +#: flatcamTools/ToolCalibration.py:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 msgid "Target" msgstr "" -#: flatcamTools/ToolCalibration.py:127 +#: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" msgstr "" -#: flatcamTools/ToolCalibration.py:139 +#: flatcamTools/ToolCalibration.py:249 msgid "Bot Left X" msgstr "" -#: flatcamTools/ToolCalibration.py:148 +#: flatcamTools/ToolCalibration.py:258 msgid "Bot Left Y" msgstr "" -#: flatcamTools/ToolCalibration.py:156 flatcamTools/ToolCalibration.py:157 +#: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 msgid "Origin" msgstr "" -#: flatcamTools/ToolCalibration.py:168 +#: flatcamTools/ToolCalibration.py:278 msgid "Bot Right X" msgstr "" -#: flatcamTools/ToolCalibration.py:178 +#: flatcamTools/ToolCalibration.py:288 msgid "Bot Right Y" msgstr "" -#: flatcamTools/ToolCalibration.py:193 +#: flatcamTools/ToolCalibration.py:303 msgid "Top Left X" msgstr "" -#: flatcamTools/ToolCalibration.py:202 +#: flatcamTools/ToolCalibration.py:312 msgid "Top Left Y" msgstr "" -#: flatcamTools/ToolCalibration.py:217 +#: flatcamTools/ToolCalibration.py:327 msgid "Top Right X" msgstr "" -#: flatcamTools/ToolCalibration.py:226 +#: flatcamTools/ToolCalibration.py:337 msgid "Top Right Y" msgstr "" -#: flatcamTools/ToolCalibration.py:258 +#: flatcamTools/ToolCalibration.py:370 msgid "Get Points" msgstr "" -#: flatcamTools/ToolCalibration.py:260 +#: flatcamTools/ToolCalibration.py:372 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" @@ -10901,126 +10992,131 @@ msgid "" "the object." msgstr "" -#: flatcamTools/ToolCalibration.py:281 +#: flatcamTools/ToolCalibration.py:393 msgid "STEP 2: Verification GCode" msgstr "" -#: flatcamTools/ToolCalibration.py:283 flatcamTools/ToolCalibration.py:350 +#: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" "Generate GCode file to locate and align the PCB by using\n" -"the four points acquired above." +"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 "" -#: flatcamTools/ToolCalibration.py:288 -msgid "GCode Parameters" -msgstr "" - -#: flatcamTools/ToolCalibration.py:290 -msgid "Parameters used when creating the GCode in this tool." -msgstr "" - -#: flatcamTools/ToolCalibration.py:348 flatcamTools/ToolSolderPaste.py:347 +#: flatcamTools/ToolCalibration.py:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "" -#: flatcamTools/ToolCalibration.py:369 +#: flatcamTools/ToolCalibration.py:432 msgid "STEP 3: Adjustments" msgstr "" -#: flatcamTools/ToolCalibration.py:371 flatcamTools/ToolCalibration.py:380 +#: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 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 "" -#: flatcamTools/ToolCalibration.py:378 +#: flatcamTools/ToolCalibration.py:441 msgid "Calculate Factors" msgstr "" -#: flatcamTools/ToolCalibration.py:400 +#: flatcamTools/ToolCalibration.py:463 msgid "STEP 4: Adjusted GCode" msgstr "" -#: flatcamTools/ToolCalibration.py:402 flatcamTools/ToolCalibration.py:542 +#: flatcamTools/ToolCalibration.py:465 msgid "" "Generate verification GCode file adjusted with\n" "the factors above." msgstr "" -#: flatcamTools/ToolCalibration.py:407 +#: flatcamTools/ToolCalibration.py:470 msgid "Scale Factor X:" msgstr "" -#: flatcamTools/ToolCalibration.py:419 +#: flatcamTools/ToolCalibration.py:482 msgid "Scale Factor Y:" msgstr "" -#: flatcamTools/ToolCalibration.py:431 +#: flatcamTools/ToolCalibration.py:494 msgid "Apply Scale Factors" msgstr "" -#: flatcamTools/ToolCalibration.py:433 +#: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:443 +#: flatcamTools/ToolCalibration.py:506 msgid "Skew Angle X:" msgstr "" -#: flatcamTools/ToolCalibration.py:456 +#: flatcamTools/ToolCalibration.py:519 msgid "Skew Angle Y:" msgstr "" -#: flatcamTools/ToolCalibration.py:469 +#: flatcamTools/ToolCalibration.py:532 msgid "Apply Skew Factors" msgstr "" -#: flatcamTools/ToolCalibration.py:471 +#: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." msgstr "" -#: flatcamTools/ToolCalibration.py:540 +#: flatcamTools/ToolCalibration.py:603 msgid "Generate Adjusted GCode" msgstr "" -#: flatcamTools/ToolCalibration.py:561 +#: flatcamTools/ToolCalibration.py:605 +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 "" + +#: flatcamTools/ToolCalibration.py:626 msgid "STEP 5: Calibrate FlatCAM Objects" msgstr "" -#: flatcamTools/ToolCalibration.py:563 +#: flatcamTools/ToolCalibration.py:628 msgid "" "Adjust the FlatCAM objects\n" "with the factors determined and verified above." msgstr "" -#: flatcamTools/ToolCalibration.py:572 +#: flatcamTools/ToolCalibration.py:641 msgid "Adjusted object type" msgstr "" -#: flatcamTools/ToolCalibration.py:574 +#: flatcamTools/ToolCalibration.py:643 msgid "Type of the FlatCAM Object to be adjusted." msgstr "" -#: flatcamTools/ToolCalibration.py:585 +#: flatcamTools/ToolCalibration.py:654 msgid "Adjusted object selection" msgstr "" -#: flatcamTools/ToolCalibration.py:587 +#: flatcamTools/ToolCalibration.py:656 msgid "The FlatCAM Object to be adjusted." msgstr "" -#: flatcamTools/ToolCalibration.py:594 +#: flatcamTools/ToolCalibration.py:663 msgid "Calibrate" msgstr "" -#: flatcamTools/ToolCalibration.py:596 +#: flatcamTools/ToolCalibration.py:665 msgid "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." msgstr "" -#: flatcamTools/ToolCalibration.py:617 flatcamTools/ToolCopperThieving.py:482 +#: flatcamTools/ToolCalibration.py:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 #: flatcamTools/ToolFiducials.py:316 flatcamTools/ToolFilm.py:518 #: flatcamTools/ToolNonCopperClear.py:492 flatcamTools/ToolOptimal.py:237 @@ -11030,7 +11126,7 @@ msgstr "" msgid "Reset Tool" msgstr "" -#: flatcamTools/ToolCalibration.py:619 flatcamTools/ToolCopperThieving.py:484 +#: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 #: flatcamTools/ToolFiducials.py:318 flatcamTools/ToolFilm.py:520 #: flatcamTools/ToolNonCopperClear.py:494 flatcamTools/ToolOptimal.py:239 @@ -11040,51 +11136,51 @@ msgstr "" msgid "Will reset the tool parameters." msgstr "" -#: flatcamTools/ToolCalibration.py:688 -msgid "Calibrate Tool" -msgstr "" - -#: flatcamTools/ToolCalibration.py:715 +#: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" msgstr "" -#: flatcamTools/ToolCalibration.py:747 +#: flatcamTools/ToolCalibration.py:824 msgid "There is no source FlatCAM object selected..." msgstr "" -#: flatcamTools/ToolCalibration.py:768 +#: flatcamTools/ToolCalibration.py:845 msgid "Get First calibration point. Bottom Left..." msgstr "" -#: flatcamTools/ToolCalibration.py:820 -msgid "Get Second calibration point. Bottom Right..." +#: flatcamTools/ToolCalibration.py:906 +msgid "Cancelled by user request." msgstr "" -#: flatcamTools/ToolCalibration.py:824 -msgid "Get Third calibration point. Top Left..." +#: flatcamTools/ToolCalibration.py:912 +msgid "Get Second calibration point. Bottom Right (Top Left)..." msgstr "" -#: flatcamTools/ToolCalibration.py:828 +#: flatcamTools/ToolCalibration.py:916 +msgid "Get Third calibration point. Top Left (Bottom Right)..." +msgstr "" + +#: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." msgstr "" -#: flatcamTools/ToolCalibration.py:832 +#: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." msgstr "" -#: flatcamTools/ToolCalibration.py:857 -msgid "Verification GCode for FlatCAM Calibrate Tool" +#: flatcamTools/ToolCalibration.py:955 +msgid "Verification GCode for FlatCAM Calibration Tool" msgstr "" -#: flatcamTools/ToolCalibration.py:869 flatcamTools/ToolCalibration.py:923 +#: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" msgstr "" -#: flatcamTools/ToolCalibration.py:881 +#: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." msgstr "" -#: flatcamTools/ToolCalibration.py:1041 flatcamTools/ToolCalibration.py:1137 +#: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 msgid "There is no FlatCAM object selected..." msgstr "" @@ -11101,7 +11197,7 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:131 msgid "" -"- 'Itself' - the copper thieving extent is based on the object that is copper cleared.\n" +"- '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." @@ -11143,20 +11239,6 @@ msgstr "" msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" -#: flatcamTools/ToolCopperThieving.py:175 -msgid "" -"- 'Rectangular' - the bounding box will be of rectangular shape.\n" -"- 'Minimal' - the bounding box will be the convex hull shape." -msgstr "" - -#: flatcamTools/ToolCopperThieving.py:197 -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 "" - #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" msgstr "" @@ -11262,8 +11344,8 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:754 flatcamTools/ToolCopperThieving.py:787 #: flatcamTools/ToolCutOut.py:466 flatcamTools/ToolCutOut.py:640 -#: flatcamTools/ToolNonCopperClear.py:1155 flatcamTools/ToolNonCopperClear.py:1196 -#: flatcamTools/ToolNonCopperClear.py:1228 flatcamTools/ToolPaint.py:1077 +#: flatcamTools/ToolNonCopperClear.py:1156 flatcamTools/ToolNonCopperClear.py:1197 +#: flatcamTools/ToolNonCopperClear.py:1229 flatcamTools/ToolPaint.py:1079 #: flatcamTools/ToolPanelize.py:401 flatcamTools/ToolPanelize.py:416 #: flatcamTools/ToolSub.py:288 flatcamTools/ToolSub.py:301 flatcamTools/ToolSub.py:492 #: flatcamTools/ToolSub.py:507 tclCommands/TclCommandCopperClear.py:97 @@ -11271,7 +11353,7 @@ msgstr "" msgid "Could not retrieve object" msgstr "" -#: flatcamTools/ToolCopperThieving.py:764 flatcamTools/ToolNonCopperClear.py:1209 +#: flatcamTools/ToolCopperThieving.py:764 flatcamTools/ToolNonCopperClear.py:1210 msgid "Click the start point of the area." msgstr "" @@ -11279,8 +11361,8 @@ msgstr "" msgid "Click the end point of the filling area." msgstr "" -#: flatcamTools/ToolCopperThieving.py:821 flatcamTools/ToolNonCopperClear.py:1265 -#: flatcamTools/ToolPaint.py:1204 +#: flatcamTools/ToolCopperThieving.py:821 flatcamTools/ToolNonCopperClear.py:1266 +#: flatcamTools/ToolPaint.py:1206 msgid "Zone added. Click to start adding next zone or right click to finish." msgstr "" @@ -11310,12 +11392,12 @@ msgstr "" msgid "Geometry not supported for bounding box" msgstr "" -#: flatcamTools/ToolCopperThieving.py:1061 flatcamTools/ToolNonCopperClear.py:1516 -#: flatcamTools/ToolPaint.py:2569 +#: flatcamTools/ToolCopperThieving.py:1061 flatcamTools/ToolNonCopperClear.py:1517 +#: flatcamTools/ToolPaint.py:2571 msgid "No object available." msgstr "" -#: flatcamTools/ToolCopperThieving.py:1098 flatcamTools/ToolNonCopperClear.py:1558 +#: flatcamTools/ToolCopperThieving.py:1098 flatcamTools/ToolNonCopperClear.py:1559 msgid "The reference object type is not supported." msgstr "" @@ -11480,8 +11562,8 @@ msgstr "" msgid "Any form CutOut operation finished." msgstr "" -#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1159 -#: flatcamTools/ToolPaint.py:997 flatcamTools/ToolPanelize.py:406 +#: flatcamTools/ToolCutOut.py:644 flatcamTools/ToolNonCopperClear.py:1160 +#: flatcamTools/ToolPaint.py:999 flatcamTools/ToolPanelize.py:406 #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:70 msgid "Object not found" msgstr "" @@ -11555,10 +11637,6 @@ msgstr "" msgid "Geometry Obj to be mirrored." msgstr "" -#: flatcamTools/ToolDblSided.py:156 -msgid "Axis Ref:" -msgstr "" - #: flatcamTools/ToolDblSided.py:177 msgid "Point/Box Reference" msgstr "" @@ -11748,9 +11826,16 @@ msgstr "" msgid "MEASURING: Click on the Destination point ..." msgstr "" -#: flatcamTools/ToolDistance.py:352 flatcamTools/ToolDistanceMin.py:281 -#, python-brace-format -msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" +#: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 +msgid "MEASURING" +msgstr "" + +#: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 +msgid "Result" +msgstr "" + +#: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 +msgid "Distance" msgstr "" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 @@ -11802,11 +11887,11 @@ msgstr "" msgid "Select two objects and no more. Currently the selection has objects: " msgstr "" -#: flatcamTools/ToolDistanceMin.py:288 +#: flatcamTools/ToolDistanceMin.py:291 msgid "Objects intersects or touch at" msgstr "" -#: flatcamTools/ToolDistanceMin.py:294 +#: flatcamTools/ToolDistanceMin.py:297 msgid "Jumped to the half point between the two selected objects" msgstr "" @@ -11832,6 +11917,12 @@ msgstr "" msgid "Second Point" 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 "" + #: flatcamTools/ToolFiducials.py:258 msgid "Copper Gerber" msgstr "" @@ -11995,58 +12086,62 @@ msgstr "" msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" -#: flatcamTools/ToolFilm.py:680 +#: flatcamTools/ToolFilm.py:673 +msgid "No FlatCAM object selected." +msgstr "" + +#: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "" -#: flatcamTools/ToolFilm.py:729 flatcamTools/ToolFilm.py:733 +#: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 msgid "Export positive film" msgstr "" -#: flatcamTools/ToolFilm.py:738 +#: flatcamTools/ToolFilm.py:742 msgid "Export positive film cancelled." msgstr "" -#: flatcamTools/ToolFilm.py:760 +#: flatcamTools/ToolFilm.py:770 msgid "No Excellon object selected. Load an object for punching reference and retry." msgstr "" -#: flatcamTools/ToolFilm.py:784 +#: flatcamTools/ToolFilm.py:794 msgid "" " Could not generate punched hole film because the punch hole sizeis bigger than some of " "the apertures in the Gerber object." msgstr "" -#: flatcamTools/ToolFilm.py:796 +#: 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 "" -#: flatcamTools/ToolFilm.py:814 +#: flatcamTools/ToolFilm.py:824 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 "" -#: flatcamTools/ToolFilm.py:869 flatcamTools/ToolFilm.py:873 +#: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 msgid "Export negative film" msgstr "" -#: flatcamTools/ToolFilm.py:878 +#: flatcamTools/ToolFilm.py:888 msgid "Export negative film cancelled." msgstr "" -#: flatcamTools/ToolFilm.py:934 flatcamTools/ToolFilm.py:1112 +#: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 msgid "No object Box. Using instead" msgstr "" -#: flatcamTools/ToolFilm.py:1050 flatcamTools/ToolFilm.py:1221 +#: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 msgid "Film file exported to" msgstr "" -#: flatcamTools/ToolFilm.py:1053 flatcamTools/ToolFilm.py:1224 +#: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." msgstr "" @@ -12281,128 +12376,128 @@ msgstr "" msgid "Generate Geometry" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:497 +#: flatcamTools/ToolNonCopperClear.py:587 flatcamTools/ToolPaint.py:498 #: flatcamTools/ToolSolderPaste.py:553 msgid "New Tool" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:985 flatcamTools/ToolPaint.py:769 +#: flatcamTools/ToolNonCopperClear.py:986 flatcamTools/ToolPaint.py:771 #: flatcamTools/ToolSolderPaste.py:884 msgid "Please enter a tool diameter to add, in Float format." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1016 flatcamTools/ToolPaint.py:794 +#: flatcamTools/ToolNonCopperClear.py:1017 flatcamTools/ToolPaint.py:796 msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1021 flatcamTools/ToolPaint.py:800 +#: flatcamTools/ToolNonCopperClear.py:1022 flatcamTools/ToolPaint.py:802 msgid "New tool added to Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1065 flatcamTools/ToolPaint.py:846 +#: flatcamTools/ToolNonCopperClear.py:1066 flatcamTools/ToolPaint.py:848 msgid "Tool from Tool Table was edited." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1076 flatcamTools/ToolPaint.py:858 +#: flatcamTools/ToolNonCopperClear.py:1077 flatcamTools/ToolPaint.py:860 #: flatcamTools/ToolSolderPaste.py:975 msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1123 flatcamTools/ToolPaint.py:956 +#: flatcamTools/ToolNonCopperClear.py:1124 flatcamTools/ToolPaint.py:958 msgid "Delete failed. Select a tool to delete." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1128 flatcamTools/ToolPaint.py:962 +#: flatcamTools/ToolNonCopperClear.py:1129 flatcamTools/ToolPaint.py:964 msgid "Tool(s) deleted from Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1175 +#: flatcamTools/ToolNonCopperClear.py:1176 msgid "Wrong Tool Dia value format entered, use a number." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1184 flatcamTools/ToolPaint.py:1026 +#: flatcamTools/ToolNonCopperClear.py:1185 flatcamTools/ToolPaint.py:1028 msgid "No selected tools in Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1259 flatcamTools/ToolPaint.py:1198 +#: flatcamTools/ToolNonCopperClear.py:1260 flatcamTools/ToolPaint.py:1200 msgid "Click the end point of the paint area." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1413 flatcamTools/ToolNonCopperClear.py:1415 +#: flatcamTools/ToolNonCopperClear.py:1414 flatcamTools/ToolNonCopperClear.py:1416 msgid "Non-Copper clearing ..." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1425 +#: flatcamTools/ToolNonCopperClear.py:1426 msgid "NCC Tool started. Reading parameters." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1488 +#: flatcamTools/ToolNonCopperClear.py:1489 msgid "NCC Tool. Preparing non-copper polygons." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1584 +#: flatcamTools/ToolNonCopperClear.py:1585 msgid "NCC Tool. Finished non-copper polygons. Normal copper clearing task started." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1617 msgid "NCC Tool. Calculate 'empty' area." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1629 flatcamTools/ToolNonCopperClear.py:1728 -#: flatcamTools/ToolNonCopperClear.py:1740 flatcamTools/ToolNonCopperClear.py:1989 -#: flatcamTools/ToolNonCopperClear.py:2085 flatcamTools/ToolNonCopperClear.py:2097 +#: flatcamTools/ToolNonCopperClear.py:1630 flatcamTools/ToolNonCopperClear.py:1729 +#: flatcamTools/ToolNonCopperClear.py:1741 flatcamTools/ToolNonCopperClear.py:1990 +#: flatcamTools/ToolNonCopperClear.py:2086 flatcamTools/ToolNonCopperClear.py:2098 msgid "Buffering finished" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1747 flatcamTools/ToolNonCopperClear.py:2103 +#: flatcamTools/ToolNonCopperClear.py:1748 flatcamTools/ToolNonCopperClear.py:2104 msgid "The selected object is not suitable for copper clearing." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1752 flatcamTools/ToolNonCopperClear.py:2108 +#: flatcamTools/ToolNonCopperClear.py:1753 flatcamTools/ToolNonCopperClear.py:2109 msgid "Could not get the extent of the area to be non copper cleared." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1759 +#: flatcamTools/ToolNonCopperClear.py:1760 msgid "NCC Tool. Finished calculation of 'empty' area." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1772 flatcamTools/ToolNonCopperClear.py:2133 +#: flatcamTools/ToolNonCopperClear.py:1773 flatcamTools/ToolNonCopperClear.py:2134 msgid "NCC Tool clearing with tool diameter = " msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1775 flatcamTools/ToolNonCopperClear.py:2136 +#: flatcamTools/ToolNonCopperClear.py:1776 flatcamTools/ToolNonCopperClear.py:2137 msgid "started." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1918 +#: flatcamTools/ToolNonCopperClear.py:1919 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 "" -#: flatcamTools/ToolNonCopperClear.py:1938 +#: flatcamTools/ToolNonCopperClear.py:1939 msgid "NCC Tool clear all done." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1940 +#: flatcamTools/ToolNonCopperClear.py:1941 msgid "NCC Tool clear all done but the copper features isolation is broken for" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1943 flatcamTools/ToolNonCopperClear.py:2309 +#: flatcamTools/ToolNonCopperClear.py:1944 flatcamTools/ToolNonCopperClear.py:2310 msgid "tools" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:2305 +#: flatcamTools/ToolNonCopperClear.py:2306 msgid "NCC Tool Rest Machining clear all done." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:2308 +#: flatcamTools/ToolNonCopperClear.py:2309 msgid "" "NCC Tool Rest Machining clear all done but the copper features isolation is broken for" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:2755 +#: flatcamTools/ToolNonCopperClear.py:2756 msgid "" "Try to use the Buffering Type = Full in Preferences -> Gerber General. Reload the Gerber " "file after this change." @@ -12642,144 +12737,144 @@ msgid "" "specified by another object." msgstr "" -#: flatcamTools/ToolPaint.py:976 +#: flatcamTools/ToolPaint.py:978 msgid "Paint Tool. Reading parameters." msgstr "" -#: flatcamTools/ToolPaint.py:991 +#: flatcamTools/ToolPaint.py:993 #, python-format msgid "Could not retrieve object: %s" msgstr "" -#: flatcamTools/ToolPaint.py:1005 +#: flatcamTools/ToolPaint.py:1007 msgid "Can't do Paint on MultiGeo geometries" msgstr "" -#: flatcamTools/ToolPaint.py:1038 +#: flatcamTools/ToolPaint.py:1040 msgid "Click on a polygon to paint it." msgstr "" -#: flatcamTools/ToolPaint.py:1057 +#: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "" -#: flatcamTools/ToolPaint.py:1125 +#: flatcamTools/ToolPaint.py:1127 msgid "Click to add next polygon or right click to start painting." msgstr "" -#: flatcamTools/ToolPaint.py:1138 +#: flatcamTools/ToolPaint.py:1140 msgid "Click to add/remove next polygon or right click to start painting." msgstr "" -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 flatcamTools/ToolPaint.py:1883 -#: flatcamTools/ToolPaint.py:1887 flatcamTools/ToolPaint.py:1890 -#: flatcamTools/ToolPaint.py:2172 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 flatcamTools/ToolPaint.py:2354 -#: flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 +#: flatcamTools/ToolPaint.py:1889 flatcamTools/ToolPaint.py:1892 +#: flatcamTools/ToolPaint.py:2174 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:2363 msgid "Paint Tool." msgstr "" -#: flatcamTools/ToolPaint.py:1346 flatcamTools/ToolPaint.py:1349 -#: flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 +#: flatcamTools/ToolPaint.py:1353 msgid "Normal painting polygon task started." msgstr "" -#: flatcamTools/ToolPaint.py:1347 flatcamTools/ToolPaint.py:1709 -#: flatcamTools/ToolPaint.py:1884 flatcamTools/ToolPaint.py:2174 -#: flatcamTools/ToolPaint.py:2356 +#: flatcamTools/ToolPaint.py:1349 flatcamTools/ToolPaint.py:1711 +#: flatcamTools/ToolPaint.py:1886 flatcamTools/ToolPaint.py:2176 +#: flatcamTools/ToolPaint.py:2358 msgid "Buffering geometry..." msgstr "" -#: flatcamTools/ToolPaint.py:1369 +#: flatcamTools/ToolPaint.py:1371 msgid "No polygon found." msgstr "" -#: flatcamTools/ToolPaint.py:1403 +#: flatcamTools/ToolPaint.py:1405 msgid "Painting polygon..." msgstr "" -#: flatcamTools/ToolPaint.py:1451 +#: flatcamTools/ToolPaint.py:1453 msgid "Geometry could not be painted completely" msgstr "" -#: flatcamTools/ToolPaint.py:1484 +#: flatcamTools/ToolPaint.py:1486 msgid "" "Could not do Paint. Try a different combination of parameters. Or a different strategy of " "paint" msgstr "" -#: flatcamTools/ToolPaint.py:1536 flatcamTools/ToolPaint.py:1863 -#: flatcamTools/ToolPaint.py:2013 flatcamTools/ToolPaint.py:2334 -#: flatcamTools/ToolPaint.py:2488 +#: flatcamTools/ToolPaint.py:1538 flatcamTools/ToolPaint.py:1865 +#: flatcamTools/ToolPaint.py:2015 flatcamTools/ToolPaint.py:2336 +#: flatcamTools/ToolPaint.py:2490 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 "" -#: flatcamTools/ToolPaint.py:1542 +#: flatcamTools/ToolPaint.py:1544 msgid "Paint Single Done." msgstr "" -#: flatcamTools/ToolPaint.py:1574 flatcamTools/ToolPaint.py:2041 -#: flatcamTools/ToolPaint.py:2516 +#: flatcamTools/ToolPaint.py:1576 flatcamTools/ToolPaint.py:2043 +#: flatcamTools/ToolPaint.py:2518 msgid "Polygon Paint started ..." msgstr "" -#: flatcamTools/ToolPaint.py:1626 flatcamTools/ToolPaint.py:2103 +#: flatcamTools/ToolPaint.py:1628 flatcamTools/ToolPaint.py:2105 msgid "Painting polygons..." msgstr "" -#: flatcamTools/ToolPaint.py:1708 flatcamTools/ToolPaint.py:1711 -#: flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1710 flatcamTools/ToolPaint.py:1713 +#: flatcamTools/ToolPaint.py:1715 msgid "Paint Tool. Normal painting all task started." msgstr "" -#: flatcamTools/ToolPaint.py:1747 flatcamTools/ToolPaint.py:1919 -#: flatcamTools/ToolPaint.py:2221 flatcamTools/ToolPaint.py:2397 +#: flatcamTools/ToolPaint.py:1749 flatcamTools/ToolPaint.py:1921 +#: flatcamTools/ToolPaint.py:2223 flatcamTools/ToolPaint.py:2399 msgid "Painting with tool diameter = " msgstr "" -#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1922 -#: flatcamTools/ToolPaint.py:2224 flatcamTools/ToolPaint.py:2400 +#: flatcamTools/ToolPaint.py:1752 flatcamTools/ToolPaint.py:1924 +#: flatcamTools/ToolPaint.py:2226 flatcamTools/ToolPaint.py:2402 msgid "started" msgstr "" -#: flatcamTools/ToolPaint.py:1812 flatcamTools/ToolPaint.py:1968 -#: flatcamTools/ToolPaint.py:2284 flatcamTools/ToolPaint.py:2444 +#: flatcamTools/ToolPaint.py:1814 flatcamTools/ToolPaint.py:1970 +#: flatcamTools/ToolPaint.py:2286 flatcamTools/ToolPaint.py:2446 msgid "" "Could not do Paint All. Try a different combination of parameters. Or a different Method " "of paint" msgstr "" -#: flatcamTools/ToolPaint.py:1872 +#: flatcamTools/ToolPaint.py:1874 msgid "Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1883 flatcamTools/ToolPaint.py:1887 -#: flatcamTools/ToolPaint.py:1890 +#: flatcamTools/ToolPaint.py:1885 flatcamTools/ToolPaint.py:1889 +#: flatcamTools/ToolPaint.py:1892 msgid "Rest machining painting all task started." msgstr "" -#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2497 +#: flatcamTools/ToolPaint.py:2024 flatcamTools/ToolPaint.py:2499 msgid "Paint All with Rest-Machining done." msgstr "" -#: flatcamTools/ToolPaint.py:2173 flatcamTools/ToolPaint.py:2177 -#: flatcamTools/ToolPaint.py:2180 +#: flatcamTools/ToolPaint.py:2175 flatcamTools/ToolPaint.py:2179 +#: flatcamTools/ToolPaint.py:2182 msgid "Normal painting area task started." msgstr "" -#: flatcamTools/ToolPaint.py:2343 +#: flatcamTools/ToolPaint.py:2345 msgid "Paint Area Done." msgstr "" -#: flatcamTools/ToolPaint.py:2355 flatcamTools/ToolPaint.py:2361 +#: flatcamTools/ToolPaint.py:2357 flatcamTools/ToolPaint.py:2363 msgid "Rest machining painting area task started." msgstr "" -#: flatcamTools/ToolPaint.py:2358 +#: flatcamTools/ToolPaint.py:2360 msgid "Paint Tool. Rest machining painting area task started." msgstr "" @@ -13652,36 +13747,36 @@ msgstr "" msgid "Generating Solder Paste dispensing geometry..." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1287 +#: flatcamTools/ToolSolderPaste.py:1286 msgid "There is no Geometry object available." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1292 +#: flatcamTools/ToolSolderPaste.py:1291 msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1400 +#: flatcamTools/ToolSolderPaste.py:1398 msgid "ToolSolderPaste CNCjob created" msgstr "" -#: flatcamTools/ToolSolderPaste.py:1421 +#: flatcamTools/ToolSolderPaste.py:1419 msgid "SP GCode Editor" msgstr "" -#: flatcamTools/ToolSolderPaste.py:1433 flatcamTools/ToolSolderPaste.py:1438 -#: flatcamTools/ToolSolderPaste.py:1493 +#: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 +#: flatcamTools/ToolSolderPaste.py:1491 msgid "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1463 +#: flatcamTools/ToolSolderPaste.py:1461 msgid "No Gcode in the object" msgstr "" -#: flatcamTools/ToolSolderPaste.py:1503 +#: flatcamTools/ToolSolderPaste.py:1501 msgid "Export GCode ..." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1551 +#: flatcamTools/ToolSolderPaste.py:1549 msgid "Solder paste dispenser GCode file saved to" msgstr "" @@ -13946,26 +14041,26 @@ msgstr "" msgid "TclCommand Bounds done." msgstr "" -#: tclCommands/TclCommandCopperClear.py:241 tclCommands/TclCommandPaint.py:239 +#: tclCommands/TclCommandCopperClear.py:242 tclCommands/TclCommandPaint.py:240 msgid "Expected -box ." msgstr "" -#: tclCommands/TclCommandCopperClear.py:250 tclCommands/TclCommandPaint.py:248 +#: tclCommands/TclCommandCopperClear.py:251 tclCommands/TclCommandPaint.py:249 #: tclCommands/TclCommandScale.py:75 msgid "Could not retrieve box object" msgstr "" -#: tclCommands/TclCommandCopperClear.py:272 +#: tclCommands/TclCommandCopperClear.py:273 msgid "" "None of the following args: 'ref', 'all' were found or none was set to 1.\n" "Copper clearing failed." msgstr "" -#: tclCommands/TclCommandPaint.py:216 +#: tclCommands/TclCommandPaint.py:217 msgid "Expected -x and -y ." msgstr "" -#: tclCommands/TclCommandPaint.py:267 +#: tclCommands/TclCommandPaint.py:268 msgid "" "There was none of the following args: 'ref', 'single', 'all'.\n" "Paint failed." From 7c04bb7837790658ca01c658212cbee4f5c8c405 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 14 Dec 2019 19:33:13 +0200 Subject: [PATCH 36/36] - finished the strings update in the Google-translated Spanish --- README.md | 4 + locale/es/LC_MESSAGES/strings.mo | Bin 309764 -> 362770 bytes locale/es/LC_MESSAGES/strings.po | 1528 ++++++++++++------------------ 3 files changed, 593 insertions(+), 939 deletions(-) diff --git a/README.md b/README.md index 427190b4..b64b44c0 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing. ================================================= +14.12.2019 + +- finished the strings update in the Google-translated Spanish + 13.12.2019 - HPGL2 import: added support for circles, arcs and 3-point arcs. Everything works only for absolute coordinates. diff --git a/locale/es/LC_MESSAGES/strings.mo b/locale/es/LC_MESSAGES/strings.mo index 51c80ec8f3d9d7c2e19a7f542bd0ffad066ae8b1..4170234ca05ef8a07c2edd82b431a26c57310fa5 100644 GIT binary patch delta 102688 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 z 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 z

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 E0DXoML;wH) delta 58028 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 p_Hp| 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:472 flatcamGUI/PreferencesUI.py:1495 #: flatcamGUI/PreferencesUI.py:4603 flatcamTools/ToolPaint.py:300 @@ -7439,10 +7352,8 @@ msgid "Selection" msgstr "Selección" #: flatcamGUI/ObjectUI.py:480 flatcamGUI/PreferencesUI.py:1681 -#, fuzzy -#| msgid "Isolation Routing" msgid "Isolation Type" -msgstr "Enrutamiento de aislamiento" +msgstr "Tipo de aislamiento" #: flatcamGUI/ObjectUI.py:482 flatcamGUI/PreferencesUI.py:1683 msgid "" @@ -7455,6 +7366,14 @@ msgid "" "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:491 flatcamGUI/PreferencesUI.py:1692 #: flatcamGUI/PreferencesUI.py:1708 @@ -7462,16 +7381,12 @@ msgid "Full" msgstr "Completo" #: flatcamGUI/ObjectUI.py:492 -#, fuzzy -#| msgid "Exit" msgid "Ext" -msgstr "Salida" +msgstr "Exterior" #: flatcamGUI/ObjectUI.py:493 -#, fuzzy -#| msgid "Int Geo" msgid "Int" -msgstr "Geo interno" +msgstr "Interior" #: flatcamGUI/ObjectUI.py:498 msgid "Generate Isolation Geometry" @@ -7933,19 +7848,15 @@ msgid "Mill Holes" msgstr "Agujeros de molino" #: flatcamGUI/ObjectUI.py:1044 -#, fuzzy -#| msgid "" -#| "Select from the Tools Table above\n" -#| "the hole dias that are to be milled.\n" -#| "Use the # column to make the selection." 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 "" -"Seleccione de la tabla de herramientas de arriba\n" -"los agujeros que se van a fresar.\n" -"Use la columna # para hacer la selección." +"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:1050 flatcamGUI/PreferencesUI.py:2496 msgid "Drill Tool dia" @@ -8154,32 +8065,24 @@ msgstr "" "corte y negativo para corte 'interior'." #: flatcamGUI/ObjectUI.py:1267 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." 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 anteriormente." +"con el diámetro especificado." #: flatcamGUI/ObjectUI.py:1275 msgid "Add Tool from DataBase" -msgstr "" +msgstr "Agregar herramienta desde DB" #: flatcamGUI/ObjectUI.py:1277 -#, fuzzy -#| msgid "" -#| "Add a new tool to the Tool Table\n" -#| "with the diameter specified above." 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" -"con el diámetro especificado anteriormente." +"de la base de datos de herramientas." #: flatcamGUI/ObjectUI.py:1287 msgid "" @@ -8282,10 +8185,8 @@ msgstr "" "Ignorar para cualquier otro caso." #: flatcamGUI/ObjectUI.py:1541 flatcamGUI/PreferencesUI.py:3448 -#, fuzzy -#| msgid "Re-cut 1st pt." msgid "Re-cut" -msgstr "Recortar 1er pt." +msgstr "Recortar" #: flatcamGUI/ObjectUI.py:1543 flatcamGUI/ObjectUI.py:1555 #: flatcamGUI/PreferencesUI.py:3450 flatcamGUI/PreferencesUI.py:3462 @@ -8325,13 +8226,15 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1652 msgid "Apply parameters to all tools" -msgstr "" +msgstr "Aplicar parámetros a todas las herramientas." #: flatcamGUI/ObjectUI.py:1654 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:1663 msgid "" @@ -8344,10 +8247,8 @@ msgstr "" "para la selección personalizada de herramientas." #: flatcamGUI/ObjectUI.py:1670 -#, fuzzy -#| msgid "Generate the CNC Job object." msgid "Generate CNCJob object" -msgstr "Genere el objeto de trabajo CNC." +msgstr "Generar objeto CNCJob" #: flatcamGUI/ObjectUI.py:1672 msgid "Generate the CNC Job object." @@ -8538,17 +8439,6 @@ msgstr "" "teniendo como plantilla el archivo posprocesador 'Toolchange Custom'." #: flatcamGUI/ObjectUI.py:1961 flatcamGUI/PreferencesUI.py:3853 -#, fuzzy -#| 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." msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -8559,14 +8449,12 @@ msgid "" "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 un evento de cambio de herramienta.\n" -"Esto constituirá un cambio de herramienta personalizado GCode,\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" -"\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'." +"ADVERTENCIA: solo se puede usar con un archivo de preprocesador\n" +"que tiene 'toolchange_custom' en su nombre." #: flatcamGUI/ObjectUI.py:1976 flatcamGUI/PreferencesUI.py:3869 msgid "Use Toolchange Macro" @@ -8800,10 +8688,8 @@ msgstr "" "El propósito es ilustrar los límites de nuestro trabajo." #: flatcamGUI/PreferencesUI.py:359 -#, fuzzy -#| msgid "Seg. X size" msgid "Wk. size" -msgstr "Seg. Talla X" +msgstr "Tamaño del ET" #: flatcamGUI/PreferencesUI.py:361 msgid "" @@ -8815,7 +8701,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:429 msgid "Wk. Orientation" -msgstr "" +msgstr "Orientación del ET" #: flatcamGUI/PreferencesUI.py:430 flatcamGUI/PreferencesUI.py:4853 #: flatcamTools/ToolFilm.py:420 @@ -8824,16 +8710,19 @@ msgid "" "- Portrait\n" "- Landscape" msgstr "" +"Puede ser:\n" +"- retrato\n" +"- paisaje" #: flatcamGUI/PreferencesUI.py:434 flatcamGUI/PreferencesUI.py:4857 #: flatcamTools/ToolFilm.py:424 msgid "Portrait" -msgstr "" +msgstr "Retrato" #: flatcamGUI/PreferencesUI.py:435 flatcamGUI/PreferencesUI.py:4858 #: flatcamTools/ToolFilm.py:425 msgid "Landscape" -msgstr "" +msgstr "Paisaje" #: flatcamGUI/PreferencesUI.py:447 msgid "Plot Fill" @@ -8940,7 +8829,7 @@ msgstr "Establecer el color de la forma." #: flatcamGUI/PreferencesUI.py:607 msgid "Editor Draw Sel." -msgstr "Sel del Sorteo del Editor" +msgstr "Selección de editor" #: flatcamGUI/PreferencesUI.py:609 msgid "Set the color of the shape when selected." @@ -9263,10 +9152,8 @@ msgid "IN" msgstr "IN" #: flatcamGUI/PreferencesUI.py:1074 -#, fuzzy -#| msgid "Precision" msgid "Precision MM" -msgstr "Precisión" +msgstr "Precisión MM" #: flatcamGUI/PreferencesUI.py:1076 msgid "" @@ -9274,12 +9161,13 @@ msgid "" "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/PreferencesUI.py:1088 -#, fuzzy -#| msgid "Precision" msgid "Precision INCH" -msgstr "Precisión" +msgstr "Precisión PULGADA" #: flatcamGUI/PreferencesUI.py:1090 msgid "" @@ -9287,6 +9175,9 @@ msgid "" "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/PreferencesUI.py:1102 msgid "Graphic Engine" @@ -9552,7 +9443,7 @@ msgstr "" #: flatcamGUI/PreferencesUI.py:1310 msgid "Allow Machinist Unsafe Settings" -msgstr "" +msgstr "Permitir configuraciones inseguras de Maquinista" #: flatcamGUI/PreferencesUI.py:1312 msgid "" @@ -9562,6 +9453,13 @@ msgid "" "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/PreferencesUI.py:1333 msgid "Gerber General" @@ -9687,16 +9585,14 @@ msgstr "" "que se dibujan sobre lienzo." #: flatcamGUI/PreferencesUI.py:1693 -#, fuzzy #| msgid "Get Exteriors" msgid "Exterior" -msgstr "Obtener exteriores" +msgstr "Exterior" #: flatcamGUI/PreferencesUI.py:1694 -#, fuzzy #| msgid "Get Interiors" msgid "Interior" -msgstr "Obtener interiores" +msgstr "Interior" #: flatcamGUI/PreferencesUI.py:1702 msgid "" @@ -10163,10 +10059,8 @@ msgid "Toolchange X,Y position." msgstr "Cambio de herra X, posición Y." #: flatcamGUI/PreferencesUI.py:2626 flatcamGUI/PreferencesUI.py:3500 -#, fuzzy -#| msgid "Spindle dir." msgid "Spindle direction" -msgstr "Dir del Husillo" +msgstr "Dirección del motor" #: flatcamGUI/PreferencesUI.py:2628 flatcamGUI/PreferencesUI.py:3502 msgid "" @@ -10438,10 +10332,8 @@ msgstr "" "Elimine el valor si no necesita esta característica." #: flatcamGUI/PreferencesUI.py:3526 -#, fuzzy -#| msgid "Seg. X size" msgid "Segment X size" -msgstr "Seg. Talla X" +msgstr "Tamaño del Seg. X" #: flatcamGUI/PreferencesUI.py:3528 msgid "" @@ -10454,10 +10346,8 @@ msgstr "" "Un valor de 0 significa que no hay segmentación en el eje X." #: flatcamGUI/PreferencesUI.py:3542 -#, fuzzy -#| msgid "Seg. Y size" msgid "Segment Y size" -msgstr "Seg. Tamaño Y" +msgstr "Tamaño del Seg. Y" #: flatcamGUI/PreferencesUI.py:3544 msgid "" @@ -10565,13 +10455,15 @@ msgstr "G91 incremental" #: flatcamGUI/PreferencesUI.py:3738 msgid "Force Windows style line-ending" -msgstr "" +msgstr "Forzar el final de línea al estilo de Windows" #: flatcamGUI/PreferencesUI.py:3740 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/PreferencesUI.py:3754 msgid "CNC Job Options" @@ -10658,11 +10550,10 @@ msgstr "" "En unidades FlatCAM." #: flatcamGUI/PreferencesUI.py:4057 -#, fuzzy -#| msgid "Diameter for the new tool to add in the Tool Table" msgid "The new tool diameter (cut width) to add in the tool table." msgstr "" -"Diámetro de la nueva herramienta para agregar en la tabla de herramientas" +"El nuevo diámetro de herramienta (ancho de corte) para agregar en la tabla " +"de herramientas." #: flatcamGUI/PreferencesUI.py:4069 flatcamGUI/PreferencesUI.py:4077 #: flatcamTools/ToolNonCopperClear.py:164 @@ -10718,18 +10609,6 @@ msgid "Reverse" msgstr "Atras" #: flatcamGUI/PreferencesUI.py:4109 flatcamTools/ToolNonCopperClear.py:321 -#, fuzzy -#| msgid "" -#| "How much (fraction) of the tool width to overlap each tool pass.\n" -#| "Example:\n" -#| "A value here of 0.25 means 25%% from the tool diameter found above.\n" -#| "\n" -#| "Adjust the value starting with lower values\n" -#| "and increasing it if areas that should be cleared are still \n" -#| "not cleared.\n" -#| "Lower values = faster processing, faster execution on PCB.\n" -#| "Higher values = slow processing and slow execution on CNC\n" -#| "due of too many paths." msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Adjust the value starting with lower values\n" @@ -10741,16 +10620,12 @@ msgid "" msgstr "" "Cuánta (fracción) del ancho de la herramienta se superponen con cada pasada " "de herramienta\n" -"Ejemplo:\n" -"Un valor de 0.25 aquí significa 25%% del diámetro de la herramienta que se " -"encuentra arriba.\n" -"\n" "Ajuste el valor comenzando con valores más bajos\n" "y aumentándolo si las áreas que deben ser despejadas son todavía\n" "no borrado.\n" "Valores más bajos = procesamiento más rápido, ejecución más rápida en PCB.\n" "Valores más altos = procesamiento lento y ejecución lenta en CNC\n" -"Debido a demasiados caminos." +"debido a demasiados caminos." #: flatcamGUI/PreferencesUI.py:4128 flatcamGUI/PreferencesUI.py:6108 #: flatcamGUI/PreferencesUI.py:6350 flatcamGUI/PreferencesUI.py:6414 @@ -10822,12 +10697,6 @@ msgid "Offset value" msgstr "Valor de Comp" #: flatcamGUI/PreferencesUI.py:4210 -#, fuzzy -#| 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." msgid "" "If used, it will add an offset to the copper features.\n" "The copper clearing will finish to a distance\n" @@ -10837,7 +10706,7 @@ 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." +"El valor puede estar entre 0 y 9999.9 unidades FlatCAM." #: flatcamGUI/PreferencesUI.py:4225 flatcamGUI/PreferencesUI.py:6120 #: flatcamTools/ToolCopperThieving.py:125 @@ -10916,8 +10785,6 @@ msgstr "" "La forma de PCB fuera del material circundante." #: flatcamGUI/PreferencesUI.py:4332 flatcamTools/ToolCutOut.py:104 -#, fuzzy -#| msgid "Obj kind" msgid "Object kind" msgstr "Tipo de objeto" @@ -11068,17 +10935,6 @@ msgstr "Parámetros:" #: flatcamGUI/PreferencesUI.py:4605 flatcamTools/ToolPaint.py:302 #: flatcamTools/ToolPaint.py:319 -#, fuzzy -#| msgid "" -#| "How to select Polygons to be painted.\n" -#| "\n" -#| "- 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'All Polygons' - the Paint will start after click.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "How to select Polygons to be painted.\n" "- 'Polygon Selection' - left mouse click to add/remove polygons to be " @@ -11092,7 +10948,8 @@ msgid "" "specified by another object." msgstr "" "Cómo seleccionar polígonos para pintar.\n" -"\n" +"- 'Selección de polígonos': haga clic con el botón izquierdo del mouse para " +"agregar / eliminar polígonos a pintar.\n" "- '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 " @@ -11102,8 +10959,6 @@ msgstr "" "especificado por otro objeto." #: flatcamGUI/PreferencesUI.py:4614 -#, fuzzy -#| msgid "Select" msgid "Sel" msgstr "Seleccionar" @@ -11305,15 +11160,15 @@ msgstr "Eje espejo" #: flatcamGUI/PreferencesUI.py:4836 flatcamTools/ToolFilm.py:403 msgid "SVG" -msgstr "" +msgstr "SVG" #: flatcamGUI/PreferencesUI.py:4837 flatcamTools/ToolFilm.py:404 msgid "PNG" -msgstr "" +msgstr "PNG" #: flatcamGUI/PreferencesUI.py:4838 flatcamTools/ToolFilm.py:405 msgid "PDF" -msgstr "" +msgstr "PDF" #: flatcamGUI/PreferencesUI.py:4841 flatcamTools/ToolFilm.py:298 #: flatcamTools/ToolFilm.py:408 @@ -11327,20 +11182,22 @@ msgid "" "- '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/PreferencesUI.py:4852 flatcamTools/ToolFilm.py:419 msgid "Page Orientation" -msgstr "" +msgstr "Orient. de la página" #: flatcamGUI/PreferencesUI.py:4865 flatcamTools/ToolFilm.py:432 -#, fuzzy -#| msgid "Trace Size" msgid "Page Size" -msgstr "Tamaño de traza" +msgstr "Tamaño de página" #: flatcamGUI/PreferencesUI.py:4866 flatcamTools/ToolFilm.py:433 msgid "A selection of standard ISO 216 page sizes." -msgstr "" +msgstr "Una selección de tamaños de página estándar ISO 216." #: flatcamGUI/PreferencesUI.py:4938 msgid "Panelize Tool Options" @@ -12039,34 +11896,32 @@ msgstr "" "Número de decimales para las distancias y coordenadas en esta herramienta." #: flatcamGUI/PreferencesUI.py:5873 -#, fuzzy -#| msgid "NCC Tool Options" msgid "QRCode Tool Options" -msgstr "Opc. de herra. NCC" +msgstr "Opciones de la herram. QRCode" #: flatcamGUI/PreferencesUI.py:5879 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/PreferencesUI.py:5891 flatcamTools/ToolQRCode.py:99 -#, fuzzy -#| msgid "Conversion" msgid "Version" -msgstr "Conversión" +msgstr "Versión" #: flatcamGUI/PreferencesUI.py:5893 flatcamTools/ToolQRCode.py:101 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/PreferencesUI.py:5904 flatcamTools/ToolQRCode.py:112 -#, fuzzy -#| msgid "Corrections" msgid "Error correction" -msgstr "Correcciones" +msgstr "Corrección de error" #: flatcamGUI/PreferencesUI.py:5906 flatcamGUI/PreferencesUI.py:5917 #: flatcamTools/ToolQRCode.py:114 flatcamTools/ToolQRCode.py:125 @@ -12078,48 +11933,53 @@ msgid "" "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/PreferencesUI.py:5927 flatcamTools/ToolQRCode.py:135 -#, fuzzy -#| msgid "Font Size" msgid "Box Size" -msgstr "Tamaño de Fuente" +msgstr "Tamaño de Elementos" #: flatcamGUI/PreferencesUI.py:5929 flatcamTools/ToolQRCode.py:137 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/PreferencesUI.py:5940 flatcamTools/ToolQRCode.py:148 -#, fuzzy -#| msgid "Border" msgid "Border Size" -msgstr "Frontera" +msgstr "Tamaño de borde" #: flatcamGUI/PreferencesUI.py:5942 flatcamTools/ToolQRCode.py:150 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/PreferencesUI.py:5953 flatcamTools/ToolQRCode.py:162 -#, fuzzy -#| msgid "Tool Data" msgid "QRCode Data" -msgstr "Datos de Herram" +msgstr "Datos de QRCode" #: flatcamGUI/PreferencesUI.py:5955 flatcamTools/ToolQRCode.py:164 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." -msgstr "" +msgstr "Datos de QRCode. Texto alfanumérico a codificar en el Código QR." #: flatcamGUI/PreferencesUI.py:5959 flatcamTools/ToolQRCode.py:168 msgid "Add here the text to be included in the QRCode..." -msgstr "" +msgstr "Agregue aquí el texto que se incluirá en el QRCode ..." #: flatcamGUI/PreferencesUI.py:5965 flatcamTools/ToolQRCode.py:174 msgid "Polarity" -msgstr "" +msgstr "Polaridad" #: flatcamGUI/PreferencesUI.py:5967 flatcamTools/ToolQRCode.py:176 msgid "" @@ -12127,6 +11987,9 @@ msgid "" "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/PreferencesUI.py:5971 flatcamTools/ToolFilm.py:296 #: flatcamTools/ToolQRCode.py:180 @@ -12145,6 +12008,10 @@ msgid "" "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/PreferencesUI.py:5985 flatcamGUI/PreferencesUI.py:5991 #: flatcamTools/ToolQRCode.py:194 flatcamTools/ToolQRCode.py:200 @@ -12152,55 +12019,51 @@ 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/PreferencesUI.py:5988 flatcamTools/ToolQRCode.py:197 -#, fuzzy -#| msgid "Round" msgid "Rounded" -msgstr "Redondo" +msgstr "Redondeado" #: flatcamGUI/PreferencesUI.py:5998 flatcamTools/ToolQRCode.py:228 -#, fuzzy -#| msgid "Film Color" msgid "Fill Color" -msgstr "Color de la película" +msgstr "Color de relleno" #: flatcamGUI/PreferencesUI.py:6000 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/PreferencesUI.py:6019 flatcamTools/ToolQRCode.py:252 -#, fuzzy -#| msgid "Font Color" msgid "Back Color" -msgstr "Color de Fuente" +msgstr "Color de fondo" #: flatcamGUI/PreferencesUI.py:6021 flatcamTools/ToolQRCode.py:254 msgid "Set the QRCode background color." -msgstr "" +msgstr "Establece el color de fondo del QRCode." #: flatcamGUI/PreferencesUI.py:6061 -#, fuzzy -#| msgid "SolderPaste Tool Options" msgid "Copper Thieving Tool Options" -msgstr "Opc de Herram. de Pasta" +msgstr "Opc. de Herram. de Copper Thieving" #: flatcamGUI/PreferencesUI.py:6073 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/PreferencesUI.py:6081 msgid "Number of steps (lines) used to interpolate circles." -msgstr "" +msgstr "Número de pasos (líneas) utilizados para interpolar círculos." #: flatcamGUI/PreferencesUI.py:6091 flatcamGUI/PreferencesUI.py:6295 #: flatcamTools/ToolCopperThieving.py:96 flatcamTools/ToolCopperThieving.py:429 -#, fuzzy -#| msgid "Tolerance" msgid "Clearance" -msgstr "Tolerancia" +msgstr "Despeje" #: flatcamGUI/PreferencesUI.py:6093 msgid "" @@ -12208,6 +12071,9 @@ msgid "" "(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/PreferencesUI.py:6121 flatcamTools/ToolCopperThieving.py:126 #: flatcamTools/ToolNonCopperClear.py:436 flatcamTools/ToolPaint.py:314 @@ -12225,16 +12091,6 @@ msgid "Reference:" msgstr "Referencia:" #: flatcamGUI/PreferencesUI.py:6126 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." 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 " @@ -12242,14 +12098,12 @@ msgid "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." msgstr "" -"- 'Sí mismo' - la extensión de limpieza sin cobre\n" -"se basa en el objeto que es cobre despejado.\n" -"  - '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" -"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" -"especificado por otro objeto." +"- '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/PreferencesUI.py:6135 flatcamTools/ToolCopperThieving.py:170 msgid "Rectangular" @@ -12257,40 +12111,36 @@ msgstr "Rectangular" #: flatcamGUI/PreferencesUI.py:6136 flatcamTools/ToolCopperThieving.py:171 msgid "Minimal" -msgstr "" +msgstr "Mínimo" #: flatcamGUI/PreferencesUI.py:6138 flatcamTools/ToolCopperThieving.py:173 #: flatcamTools/ToolFilm.py:113 msgid "Box Type:" -msgstr "Tipo de caja:" +msgstr "Tipo de cercado:" #: flatcamGUI/PreferencesUI.py:6140 flatcamTools/ToolCopperThieving.py:175 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/PreferencesUI.py:6154 flatcamTools/ToolCopperThieving.py:191 msgid "Dots Grid" -msgstr "" +msgstr "Cuadrícula de puntos" #: flatcamGUI/PreferencesUI.py:6155 flatcamTools/ToolCopperThieving.py:192 -#, fuzzy -#| msgid "Square" msgid "Squares Grid" -msgstr "Cuadrado" +msgstr "Cuadrícula de cuadrados" #: flatcamGUI/PreferencesUI.py:6156 flatcamTools/ToolCopperThieving.py:193 -#, fuzzy -#| msgid "Linear" msgid "Lines Grid" -msgstr "Lineal" +msgstr "Cuadrícula de líneas" #: flatcamGUI/PreferencesUI.py:6158 flatcamTools/ToolCopperThieving.py:195 -#, fuzzy -#| msgid "Film Type:" msgid "Fill Type:" -msgstr "Tipo de filme:" +msgstr "Tipo de relleno:" #: flatcamGUI/PreferencesUI.py:6160 flatcamTools/ToolCopperThieving.py:197 msgid "" @@ -12299,112 +12149,104 @@ msgid "" "- '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/PreferencesUI.py:6168 flatcamTools/ToolCopperThieving.py:216 -#, fuzzy -#| msgid "Slot Parameters" msgid "Dots Grid Parameters" -msgstr "Parámetros de ranura" +msgstr "Parámetros de cuadrícula de puntos" #: flatcamGUI/PreferencesUI.py:6174 flatcamTools/ToolCopperThieving.py:222 -#, fuzzy -#| msgid "Tool diameter in file units." msgid "Dot diameter in Dots Grid." -msgstr "Diámetro de herramienta en unidades de archivo." +msgstr "Diámetro de punto en cuadrícula de puntos." #: flatcamGUI/PreferencesUI.py:6185 flatcamGUI/PreferencesUI.py:6214 #: flatcamGUI/PreferencesUI.py:6243 flatcamTools/ToolCopperThieving.py:233 #: flatcamTools/ToolCopperThieving.py:273 #: flatcamTools/ToolCopperThieving.py:313 -#, fuzzy -#| msgid "Spacing cols" msgid "Spacing" -msgstr "Col. de espaciado" +msgstr "Spacing" #: flatcamGUI/PreferencesUI.py:6187 flatcamTools/ToolCopperThieving.py:235 msgid "Distance between each two dots in Dots Grid." -msgstr "" +msgstr "Distancia entre cada dos puntos en la cuadrícula de puntos." #: flatcamGUI/PreferencesUI.py:6197 flatcamTools/ToolCopperThieving.py:256 -#, fuzzy -#| msgid "Slot Array Parameters" msgid "Squares Grid Parameters" -msgstr "Parámetros de matriz de ranuras" +msgstr "Parámetros de la cuadrícula de cuadrados" #: flatcamGUI/PreferencesUI.py:6203 flatcamTools/ToolCopperThieving.py:262 msgid "Square side size in Squares Grid." -msgstr "" +msgstr "Tamaño del lado cuadrado en cuadrícula de cuadrados." #: flatcamGUI/PreferencesUI.py:6216 flatcamTools/ToolCopperThieving.py:275 msgid "Distance between each two squares in Squares Grid." -msgstr "" +msgstr "Distancia entre cada dos cuadrados en la cuadrícula de cuadrados." #: flatcamGUI/PreferencesUI.py:6226 flatcamTools/ToolCopperThieving.py:296 -#, fuzzy -#| msgid "Change Parameter" msgid "Lines Grid Parameters" -msgstr "Cambiar parámetro" +msgstr "Parámetros de cuadrícula de líneas" #: flatcamGUI/PreferencesUI.py:6232 flatcamTools/ToolCopperThieving.py:302 msgid "Line thickness size in Lines Grid." -msgstr "" +msgstr "Tamaño del grosor de línea en la cuadrícula de líneas." #: flatcamGUI/PreferencesUI.py:6245 flatcamTools/ToolCopperThieving.py:315 msgid "Distance between each two lines in Lines Grid." -msgstr "" +msgstr "Distancia entre cada dos líneas en la cuadrícula de líneas." #: flatcamGUI/PreferencesUI.py:6255 flatcamTools/ToolCopperThieving.py:353 -#, fuzzy -#| msgid "Slot Parameters" msgid "Robber Bar Parameters" -msgstr "Parámetros de ranura" +msgstr "Parámetros de la Robber Bar" #: flatcamGUI/PreferencesUI.py:6257 flatcamTools/ToolCopperThieving.py:355 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/PreferencesUI.py:6265 flatcamTools/ToolCopperThieving.py:363 -#, fuzzy -#| msgid "Bounding box margin." msgid "Bounding box margin for robber bar." -msgstr "Margen de cuadro delimitador." +msgstr "Margen límite del recinto para Robber Bar." #: flatcamGUI/PreferencesUI.py:6276 flatcamTools/ToolCopperThieving.py:374 msgid "Thickness" -msgstr "" +msgstr "Espesor" #: flatcamGUI/PreferencesUI.py:6278 flatcamTools/ToolCopperThieving.py:376 msgid "The robber bar thickness." -msgstr "" +msgstr "El grosor de la Robber Bar." #: flatcamGUI/PreferencesUI.py:6288 flatcamTools/ToolCopperThieving.py:407 msgid "Pattern Plating Mask" -msgstr "" +msgstr "Máscara de baño de patrones" #: flatcamGUI/PreferencesUI.py:6290 flatcamTools/ToolCopperThieving.py:409 msgid "Generate a mask for pattern plating." -msgstr "" +msgstr "Genere una máscara para el enchapado de patrones." #: flatcamGUI/PreferencesUI.py:6297 flatcamTools/ToolCopperThieving.py:431 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/PreferencesUI.py:6316 -#, fuzzy -#| msgid "Film Tool Options" msgid "Fiducials Tool Options" -msgstr "Opc. de herra. de película" +msgstr "Opc. de Herram. Fiduciales" #: flatcamGUI/PreferencesUI.py:6327 flatcamGUI/PreferencesUI.py:6443 #: flatcamTools/ToolCopperThieving.py:91 flatcamTools/ToolFiducials.py:151 -#, fuzzy -#| msgid "Diameter for the new tool." msgid "Parameters used for this tool." -msgstr "Diámetro para la nueva herramienta." +msgstr "Parámetros utilizados para esta herramienta." #: flatcamGUI/PreferencesUI.py:6334 flatcamTools/ToolFiducials.py:158 msgid "" @@ -12412,20 +12254,22 @@ msgid "" "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/PreferencesUI.py:6362 flatcamTools/ToolFiducials.py:186 msgid "Auto" -msgstr "" +msgstr "Auto" #: flatcamGUI/PreferencesUI.py:6363 flatcamTools/ToolFiducials.py:187 -#, fuzzy #| msgid "Manual Geo" msgid "Manual" -msgstr "Geo manual" +msgstr "Manual" #: flatcamGUI/PreferencesUI.py:6365 flatcamTools/ToolFiducials.py:189 msgid "Mode:" -msgstr "" +msgstr "Modo:" #: flatcamGUI/PreferencesUI.py:6367 msgid "" @@ -12433,18 +12277,21 @@ msgid "" "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/PreferencesUI.py:6375 flatcamTools/ToolFiducials.py:199 msgid "Up" -msgstr "" +msgstr "Arriba" #: flatcamGUI/PreferencesUI.py:6376 flatcamTools/ToolFiducials.py:200 msgid "Down" -msgstr "" +msgstr "Abajo" #: flatcamGUI/PreferencesUI.py:6379 flatcamTools/ToolFiducials.py:203 msgid "Second fiducial" -msgstr "" +msgstr "Segundo fiducial" #: flatcamGUI/PreferencesUI.py:6381 flatcamTools/ToolFiducials.py:205 msgid "" @@ -12453,20 +12300,25 @@ msgid "" "- '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/PreferencesUI.py:6397 flatcamTools/ToolFiducials.py:221 msgid "Cross" -msgstr "" +msgstr "Cruce" #: flatcamGUI/PreferencesUI.py:6398 flatcamTools/ToolFiducials.py:222 msgid "Chess" -msgstr "" +msgstr "Ajedrez" #: flatcamGUI/PreferencesUI.py:6401 flatcamTools/ToolFiducials.py:224 -#, fuzzy -#| msgid "Film Type" msgid "Fiducial Type" -msgstr "Tipo de Filme" +msgstr "Tipo fiducial" #: flatcamGUI/PreferencesUI.py:6403 flatcamTools/ToolFiducials.py:226 msgid "" @@ -12475,22 +12327,22 @@ msgid "" "- '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/PreferencesUI.py:6412 flatcamTools/ToolFiducials.py:235 msgid "Line thickness" -msgstr "" +msgstr "Grosor de la línea" #: flatcamGUI/PreferencesUI.py:6432 -#, fuzzy -#| msgid "Calculators Tool Options" msgid "Calibration Tool Options" -msgstr "Opc. de herra. de calculadoras" +msgstr "Opc. de Herram. de Calibración" #: flatcamGUI/PreferencesUI.py:6448 flatcamTools/ToolCalibration.py:181 -#, fuzzy -#| msgid "Source" msgid "Source Type" -msgstr "Fuente" +msgstr "Tipo de Fuente" #: flatcamGUI/PreferencesUI.py:6449 flatcamTools/ToolCalibration.py:182 msgid "" @@ -12499,46 +12351,44 @@ msgid "" "- 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/PreferencesUI.py:6454 flatcamTools/ToolCalibration.py:187 -#, fuzzy -#| msgid "FreeForm" msgid "Free" -msgstr "Forma libre" +msgstr "Libre" #: flatcamGUI/PreferencesUI.py:6468 flatcamTools/ToolCalibration.py:76 -#, fuzzy -#| msgid "" -#| "The height (Z) for travel between pads\n" -#| "(without dispensing solder paste)." msgid "Height (Z) for travelling between the points." -msgstr "" -"La altura (Z) para viajar entre almohadillas\n" -"(sin dispensar pasta de soldadura)." +msgstr "Altura (Z) para viajar entre los puntos." #: flatcamGUI/PreferencesUI.py:6480 flatcamTools/ToolCalibration.py:88 -#, fuzzy -#| msgid "Gerber Specification" msgid "Verification Z" -msgstr "Especificación de Gerber" +msgstr "Verificación Z" #: flatcamGUI/PreferencesUI.py:6482 flatcamTools/ToolCalibration.py:90 msgid "Height (Z) for checking the point." -msgstr "" +msgstr "Altura (Z) para verificar el punto." #: flatcamGUI/PreferencesUI.py:6494 flatcamTools/ToolCalibration.py:102 msgid "Zero Z tool" -msgstr "" +msgstr "Cero la Z para Herram." #: flatcamGUI/PreferencesUI.py:6496 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/PreferencesUI.py:6505 flatcamTools/ToolCalibration.py:113 msgid "Height (Z) for mounting the verification probe." -msgstr "" +msgstr "Altura (Z) para montar la sonda de verificación." #: flatcamGUI/PreferencesUI.py:6519 flatcamTools/ToolCalibration.py:127 msgid "" @@ -12546,10 +12396,11 @@ msgid "" "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/PreferencesUI.py:6530 flatcamTools/ToolCalibration.py:153 -#, fuzzy -#| msgid "Second object point" msgid "Second point" msgstr "Segundo punto" @@ -12559,16 +12410,15 @@ msgid "" "- 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/PreferencesUI.py:6536 flatcamTools/ToolCalibration.py:159 -#, fuzzy -#| msgid "Top Left" msgid "Top-Left" msgstr "Arriba a la izquierda" #: flatcamGUI/PreferencesUI.py:6537 flatcamTools/ToolCalibration.py:160 -#, fuzzy -#| msgid "Bottom Right" msgid "Bottom-Right" msgstr "Abajo a la derecha" @@ -12743,16 +12593,12 @@ msgstr "" "diámetros para reflejar los diámetros reales." #: flatcamParsers/ParseExcellon.py:889 -#, fuzzy -#| msgid "" -#| "{e_code} Excellon Parser error.\n" -#| "Parsing Failed. Line {l_nr}: {line}\n" msgid "" "Excellon Parser error.\n" "Parsing Failed. Line" msgstr "" -"{e_code} Error del analizador Excellon.\n" -"El análisis falló. Línea {l_nr}: {line}\n" +"Error del analizador Excellon.\n" +"El análisis falló. Línea" #: flatcamParsers/ParseExcellon.py:973 msgid "" @@ -12836,28 +12682,20 @@ msgid "Gerber Rotate done." msgstr "Rotar Gerber hecho." #: flatcamParsers/ParseHPGL2.py:176 -#, fuzzy -#| msgid "Gerber processing. Parsing" msgid "HPGL2 processing. Parsing" -msgstr "Procesamiento de Gerber. Analizando" +msgstr "Procesamiento de HPGL2 . Analizando" #: flatcamParsers/ParseHPGL2.py:408 -#, fuzzy -#| msgid "Plot Line" msgid "HPGL2 Line" -msgstr "Lin. Gráfico" +msgstr "Línea HPGL2" #: flatcamParsers/ParseHPGL2.py:408 -#, fuzzy -#| msgid "Gerber Line Content" msgid "HPGL2 Line Content" -msgstr "Contenido de la línea Gerber" +msgstr "Contenido de línea HPGL2" #: flatcamParsers/ParseHPGL2.py:409 -#, fuzzy -#| msgid "Gerber Parser ERROR" msgid "HPGL2 Parser ERROR" -msgstr "Analizador Gerber ERROR" +msgstr "Analizador HPGL2 ERROR" #: flatcamTools/ToolCalculators.py:24 msgid "Calculators" @@ -12950,18 +12788,16 @@ msgid "Calc. Tool" msgstr "Calc. Herramienta" #: flatcamTools/ToolCalibration.py:67 -#, fuzzy -#| msgid "Slot Parameters" msgid "GCode Parameters" -msgstr "Parámetros de ranura" +msgstr "Parámetros GCode" #: flatcamTools/ToolCalibration.py:69 msgid "Parameters used when creating the GCode in this tool." -msgstr "" +msgstr "Parámetros utilizados al crear el GCode en esta herramienta." #: flatcamTools/ToolCalibration.py:173 msgid "STEP 1: Acquire Calibration Points" -msgstr "" +msgstr "PASO 1: Adquiera puntos de calibración" #: flatcamTools/ToolCalibration.py:175 msgid "" @@ -12969,6 +12805,9 @@ msgid "" "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/ToolCutOut.py:80 #: flatcamTools/ToolFilm.py:78 flatcamTools/ToolImage.py:55 @@ -12977,27 +12816,24 @@ msgid "Object Type" msgstr "Tipo de objeto" #: flatcamTools/ToolCalibration.py:211 -#, fuzzy -#| msgid "No object selected." msgid "Source object selection" -msgstr "Ningún objeto seleccionado." +msgstr "Selección de objeto de origen" #: flatcamTools/ToolCalibration.py:213 -#, fuzzy -#| msgid "The FlatCAM object to be used as non copper clearing reference." msgid "FlatCAM Object to be used as a source for reference points." -msgstr "" -"El objeto FlatCAM que se utilizará como referencia de compensación sin cobre." +msgstr "Objeto FlatCAM que se utilizará como fuente de puntos de referencia." #: flatcamTools/ToolCalibration.py:219 msgid "Calibration Points" -msgstr "" +msgstr "Puntos de calibración" #: flatcamTools/ToolCalibration.py:221 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:236 flatcamTools/ToolSub.py:74 #: flatcamTools/ToolSub.py:126 @@ -13006,67 +12842,48 @@ msgstr "Objetivo" #: flatcamTools/ToolCalibration.py:237 msgid "Found Delta" -msgstr "" +msgstr "Delta encontrado" #: flatcamTools/ToolCalibration.py:249 -#, fuzzy -#| msgid "Bottom Left" msgid "Bot Left X" -msgstr "Abajo a la izquierda" +msgstr "Abajo a la izquierda X" #: flatcamTools/ToolCalibration.py:258 -#, fuzzy #| msgid "Bottom Left" msgid "Bot Left Y" -msgstr "Abajo a la izquierda" +msgstr "Abajo a la izquierda Y" #: flatcamTools/ToolCalibration.py:266 flatcamTools/ToolCalibration.py:267 -#, fuzzy -#| msgid "Origin set" msgid "Origin" -msgstr "Conjunto de origen" +msgstr "Origen" #: flatcamTools/ToolCalibration.py:278 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right X" -msgstr "Abajo a la derecha" +msgstr "Abajo a la derecho X" #: flatcamTools/ToolCalibration.py:288 -#, fuzzy -#| msgid "Bottom Right" msgid "Bot Right Y" -msgstr "Abajo a la derecha" +msgstr "Abajo a la derecho Y" #: flatcamTools/ToolCalibration.py:303 -#, fuzzy -#| msgid "Top Left" msgid "Top Left X" -msgstr "Arriba a la izquierda" +msgstr "Arriba a la izquierda X" #: flatcamTools/ToolCalibration.py:312 -#, fuzzy -#| msgid "Top Left" msgid "Top Left Y" -msgstr "Arriba a la izquierda" +msgstr "Arriba a la izquierda Y" #: flatcamTools/ToolCalibration.py:327 -#, fuzzy -#| msgid "Top right" msgid "Top Right X" -msgstr "Arriba a la derecha" +msgstr "Arriba a la derecho X" #: flatcamTools/ToolCalibration.py:337 -#, fuzzy -#| msgid "Top right" msgid "Top Right Y" -msgstr "Arriba a la derecha" +msgstr "Arriba a la derecho Y" #: flatcamTools/ToolCalibration.py:370 -#, fuzzy -#| msgid "Ref. Point" msgid "Get Points" -msgstr "Punto de Ref" +msgstr "Obtener puntos" #: flatcamTools/ToolCalibration.py:372 msgid "" @@ -13075,12 +12892,15 @@ msgid "" "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:393 -#, fuzzy -#| msgid "Generate GCode" msgid "STEP 2: Verification GCode" -msgstr "Generar GCode" +msgstr "PASO 2: Verificación GCode" #: flatcamTools/ToolCalibration.py:395 flatcamTools/ToolCalibration.py:408 msgid "" @@ -13092,16 +12912,23 @@ msgid "" "- 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:406 flatcamTools/ToolSolderPaste.py:347 msgid "Generate GCode" msgstr "Generar GCode" #: flatcamTools/ToolCalibration.py:432 -#, fuzzy -#| msgid "Film Adjustments" msgid "STEP 3: Adjustments" -msgstr "Ajustes de la película" +msgstr "PASO 3: Ajustes" #: flatcamTools/ToolCalibration.py:434 flatcamTools/ToolCalibration.py:443 msgid "" @@ -13109,74 +12936,61 @@ msgid "" "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:441 -#, fuzzy -#| msgid "Calculators" msgid "Calculate Factors" -msgstr "Calculadoras" +msgstr "Calcular factores" #: flatcamTools/ToolCalibration.py:463 -#, fuzzy -#| msgid "Generate GCode" msgid "STEP 4: Adjusted GCode" -msgstr "Generar GCode" +msgstr "PASO 4: Código GC ajustado" #: flatcamTools/ToolCalibration.py:465 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:470 -#, fuzzy -#| msgid "Scale factor" msgid "Scale Factor X:" -msgstr "Factor de escala" +msgstr "Factor de escala X:" #: flatcamTools/ToolCalibration.py:482 -#, fuzzy -#| msgid "Scale factor" msgid "Scale Factor Y:" -msgstr "Factor de escala" +msgstr "Factor de escala Y:" #: flatcamTools/ToolCalibration.py:494 -#, fuzzy -#| msgid "Scale factor" msgid "Apply Scale Factors" -msgstr "Factor de escala" +msgstr "Aplicar factores de escala" #: flatcamTools/ToolCalibration.py:496 msgid "Apply Scale factors on the calibration points." -msgstr "" +msgstr "Aplicar factores de escala en los puntos de calibración." #: flatcamTools/ToolCalibration.py:506 -#, fuzzy -#| msgid "Angle X:" msgid "Skew Angle X:" -msgstr "Ángulo X:" +msgstr "Ángulo de Sesgar X:" #: flatcamTools/ToolCalibration.py:519 -#, fuzzy -#| msgid "Angle Y:" msgid "Skew Angle Y:" -msgstr "Ángulo Y:" +msgstr "Ángulo de Sesgar Y:" #: flatcamTools/ToolCalibration.py:532 -#, fuzzy -#| msgid "Applying Skew" msgid "Apply Skew Factors" -msgstr "Aplicando Sesgo" +msgstr "Aplicar factores Sesgados" #: flatcamTools/ToolCalibration.py:534 msgid "Apply Skew factors on the calibration points." -msgstr "" +msgstr "Aplicar factores de inclinación en los puntos de calibración." #: flatcamTools/ToolCalibration.py:603 -#, fuzzy -#| msgid "Generate GCode" msgid "Generate Adjusted GCode" -msgstr "Generar GCode" +msgstr "Generar código GC ajustado" #: flatcamTools/ToolCalibration.py:605 msgid "" @@ -13185,52 +12999,50 @@ msgid "" "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:626 msgid "STEP 5: Calibrate FlatCAM Objects" -msgstr "" +msgstr "PASO 5: Calibrar objetos FlatCAM" #: flatcamTools/ToolCalibration.py:628 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:641 -#, fuzzy -#| msgid "Edit Object\tE" msgid "Adjusted object type" -msgstr "Editar objeto\tE" +msgstr "Tipo de objeto ajustado" #: flatcamTools/ToolCalibration.py:643 -#, fuzzy -#| msgid "Geometry Obj to be mirrored." msgid "Type of the FlatCAM Object to be adjusted." -msgstr "Obj de geometría para ser reflejado." +msgstr "Tipo del objeto FlatCAM que se ajustará." #: flatcamTools/ToolCalibration.py:654 -#, fuzzy -#| msgid "Edit Object\tE" msgid "Adjusted object selection" -msgstr "Editar objeto\tE" +msgstr "Selección de objeto ajustada" #: flatcamTools/ToolCalibration.py:656 -#, fuzzy -#| msgid "Excellon Object to be mirrored." msgid "The FlatCAM Object to be adjusted." -msgstr "Excellon Objeto a ser reflejado." +msgstr "El objeto FlatCAM a ajustar." #: flatcamTools/ToolCalibration.py:663 -#, fuzzy -#| msgid "Creating Excellon." msgid "Calibrate" -msgstr "Creación de Excellon." +msgstr "Calibrar" #: flatcamTools/ToolCalibration.py:665 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:686 flatcamTools/ToolCopperThieving.py:482 #: flatcamTools/ToolCutOut.py:360 flatcamTools/ToolDblSided.py:302 @@ -13239,10 +13051,8 @@ msgstr "" #: flatcamTools/ToolPaint.py:378 flatcamTools/ToolPanelize.py:266 #: flatcamTools/ToolQRCode.py:314 flatcamTools/ToolRulesCheck.py:507 #: flatcamTools/ToolSolderPaste.py:470 flatcamTools/ToolSub.py:170 -#, fuzzy -#| msgid "Rules Tool" msgid "Reset Tool" -msgstr "Herramienta de Reglas" +msgstr "Restablecer la Herramienta" #: flatcamTools/ToolCalibration.py:688 flatcamTools/ToolCopperThieving.py:484 #: flatcamTools/ToolCutOut.py:362 flatcamTools/ToolDblSided.py:304 @@ -13251,78 +13061,64 @@ msgstr "Herramienta de Reglas" #: flatcamTools/ToolPaint.py:380 flatcamTools/ToolPanelize.py:268 #: flatcamTools/ToolQRCode.py:316 flatcamTools/ToolRulesCheck.py:509 #: flatcamTools/ToolSolderPaste.py:472 flatcamTools/ToolSub.py:172 -#, fuzzy -#| msgid "" -#| "Select tools.\n" -#| "Modify parameters." msgid "Will reset the tool parameters." -msgstr "" -"Seleccionar herramientas.\n" -"Modificar parámetros." +msgstr "Restablecerá los parámetros de la herramienta." #: flatcamTools/ToolCalibration.py:792 msgid "Tool initialized" -msgstr "" +msgstr "Herramienta inicializada" #: flatcamTools/ToolCalibration.py:824 -#, fuzzy -#| msgid "There is no Excellon object loaded ..." msgid "There is no source FlatCAM object selected..." -msgstr "No hay ningún objeto Excellon cargado ..." +msgstr "No hay ningún objeto FlatCAM de origen seleccionado ..." #: flatcamTools/ToolCalibration.py:845 -#, fuzzy -#| msgid "Click inside the desired polygon." msgid "Get First calibration point. Bottom Left..." -msgstr "Haga clic dentro del polígono deseado." +msgstr "Obtenga el primer punto de calibración. Abajo a la izquierda ..." #: flatcamTools/ToolCalibration.py:906 -#, fuzzy -#| msgid "Copy cancelled. No shape selected." msgid "Cancelled by user request." -msgstr "Copia cancelada. Ninguna forma seleccionada." +msgstr "Cancelado por solicitud del usuario." #: flatcamTools/ToolCalibration.py:912 -#, fuzzy -#| msgid "Click inside the desired polygon." msgid "Get Second calibration point. Bottom Right (Top Left)..." -msgstr "Haga clic dentro del polígono deseado." +msgstr "" +"Obtenga el segundo punto de calibración. Abajo a la derecha (arriba a la " +"izquierda) ..." #: flatcamTools/ToolCalibration.py:916 -#, fuzzy -#| msgid "Click inside the desired polygon." msgid "Get Third calibration point. Top Left (Bottom Right)..." -msgstr "Haga clic dentro del polígono deseado." +msgstr "" +"Obtenga el tercer punto de calibración. Arriba a la izquierda, abajo a la " +"derecha)..." #: flatcamTools/ToolCalibration.py:920 msgid "Get Forth calibration point. Top Right..." -msgstr "" +msgstr "Obtenga el punto de calibración Forth. Parte superior derecha..." #: flatcamTools/ToolCalibration.py:924 msgid "Done. All four points have been acquired." -msgstr "" +msgstr "Hecho. Los cuatro puntos han sido adquiridos." #: flatcamTools/ToolCalibration.py:955 msgid "Verification GCode for FlatCAM Calibration Tool" -msgstr "" +msgstr "Verificación GCode para la herramienta de calibración FlatCAM" #: flatcamTools/ToolCalibration.py:967 flatcamTools/ToolCalibration.py:1053 msgid "Gcode Viewer" -msgstr "" +msgstr "Visor de Gcode" #: flatcamTools/ToolCalibration.py:983 msgid "Cancelled. Four points are needed for GCode generation." -msgstr "" +msgstr "Cancelado. Se necesitan cuatro puntos para la generación de GCode." #: flatcamTools/ToolCalibration.py:1239 flatcamTools/ToolCalibration.py:1335 -#, fuzzy -#| msgid "There is no Box object loaded ..." msgid "There is no FlatCAM object selected..." -msgstr "No hay ningún objeto caja cargado ..." +msgstr "No hay ningún objeto FlatCAM seleccionado ..." #: flatcamTools/ToolCopperThieving.py:76 flatcamTools/ToolFiducials.py:260 msgid "Gerber Object to which will be added a copper thieving." -msgstr "" +msgstr "Gerber Objeto al que se agregará un Copper Thieving." #: flatcamTools/ToolCopperThieving.py:98 msgid "" @@ -13330,18 +13126,11 @@ msgid "" "(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 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." 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 " @@ -13349,14 +13138,12 @@ msgid "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." msgstr "" -"- 'Sí mismo' - la extensión de limpieza sin cobre\n" -"se basa en el objeto que es cobre despejado.\n" -"  - '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" -"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" -"especificado por otro objeto." +"- '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/ToolNonCopperClear.py:451 flatcamTools/ToolPaint.py:332 @@ -13364,38 +13151,28 @@ msgid "Ref. Type" msgstr "Tipo de Ref" #: flatcamTools/ToolCopperThieving.py:140 -#, fuzzy -#| msgid "" -#| "The type of FlatCAM object to be used as non copper clearing reference.\n" -#| "It can be Gerber, Excellon or Geometry." 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 compensación " -"sin cobre.\n" +"El tipo de objeto FlatCAM que se utilizará como referencia de 'Copper " +"Thieving'.\n" "Puede ser Gerber, Excellon o Geometry." #: flatcamTools/ToolCopperThieving.py:144 flatcamTools/ToolDblSided.py:213 #: flatcamTools/ToolNonCopperClear.py:457 flatcamTools/ToolPaint.py:338 -#, fuzzy -#| msgid "Reference Object" msgid "Reference Gerber" -msgstr "Objeto de referencia" +msgstr "Gerber de referencia" #: flatcamTools/ToolCopperThieving.py:145 flatcamTools/ToolDblSided.py:214 #: flatcamTools/ToolNonCopperClear.py:458 flatcamTools/ToolPaint.py:339 -#, fuzzy -#| msgid "Open Excellon" msgid "Reference Excellon" -msgstr "Abierto Excellon" +msgstr "Excellon de referencia" #: flatcamTools/ToolCopperThieving.py:146 flatcamTools/ToolDblSided.py:215 #: flatcamTools/ToolNonCopperClear.py:459 flatcamTools/ToolPaint.py:340 -#, fuzzy -#| msgid "Generate Geometry" msgid "Reference Geometry" -msgstr "Generar Geometría" +msgstr "Geometría de referencia" #: flatcamTools/ToolCopperThieving.py:151 #: flatcamTools/ToolNonCopperClear.py:462 flatcamTools/ToolPaint.py:343 @@ -13410,17 +13187,19 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:326 msgid "Insert Copper thieving" -msgstr "" +msgstr "Insertar Copper thieving" #: flatcamTools/ToolCopperThieving.py:328 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:387 msgid "Insert Robber Bar" -msgstr "" +msgstr "Insertar Robber Bar" #: flatcamTools/ToolCopperThieving.py:389 msgid "" @@ -13429,12 +13208,14 @@ msgid "" "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:413 -#, fuzzy -#| msgid "Delete objects" msgid "Select Soldermask object" -msgstr "Eliminar objetos" +msgstr "Seleccionar objeto Soldermask" #: flatcamTools/ToolCopperThieving.py:415 msgid "" @@ -13442,10 +13223,13 @@ msgid "" "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:443 msgid "Plated area" -msgstr "" +msgstr "Área chapada" #: flatcamTools/ToolCopperThieving.py:445 msgid "" @@ -13457,20 +13241,26 @@ msgid "" "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:456 msgid "mm" -msgstr "" +msgstr "mm" #: flatcamTools/ToolCopperThieving.py:458 -#, fuzzy -#| msgid "info" msgid "in" -msgstr "info" +msgstr "in" #: flatcamTools/ToolCopperThieving.py:465 msgid "Generate pattern plating mask" -msgstr "" +msgstr "Generar máscara de recubrimiento de patrón" #: flatcamTools/ToolCopperThieving.py:467 msgid "" @@ -13478,27 +13268,26 @@ msgid "" "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:620 #: flatcamTools/ToolCopperThieving.py:645 msgid "Lines Grid works only for 'itself' reference ..." -msgstr "" +msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..." #: flatcamTools/ToolCopperThieving.py:631 -#, fuzzy -#| msgid "Failed. Nothing selected." msgid "Solid fill selected." -msgstr "Ha fallado. Nada seleccionado." +msgstr "Relleno sólido seleccionado." #: flatcamTools/ToolCopperThieving.py:636 -#, fuzzy -#| msgid "Done. Drill(s) deleted." msgid "Dots grid fill selected." -msgstr "Hecho. Taladro (s) eliminado (s)." +msgstr "Relleno de cuadrícula de puntos seleccionado." #: flatcamTools/ToolCopperThieving.py:641 msgid "Squares grid fill selected." -msgstr "" +msgstr "Rellenar cuadrícula de cuadrados seleccionados." #: flatcamTools/ToolCopperThieving.py:662 #: flatcamTools/ToolCopperThieving.py:744 @@ -13510,25 +13299,19 @@ msgstr "No hay ningún objeto Gerber cargado ..." #: flatcamTools/ToolCopperThieving.py:675 #: flatcamTools/ToolCopperThieving.py:1267 -#, fuzzy -#| msgid "geometry" msgid "Append geometry" -msgstr "geometría" +msgstr "Añadir geometría" #: flatcamTools/ToolCopperThieving.py:719 #: flatcamTools/ToolCopperThieving.py:1300 #: flatcamTools/ToolCopperThieving.py:1453 -#, fuzzy -#| msgid "Save Document source file" msgid "Append source file" -msgstr "Guardar archivo fuente del Documento" +msgstr "Agregar archivo fuente" #: flatcamTools/ToolCopperThieving.py:727 #: flatcamTools/ToolCopperThieving.py:1308 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool done." -msgstr "Herramienta de Limpieza Sin Cobre" +msgstr "Herramienta Copper Thieving hecha." #: flatcamTools/ToolCopperThieving.py:754 #: flatcamTools/ToolCopperThieving.py:787 flatcamTools/ToolCutOut.py:466 @@ -13549,10 +13332,8 @@ msgid "Click the start point of the area." msgstr "Haga clic en el punto de inicio del área." #: flatcamTools/ToolCopperThieving.py:815 -#, fuzzy -#| msgid "Click the end point of the paint area." msgid "Click the end point of the filling area." -msgstr "Haga clic en el punto final del área de pintura." +msgstr "Haga clic en el punto final del área de relleno." #: flatcamTools/ToolCopperThieving.py:821 #: flatcamTools/ToolNonCopperClear.py:1266 flatcamTools/ToolPaint.py:1206 @@ -13565,23 +13346,20 @@ msgstr "" #: flatcamTools/ToolCopperThieving.py:940 #: flatcamTools/ToolCopperThieving.py:1001 msgid "Thieving" -msgstr "" +msgstr "Ladrón" #: flatcamTools/ToolCopperThieving.py:947 -#, fuzzy -#| msgid "NCC Tool started. Reading parameters." msgid "Copper Thieving Tool started. Reading parameters." -msgstr "Herramienta NCC iniciada. Parámetros de lectura." +msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura." #: flatcamTools/ToolCopperThieving.py:972 -#, fuzzy -#| msgid "NCC Tool. Preparing non-copper polygons." msgid "Copper Thieving Tool. Preparing isolation polygons." -msgstr "Herramienta NCC. Preparación de polígonos sin cobre." +msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento." #: flatcamTools/ToolCopperThieving.py:1017 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:1028 flatcamTools/ToolOptimal.py:349 #: flatcamTools/ToolPanelize.py:798 flatcamTools/ToolRulesCheck.py:1118 @@ -13589,10 +13367,8 @@ msgid "Working..." msgstr "Trabajando..." #: flatcamTools/ToolCopperThieving.py:1055 -#, fuzzy -#| msgid "Geometry not supported for cutout" msgid "Geometry not supported for bounding box" -msgstr "Geometría no admitida para recorte" +msgstr "Geometría no admitida para cuadro delimitador" #: flatcamTools/ToolCopperThieving.py:1061 #: flatcamTools/ToolNonCopperClear.py:1517 flatcamTools/ToolPaint.py:2571 @@ -13607,31 +13383,28 @@ msgstr "El tipo de objeto de referencia no es compatible." #: flatcamTools/ToolCopperThieving.py:1103 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:1119 -#, fuzzy -#| msgid "Create Paint Geometry" msgid "Create geometry" -msgstr "Crear geometría de pintura" +msgstr "Crear geometría" #: flatcamTools/ToolCopperThieving.py:1319 #: flatcamTools/ToolCopperThieving.py:1323 msgid "P-Plating Mask" -msgstr "" +msgstr "Mascarilla P" #: flatcamTools/ToolCopperThieving.py:1345 msgid "Append PP-M geometry" -msgstr "" +msgstr "Añadir geometría de máscara de recubrimiento P" #: flatcamTools/ToolCopperThieving.py:1471 msgid "Generating Pattern Plating Mask done." -msgstr "" +msgstr "Generando patrón de recubrimiento de máscara hecho." #: flatcamTools/ToolCopperThieving.py:1543 -#, fuzzy -#| msgid "Non-Copper Clearing Tool" msgid "Copper Thieving Tool exit." -msgstr "Herramienta de Limpieza Sin Cobre" +msgstr "Salida de herramienta de Copper Thieving." #: flatcamTools/ToolCutOut.py:42 msgid "Cutout PCB" @@ -13650,16 +13423,12 @@ msgstr "" "de objetos que llenarán el cuadro combinado 'Objeto'." #: flatcamTools/ToolCutOut.py:91 flatcamTools/ToolCutOut.py:92 -#, fuzzy -#| msgid "Object to be painted." msgid "Object to be cutout" -msgstr "Objeto a pintar." +msgstr "Objeto a recortar" #: flatcamTools/ToolCutOut.py:214 -#, fuzzy -#| msgid "Convex Sh." msgid "Convex Shape" -msgstr "Forma Conv." +msgstr "Forma convexa" #: flatcamTools/ToolCutOut.py:228 msgid "A. Automatic Bridge Gaps" @@ -13694,10 +13463,8 @@ msgstr "" "- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" #: flatcamTools/ToolCutOut.py:262 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Freeform Geometry" -msgstr "Generar Geometría" +msgstr "Generar geometría de forma libre" #: flatcamTools/ToolCutOut.py:264 msgid "" @@ -13710,10 +13477,8 @@ msgstr "" "Útil cuando la PCB tiene una forma no rectangular." #: flatcamTools/ToolCutOut.py:276 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Rectangular Geometry" -msgstr "Generar Geometría" +msgstr "Generar geometría rectangular" #: flatcamTools/ToolCutOut.py:278 msgid "" @@ -13746,10 +13511,8 @@ msgid "Geometry object used to create the manual cutout." msgstr "Objeto de geometría utilizado para crear el recorte manual." #: flatcamTools/ToolCutOut.py:326 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generate Manual Geometry" -msgstr "Generar Geometría" +msgstr "Generar geometría manual" #: flatcamTools/ToolCutOut.py:328 msgid "" @@ -13881,10 +13644,8 @@ msgid "2-Sided PCB" msgstr "PCB a 2 caras" #: flatcamTools/ToolDblSided.py:58 -#, fuzzy -#| msgid "Geometry Obj to be mirrored." msgid "Gerber to be mirrored" -msgstr "Obj de geometría para ser reflejado." +msgstr "Gerber para ser reflejado" #: flatcamTools/ToolDblSided.py:60 flatcamTools/ToolDblSided.py:88 #: flatcamTools/ToolDblSided.py:118 @@ -14157,19 +13918,15 @@ msgstr "MEDICIÓN: haga clic en el punto de destino ..." #: flatcamTools/ToolDistance.py:353 flatcamTools/ToolDistanceMin.py:282 msgid "MEASURING" -msgstr "" +msgstr "MEDICIÓN" #: flatcamTools/ToolDistance.py:354 flatcamTools/ToolDistanceMin.py:283 -#, fuzzy -#| msgid "Geo Result" msgid "Result" -msgstr "Resultado Geo" +msgstr "Resultado" #: flatcamTools/ToolDistance.py:355 flatcamTools/ToolDistanceMin.py:284 -#, fuzzy -#| msgid "Distance Tool" msgid "Distance" -msgstr "Herramienta de Dist" +msgstr "Distancia" #: flatcamTools/ToolDistanceMin.py:31 flatcamTools/ToolDistanceMin.py:152 msgid "Minimum Distance Tool" @@ -14236,32 +13993,26 @@ msgid "Jumped to the half point between the two selected objects" msgstr "Saltó al punto medio entre los dos objetos seleccionados" #: flatcamTools/ToolFiducials.py:56 -#, fuzzy -#| msgid "Points coordinates" msgid "Fiducials Coordinates" -msgstr "Coordenadas de puntos" +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:74 -#, fuzzy -#| msgid "Coordinates type" msgid "Coordinates" -msgstr "Tipo de coordenadas" +msgstr "Coordenadas" #: flatcamTools/ToolFiducials.py:99 -#, fuzzy -#| msgid "Top right" msgid "Top Right" msgstr "Arriba a la derecha" #: flatcamTools/ToolFiducials.py:111 -#, fuzzy -#| msgid "Second object point" msgid "Second Point" msgstr "Segundo punto" @@ -14271,40 +14022,34 @@ msgid "" "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:258 -#, fuzzy -#| msgid "Open Gerber" msgid "Copper Gerber" -msgstr "Abrir gerber" +msgstr "Cobre Gerber" #: flatcamTools/ToolFiducials.py:267 -#, fuzzy -#| msgid "Add Circle" msgid "Add Fiducial" -msgstr "Añadir Círculo" +msgstr "Añadir Fiducial" #: flatcamTools/ToolFiducials.py:269 msgid "Will add a polygon on the copper layer to serve as fiducial." -msgstr "" +msgstr "Agregará un polígono en la capa de cobre para servir como fiducial." #: flatcamTools/ToolFiducials.py:285 -#, fuzzy #| msgid "New Blank Gerber" msgid "Soldermask Gerber" -msgstr "Nuevo Gerber en blanco" +msgstr "Soldermask Gerber" #: flatcamTools/ToolFiducials.py:287 -#, fuzzy -#| msgid "No SolderPaste mask Gerber object loaded." msgid "The Soldermask Gerber object." -msgstr "No se ha cargado el objeto Gerber de máscara de pasta de soldadura." +msgstr "El objeto Soldermask Gerber." #: flatcamTools/ToolFiducials.py:298 -#, fuzzy -#| msgid "Solder Paste Dispensing Tool" msgid "Add Soldermask Opening" -msgstr "Herramienta de Dispensación de Pasta" +msgstr "Agregar apertura de Soldermask" #: flatcamTools/ToolFiducials.py:300 msgid "" @@ -14313,28 +14058,32 @@ msgid "" "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:514 msgid "Click to add first Fiducial. Bottom Left..." -msgstr "" +msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..." #: flatcamTools/ToolFiducials.py:778 msgid "Click to add the last fiducial. Top Right..." -msgstr "" +msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..." #: flatcamTools/ToolFiducials.py:783 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:786 flatcamTools/ToolFiducials.py:795 msgid "Done. All fiducials have been added." -msgstr "" +msgstr "Hecho. Se han agregado todos los fiduciales." #: flatcamTools/ToolFiducials.py:872 -#, fuzzy -#| msgid "Distance Tool exit..." msgid "Fiducials Tool exit." -msgstr "Salida de Herramienta de Distancia ..." +msgstr "Herram. Fiduciales de salida." #: flatcamTools/ToolFilm.py:42 msgid "Film PCB" @@ -14389,10 +14138,8 @@ msgstr "" "mismo objeto para el que se crea la película." #: flatcamTools/ToolFilm.py:273 -#, fuzzy -#| msgid "Slot Parameters" msgid "Film Parameters" -msgstr "Parámetros de ranura" +msgstr "Parámetros de la película" #: flatcamTools/ToolFilm.py:334 msgid "Punch drill holes" @@ -14454,12 +14201,6 @@ msgid "Save Film" msgstr "Guardar película" #: flatcamTools/ToolFilm.py:502 -#, fuzzy -#| 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 SVG format\n" -#| "which can be opened with Inkscape." msgid "" "Create a Film for the selected object, within\n" "the specified box. Does not create a new \n" @@ -14468,8 +14209,8 @@ msgid "" msgstr "" "Crear una película para el objeto seleccionado, dentro de\n" "la casilla especificada No crea un nuevo\n" -"Objeto FlatCAM, pero guárdelo directamente en formato SVG\n" -"que se puede abrir con Inkscape." +"Objeto FlatCAM, pero guárdelo directamente en el\n" +"formato seleccionado" #: flatcamTools/ToolFilm.py:652 msgid "" @@ -14492,26 +14233,20 @@ msgstr "" "vuelva a intentarlo." #: flatcamTools/ToolFilm.py:673 -#, fuzzy -#| msgid "No object selected." msgid "No FlatCAM object selected." -msgstr "Ningún objeto seleccionado." +msgstr "No se ha seleccionado ningún objeto FlatCAM." #: flatcamTools/ToolFilm.py:684 msgid "Generating Film ..." msgstr "Generando película ..." #: flatcamTools/ToolFilm.py:733 flatcamTools/ToolFilm.py:737 -#, fuzzy -#| msgid "Export SVG positive" msgid "Export positive film" -msgstr "Exportar SVG positivo" +msgstr "Exportar película positiva" #: flatcamTools/ToolFilm.py:742 -#, fuzzy -#| msgid "Export SVG positive cancelled." msgid "Export positive film cancelled." -msgstr "Exportación SVG positiva cancelada." +msgstr "Exportación de película positiva cancelada." #: flatcamTools/ToolFilm.py:770 msgid "" @@ -14548,16 +14283,12 @@ msgstr "" "origen ..." #: flatcamTools/ToolFilm.py:879 flatcamTools/ToolFilm.py:883 -#, fuzzy -#| msgid "Export SVG negative" msgid "Export negative film" -msgstr "Exportar SVG negativo" +msgstr "Exportar película negativa" #: flatcamTools/ToolFilm.py:888 -#, fuzzy -#| msgid "Export SVG negative cancelled." msgid "Export negative film cancelled." -msgstr "Exportar SVG negativo cancelado." +msgstr "Película negativa de exportación cancelada." #: flatcamTools/ToolFilm.py:944 flatcamTools/ToolFilm.py:1122 #: flatcamTools/ToolPanelize.py:421 @@ -14565,10 +14296,8 @@ msgid "No object Box. Using instead" msgstr "Sin objeto Caja. Usando en su lugar" #: flatcamTools/ToolFilm.py:1060 flatcamTools/ToolFilm.py:1235 -#, fuzzy -#| msgid "DXF file exported to" msgid "Film file exported to" -msgstr "Archivo DXF exportado a" +msgstr "Archivo de película exportado a" #: flatcamTools/ToolFilm.py:1063 flatcamTools/ToolFilm.py:1238 msgid "Generating Film ... Please wait." @@ -14837,6 +14566,9 @@ msgid "" "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." #: flatcamTools/ToolNonCopperClear.py:288 flatcamTools/ToolPaint.py:190 msgid "" @@ -14856,16 +14588,6 @@ msgstr "" "seleccionando primero una (s) fila (s) en la Tabla de herramientas." #: flatcamTools/ToolNonCopperClear.py:441 -#, fuzzy -#| msgid "" -#| "- 'Itself' - the non copper clearing extent\n" -#| "is based on the object that is copper cleared.\n" -#| " - 'Area Selection' - left mouse click to start selection of the area to " -#| "be painted.\n" -#| "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple " -#| "areas.\n" -#| "- 'Reference Object' - will do non copper clearing within the area\n" -#| "specified by another object." msgid "" "- 'Itself' - the non copper clearing extent is based on the object that is " "copper cleared.\n" @@ -14874,14 +14596,12 @@ msgid "" "- 'Reference Object' - will do non copper clearing within the area specified " "by another object." msgstr "" -"- 'Sí mismo' - la extensión de limpieza sin cobre\n" -"se basa en el objeto que es cobre despejado.\n" -"  - 'Selección de área': haga clic con el botón izquierdo del mouse para " +"- 'Sí mismo': la extensión de limpieza sin cobre se basa en el objeto que se " +"limpia con cobre.\n" +"- '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" -"- 'Objeto de referencia' - hará una limpieza sin cobre dentro del área\n" -"especificado por otro objeto." +"- 'Objeto de referencia': hará una limpieza sin cobre dentro del área " +"especificada por otro objeto." #: flatcamTools/ToolNonCopperClear.py:453 msgid "" @@ -15096,7 +14816,7 @@ msgid "" "click this button." msgstr "" "Seleccione una posición en el cuadro de texto Ubicaciones y luego\n" -"haga clic en este botón" +"haga clic en este botón." #: flatcamTools/ToolOptimal.py:143 msgid "Other distances" @@ -15318,10 +15038,8 @@ msgstr "" "Si no está marcado, use el algoritmo estándar." #: flatcamTools/ToolPaint.py:313 -#, fuzzy -#| msgid "Polygon Intersection" msgid "Polygon Selection" -msgstr "Intersección de polígonos" +msgstr "Selección de polígono" #: flatcamTools/ToolPaint.py:315 msgid "All Polygons" @@ -15371,32 +15089,24 @@ msgid "Can't do Paint on MultiGeo geometries" msgstr "No se puede Pintar en geometrías de geo-múltiple" #: flatcamTools/ToolPaint.py:1040 -#, fuzzy -#| msgid "Click on target point." msgid "Click on a polygon to paint it." -msgstr "Haga clic en el punto de destino." +msgstr "Haga clic en un polígono para pintarlo." #: flatcamTools/ToolPaint.py:1059 msgid "Click the start point of the paint area." msgstr "Haga clic en el punto de inicio del área de pintura." #: flatcamTools/ToolPaint.py:1127 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add next polygon or right click to start painting." msgstr "" -"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " -"clic con el botón derecho para finalizar." +"Haga clic para agregar el siguiente polígono o haga clic con el botón " +"derecho para comenzar a pintar." #: flatcamTools/ToolPaint.py:1140 -#, fuzzy -#| msgid "" -#| "Zone added. Click to start adding next zone or right click to finish." msgid "Click to add/remove next polygon or right click to start painting." msgstr "" -"Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " -"clic con el botón derecho para finalizar." +"Haga clic para agregar / eliminar el siguiente polígono o haga clic con el " +"botón derecho para comenzar a pintar." #: flatcamTools/ToolPaint.py:1348 flatcamTools/ToolPaint.py:1351 #: flatcamTools/ToolPaint.py:1353 flatcamTools/ToolPaint.py:1885 @@ -15865,7 +15575,7 @@ msgstr "Dimensiones" #: flatcamTools/ToolProperties.py:165 msgid "Others" -msgstr "" +msgstr "Otros" #: flatcamTools/ToolProperties.py:172 msgid "Geo Type" @@ -15894,28 +15604,20 @@ msgid "Metric" msgstr "Métrico" #: flatcamTools/ToolProperties.py:401 flatcamTools/ToolProperties.py:459 -#, fuzzy -#| msgid "Workers number" msgid "Drills number" -msgstr "Número de trabajadores" +msgstr "Número de taladros" #: flatcamTools/ToolProperties.py:402 flatcamTools/ToolProperties.py:461 -#, fuzzy -#| msgid "tool number" msgid "Slots number" -msgstr "número de herramienta" +msgstr "Número de tragamonedas" #: flatcamTools/ToolProperties.py:404 -#, fuzzy -#| msgid "tool number" msgid "Drills total number:" -msgstr "número de herramienta" +msgstr "Número total de taladros:" #: flatcamTools/ToolProperties.py:405 -#, fuzzy -#| msgid "tool number" msgid "Slots total number:" -msgstr "número de herramienta" +msgstr "Número total de tragamonedas:" #: flatcamTools/ToolProperties.py:411 flatcamTools/ToolProperties.py:426 #: flatcamTools/ToolProperties.py:429 flatcamTools/ToolProperties.py:432 @@ -15924,56 +15626,40 @@ msgid "Present" msgstr "Presente" #: flatcamTools/ToolProperties.py:427 flatcamTools/ToolProperties.py:457 -#, fuzzy -#| msgid "Buffer Solid Geometry" msgid "Solid Geometry" -msgstr "Buffer la Geometria solida" +msgstr "Geometria solida" #: flatcamTools/ToolProperties.py:430 -#, fuzzy -#| msgid "Add Text" msgid "GCode Text" -msgstr "Añadir Texto" +msgstr "GCode texto" #: flatcamTools/ToolProperties.py:433 -#, fuzzy -#| msgid "New Geometry" msgid "GCode Geometry" -msgstr "Nueva geometría" +msgstr "Geometría GCode" #: flatcamTools/ToolProperties.py:435 -#, fuzzy -#| msgid "Tool Data" msgid "Data" -msgstr "Datos de Herram" +msgstr "Datos" #: flatcamTools/ToolProperties.py:468 -#, fuzzy -#| msgid "depth where to cut" msgid "Depth of Cut" -msgstr "profundidad donde cortar" +msgstr "Profundidad del corte" #: flatcamTools/ToolProperties.py:480 -#, fuzzy -#| msgid "Tolerance" msgid "Clearance Height" -msgstr "Tolerancia" +msgstr "Altura libre" #: flatcamTools/ToolProperties.py:492 -#, fuzzy -#| msgid "Feedrate:" msgid "Feedrate" -msgstr "Avance:" +msgstr "Avance" #: flatcamTools/ToolProperties.py:512 msgid "Routing time" -msgstr "" +msgstr "Tiempo de enrutamiento" #: flatcamTools/ToolProperties.py:519 -#, fuzzy -#| msgid "Travelled dist." msgid "Travelled distance" -msgstr "Dist. recorrida" +msgstr "Distancia recorrida" #: flatcamTools/ToolProperties.py:560 msgid "Width" @@ -15988,109 +15674,85 @@ msgid "Convex_Hull Area" msgstr "Área de casco convexo" #: flatcamTools/ToolProperties.py:583 flatcamTools/ToolProperties.py:585 -#, fuzzy -#| msgid "Open Gerber" msgid "Copper Area" -msgstr "Abrir gerber" +msgstr "Área de cobre" #: flatcamTools/ToolQRCode.py:79 -#, fuzzy -#| msgid "Gerber objects for which to check rules." msgid "Gerber Object to which the QRCode will be added." -msgstr "Objetos de Gerber para los cuales verificar las reglas." +msgstr "Objeto Gerber al que se agregará el QRCode." #: flatcamTools/ToolQRCode.py:92 -#, fuzzy -#| msgid "Slot Parameters" msgid "QRCode Parameters" -msgstr "Parámetros de ranura" +msgstr "Parámetros QRCode" #: flatcamTools/ToolQRCode.py:94 msgid "The parameters used to shape the QRCode." -msgstr "" +msgstr "Los parámetros utilizados para dar forma al QRCode." #: flatcamTools/ToolQRCode.py:207 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode" -msgstr "Exportar G-Code" +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 "" +msgstr "Color de fondo transparente" #: flatcamTools/ToolQRCode.py:273 -#, fuzzy -#| msgid "Export SVG" msgid "Export QRCode SVG" -msgstr "Exportar SVG" +msgstr "Exportar el QRCode SVG" #: flatcamTools/ToolQRCode.py:275 msgid "Export a SVG file with the QRCode content." -msgstr "" +msgstr "Exporte un archivo SVG con el contenido de QRCode." #: flatcamTools/ToolQRCode.py:286 -#, fuzzy -#| msgid "Export G-Code" msgid "Export QRCode PNG" -msgstr "Exportar G-Code" +msgstr "Exportar el QRCode PNG" #: flatcamTools/ToolQRCode.py:288 msgid "Export a PNG image file with the QRCode content." -msgstr "" +msgstr "Exporte un archivo de imagen PNG con el contenido de QRCode." #: flatcamTools/ToolQRCode.py:299 -#, fuzzy -#| msgid "Generate GCode" msgid "Insert QRCode" -msgstr "Generar GCode" +msgstr "Insertar QRCode" #: flatcamTools/ToolQRCode.py:301 -#, fuzzy -#| msgid "Generate the CNC Job object." msgid "Create the QRCode object." -msgstr "Genere el objeto de trabajo CNC." +msgstr "Crea el objeto QRCode." #: flatcamTools/ToolQRCode.py:413 flatcamTools/ToolQRCode.py:748 #: flatcamTools/ToolQRCode.py:797 -#, fuzzy -#| msgid "Cancelled. There is no Tool/Drill selected" msgid "Cancelled. There is no QRCode Data in the text box." -msgstr "Cancelado. No hay herramienta / taladro seleccionado" +msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto." #: flatcamTools/ToolQRCode.py:432 -#, fuzzy -#| msgid "Generate Geometry" msgid "Generating QRCode geometry" -msgstr "Generar Geometría" +msgstr "Generando geometría QRCode" #: flatcamTools/ToolQRCode.py:472 -#, fuzzy -#| msgid "MOVE: Click on the Destination point ..." msgid "Click on the Destination point ..." -msgstr "MOVER: haga clic en el punto de destino ..." +msgstr "Haga clic en el punto de destino ..." #: flatcamTools/ToolQRCode.py:587 msgid "QRCode Tool done." -msgstr "" +msgstr "Herramienta QRCode hecha." #: flatcamTools/ToolQRCode.py:780 flatcamTools/ToolQRCode.py:784 -#, fuzzy -#| msgid "Export SVG" msgid "Export PNG" -msgstr "Exportar SVG" +msgstr "Exportar PNG" #: flatcamTools/ToolQRCode.py:789 -#, fuzzy -#| msgid "Export PNG cancelled." msgid " Export PNG cancelled." -msgstr "Exportación PNG cancelada." +msgstr " Exportación PNG cancelada." #: flatcamTools/ToolRulesCheck.py:33 msgid "Check Rules" @@ -16590,10 +16252,8 @@ msgid "ToolSolderPaste CNCjob created" msgstr "Herramienta soldar pegar CNCjob creado" #: flatcamTools/ToolSolderPaste.py:1419 -#, fuzzy -#| msgid "Code Editor" msgid "SP GCode Editor" -msgstr "Editor de código" +msgstr "SP GCode editor" #: flatcamTools/ToolSolderPaste.py:1431 flatcamTools/ToolSolderPaste.py:1436 #: flatcamTools/ToolSolderPaste.py:1491 @@ -16702,34 +16362,24 @@ msgid "No Target object loaded." msgstr "No se ha cargado ningún objeto de destino." #: flatcamTools/ToolSub.py:281 -#, fuzzy -#| msgid "Adding geometry for aperture" msgid "Loading geometry from Gerber objects." -msgstr "Agregar geometría para la apertura" +msgstr "Cargando geometría de objetos Gerber." #: flatcamTools/ToolSub.py:293 flatcamTools/ToolSub.py:498 msgid "No Subtractor object loaded." msgstr "No se ha cargado ningún objeto Subtractor." #: flatcamTools/ToolSub.py:325 -#, fuzzy -#| msgid "" -#| "Gerber object from which to subtract\n" -#| "the subtractor Gerber object." msgid "Processing geometry from Subtractor Gerber object." -msgstr "" -"Objeto de Gerber para restar\n" -"El sustractor del objeto Gerber." +msgstr "Procesamiento de geometría del objeto sustractor Gerber." #: flatcamTools/ToolSub.py:346 msgid "Parsing geometry for aperture" msgstr "Análisis de geometría para apertura" #: flatcamTools/ToolSub.py:407 -#, fuzzy -#| msgid "Parsing geometry for aperture" msgid "Finished parsing geometry for aperture" -msgstr "Análisis de geometría para apertura" +msgstr "Geometría de análisis terminada para apertura" #: flatcamTools/ToolSub.py:452 flatcamTools/ToolSub.py:655 msgid "Generating new object ..."