Icons by
Freepik from
www.flaticon.com"
-"div>
Icons by
oNline Web Fonts"
-"a>"
-
-#: appMain.py:3329
-msgid "Splash"
-msgstr "启动"
-
-#: appMain.py:3335
-msgid "Programmers"
-msgstr "编程人员"
-
-#: appMain.py:3341
-msgid "Translators"
-msgstr "翻译人员"
-
-#: appMain.py:3347
-msgid "License"
-msgstr "许可证"
-
-#: appMain.py:3353
-msgid "Attributions"
-msgstr "特征"
-
-#: appMain.py:3583
-msgid "Programmer"
-msgstr "程序员"
-
-#: appMain.py:3584
-msgid "Status"
-msgstr "状态"
-
-#: appMain.py:3585 appMain.py:3667
-msgid "E-mail"
-msgstr "电子邮件"
-
-#: appMain.py:3589
-msgid "FlatCAM Author"
-msgstr "FlatCAM作者"
-
-#: appMain.py:3593
-msgid "FlatCAM Evo Author/Maintainer"
-msgstr "FlatCAM Evo 作者/维护者"
-
-#: appMain.py:3665
-msgid "Language"
-msgstr "语言"
-
-#: appMain.py:3666
-msgid "Translator"
-msgstr "译者"
-
-#: appMain.py:3775
-#, python-format
-msgid "This program is %s and free in a very wide meaning of the word."
-msgstr "这个程序是%s和免费的,从广义上讲是免费的。"
-
-#: appMain.py:3776
-msgid "Yet it cannot evolve without contributions."
-msgstr "然而,它的发展离不开贡献。"
-
-#: appMain.py:3777
-msgid "If you want to see this application grow and become better and better"
-msgstr "如果您希望看到此应用程序不断增长并变得越来越好"
-
-#: appMain.py:3778
-msgid "you can contribute to the development yourself by:"
-msgstr "您可以通过以下方式为自己的发展做出贡献:"
-
-#: appMain.py:3779
-msgid "Pull Requests on the Bitbucket repository, if you are a developer"
-msgstr "如果您是开发人员,则在Bitbucket存储库上提取请求"
-
-#: appMain.py:3781
-msgid "Bug Reports by providing the steps required to reproduce the bug"
-msgstr "通过提供重现错误所需的步骤来报告错误"
-
-#: appMain.py:3783
-msgid "If you like what you have seen so far ..."
-msgstr "如果你喜欢你目前所看到的。。。"
-
-#: appMain.py:3784
-msgid "Donations are NOT required."
-msgstr "不需要捐款。"
-
-#: appMain.py:3784
-msgid "But they are welcomed"
-msgstr "但它们受到欢迎"
-
-#: appMain.py:3815
-msgid "Contribute"
-msgstr "贡献"
-
-#: appMain.py:3836
-msgid "Links Exchange"
-msgstr "交流连接"
-
-#: appMain.py:3849 appMain.py:3869
-msgid "Soon ..."
-msgstr "马上就来。。。"
-
-#: appMain.py:3856
-msgid "How To's"
-msgstr "如何做"
-
-#: appMain.py:3976
-msgid "Alternative website"
-msgstr "替代网站"
-
-#: appMain.py:3977
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about the application\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-"在以下情况下,此条目将解析为其他网站:\n"
-"1.FlatCAM.org网站已关闭\n"
-"2.有人参与了FlatCAM项目,并希望指向自己的网站\n"
-"如果您无法获得有关该应用程序的任何信息,请使用“帮助”菜单中的YouTube频道链接。"
-
-#: appMain.py:4335
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr "已向FlatCAM注册的选定Excellon文件扩展名。"
-
-#: appMain.py:4352
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr "已向FlatCAM注册的选定G代码文件扩展名。"
-
-#: appMain.py:4368
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr "已向FlatCAM注册的选定Gerber文件扩展名。"
-
-#: appMain.py:4556 appMain.py:4619 appMain.py:4650
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr "加入至少需要两个对象。当前选定的对象"
-
-#: appMain.py:4565
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-"加入失败。Geometry对象的类型不同。\n"
-"至少有一个是多几何类型,另一个是单几何类型。一种可能是从一个转换到另一个,然"
-"后重试加入,但在从多几何转换到单几何的情况下,信息可能会丢失,结果可能不是预"
-"期的结果。\n"
-"检查生成的G代码。"
-
-#: appMain.py:4580 appMain.py:4591
-msgid "Geometry merging finished"
-msgstr "Geometry合并完成"
-
-#: appMain.py:4614
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr "失败。Excellon连接仅适用于Excellon对象。"
-
-#: appMain.py:4627
-msgid "Excellon merging finished"
-msgstr "Excelon合并完成"
-
-#: appMain.py:4645
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr "失败。Gerber连接仅适用于Gerber对象。"
-
-#: appMain.py:4655
-msgid "Gerber merging finished"
-msgstr "Gerber合并完成"
-
-#: appMain.py:4675 appMain.py:4711
-msgid "Failed. Select a Geometry Object and try again."
-msgstr "失败。选择一个Geometry对象,然后重试。"
-
-#: appMain.py:4679 appMain.py:4715
-msgid "Expected a GeometryObject, got"
-msgstr "应该是Geometry对象,得到"
-
-#: appMain.py:4694
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr "Geometry对象已转换为多重几何体类型。"
-
-#: appMain.py:4732
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr "Geometry对象已转换为单几何体类型。"
-
-#: appMain.py:4968
-msgid "Units cannot be changed while the editor is active."
-msgstr "编辑器处于活动状态时无法更改单位。"
-
-#: appMain.py:4977
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"更改项目的单位\n"
-"将缩放所有对象。\n"
-"你想继续吗?"
-
-#: appMain.py:5031
-msgid "Converted units to"
-msgstr "换算单位成"
-
-#: appMain.py:5065
-msgid "Workspace enabled."
-msgstr "工作区已启用。"
-
-#: appMain.py:5068
-msgid "Workspace disabled."
-msgstr "工作区已禁用。"
-
-#: appMain.py:5090
-msgid "FlatCAM log opened."
-msgstr "FlatCAM 日志已打开。"
-
-#: appMain.py:5145
-#, fuzzy
-#| msgid "Tool change Z"
-msgid "Tool adding ..."
-msgstr "换刀Z"
-
-#: appMain.py:5146
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-"仅当选中“高级”时,“添加工具”才起作用。\n"
-"转到首选项->常规-显示高级选项。"
-
-#: appMain.py:5236
-msgid "Delete objects"
-msgstr "删除对象"
-
-#: appMain.py:5237
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-"是否确实要永久删除\n"
-"选定的对象?"
-
-#: appMain.py:5292
-msgid "Save the work in Editor and try again ..."
-msgstr "将工作保存在编辑器中,然后重试。。。"
-
-#: appMain.py:5325
-msgid "Object deleted"
-msgstr "对象已删除"
-
-#: appMain.py:5338
-msgid "Click to set the origin ..."
-msgstr "单击以设置原点。。。"
-
-#: appMain.py:5377
-msgid "Setting Origin..."
-msgstr "正在设置原点。。。"
-
-#: appMain.py:5398 appMain.py:5519 appMain.py:5631
-msgid "Origin set"
-msgstr "原点设置"
-
-#: appMain.py:5418
-msgid "Origin coordinates specified but incomplete."
-msgstr "指定了原点坐标,但不完整。"
-
-#: appMain.py:5465
-msgid "Moving to Origin..."
-msgstr "移动到原点。。。"
-
-#: appMain.py:5469 appMain.py:5537
-msgid "Failed. No object(s) selected..."
-msgstr "失败。未选择任何对象。。。"
-
-#: appMain.py:5541
-msgid "Quadrant 2"
-msgstr "象限 2"
-
-#: appMain.py:5542
-msgid "Quadrant 1"
-msgstr "象限 1"
-
-#: appMain.py:5543
-msgid "Quadrant 3"
-msgstr "象限 3"
-
-#: appMain.py:5544
-msgid "Quadrant 4"
-msgstr "象限 4"
-
-#: appMain.py:5668
-msgid "Jump to ..."
-msgstr "跳转到。。。"
-
-#: appMain.py:5669 appMain.py:5929
-msgid "Enter the coordinates in format X,Y:"
-msgstr "以X,Y格式输入坐标:"
-
-#: appMain.py:5680 appMain.py:5939
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr "错误的坐标。 以格式输入坐标:X,Y"
-
-#: appMain.py:5775
-#, fuzzy
-#| msgid "Top Left"
-msgid "T Left"
-msgstr "左上"
-
-#: appMain.py:5776
-#, fuzzy
-#| msgid "Top Right"
-msgid "T Right"
-msgstr "右上"
-
-#: appMain.py:5777
-#, fuzzy
-#| msgid "Bot Left X"
-msgid "B Left"
-msgstr "左下角X"
-
-#: appMain.py:5778
-#, fuzzy
-#| msgid "Bot Right X"
-msgid "B Right"
-msgstr "右下角X"
-
-#: appMain.py:5781
-msgid "Locate ..."
-msgstr "定位。。。"
-
-#: appMain.py:5928
-#, fuzzy
-#| msgid "Moving to Origin..."
-msgid "Move to ..."
-msgstr "移动到原点。。。"
-
-#: appMain.py:6485 appMain.py:9385
-#, fuzzy
-#| msgid "Importing"
-msgid "Aborting."
-msgstr "导入"
-
-#: appMain.py:6485
-#, fuzzy
-#| msgid ""
-#| "Aborting. The current task will be gracefully closed as soon as "
-#| "possible..."
-msgid "The current task will be gracefully closed as soon as possible..."
-msgstr "中止。当前任务将尽快正常关闭。。。"
-
-#: appMain.py:6492
-msgid "The current task was gracefully closed on user request..."
-msgstr "当前任务已根据用户请求正常关闭。。。"
-
-#: appMain.py:6695
-msgid "Not available for Legacy 2D graphic mode."
-msgstr "不适用于传统 2D 图形模式。"
-
-#: appMain.py:6797
-msgid "Adding tool from DB is not allowed for this object."
-msgstr "此对象不允许从数据库添加刀具。"
-
-#: appMain.py:6815
-msgid "Save Tools Database"
-msgstr "保存刀具至数据库"
-
-#: appMain.py:6816
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to save?"
-msgstr ""
-"编辑一个或多个刀具。\n"
-"你想保存吗?"
-
-#: appMain.py:7045 appMain.py:7099 appMain.py:7147
-msgid "Enter the Angle value:"
-msgstr "输入角度值:"
-
-#: appMain.py:7078
-msgid "Rotation done."
-msgstr "旋转完成。"
-
-#: appMain.py:7080
-msgid "Rotation movement was not executed."
-msgstr "未执行旋转动作。"
-
-#: appMain.py:7129
-msgid "Skew on X axis done."
-msgstr "在X轴上倾斜完成。"
-
-#: appMain.py:7177
-msgid "Skew on Y axis done."
-msgstr "在Y轴上倾斜完成。"
-
-#: appMain.py:7248
-msgid "New Grid ..."
-msgstr "新栅格。。。"
-
-#: appMain.py:7249
-msgid "Enter a Grid Value:"
-msgstr "输入栅格值:"
-
-#: appMain.py:7258 appMain.py:7283
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr "请以浮点格式输入非零值的栅格值。"
-
-#: appMain.py:7263
-msgid "New Grid added"
-msgstr "新栅格已添加"
-
-#: appMain.py:7265
-msgid "Grid already exists"
-msgstr "栅格已经存在"
-
-#: appMain.py:7267
-msgid "Adding New Grid cancelled"
-msgstr "已取消添加新栅格"
-
-#: appMain.py:7289
-msgid "Grid Value does not exist"
-msgstr "栅格值不存在"
-
-#: appMain.py:7291
-msgid "Grid Value deleted"
-msgstr "栅格值已删除"
-
-#: appMain.py:7293
-msgid "Delete Grid value cancelled"
-msgstr "取消删除栅格值"
-
-#: appMain.py:7307
-msgid "Name copied to clipboard ..."
-msgstr "名称已复制到剪贴板。。。"
-
-#: appMain.py:8212 appMain.py:8216
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr "选择Gerber或Excellon文件以查看其源文件。"
-
-#: appMain.py:8219
-msgid "Viewing the source code of the selected object."
-msgstr "查看选定对象的源代码。"
-
-#: appMain.py:8233
-msgid "Source Editor"
-msgstr "源代码编辑器"
-
-#: appMain.py:8269 appMain.py:8276
-msgid "There is no selected object for which to see it's source file code."
-msgstr "没有要查看其源文件代码的选定对象。"
-
-#: appMain.py:8284
-msgid "Failed to load the source code for the selected object"
-msgstr "无法加载所选对象的源代码"
-
-#: appMain.py:8317
-msgid "Go to Line ..."
-msgstr "转到行。。。"
-
-#: appMain.py:8348
-msgid "Redrawing all objects"
-msgstr "重绘所有对象"
-
-#: appMain.py:8443
-msgid "Failed to load recent item list."
-msgstr "无法加载最近的项目列表。"
-
-#: appMain.py:8450
-msgid "Failed to parse recent item list."
-msgstr "无法分析最近的项目列表。"
-
-#: appMain.py:8460
-msgid "Failed to load recent projects item list."
-msgstr "无法加载最近的项目项列表。"
-
-#: appMain.py:8467
-msgid "Failed to parse recent project item list."
-msgstr "无法分析最近的项目项列表。"
-
-#: appMain.py:8491
-msgid "Recent files list was reset."
-msgstr "最近的文件列表已重置。"
-
-#: appMain.py:8505
-msgid "Recent projects list was reset."
-msgstr "最近的项目列表已重置。"
-
-#: appMain.py:8530
-msgid "Clear Recent projects"
-msgstr "清除最近的项目"
-
-#: appMain.py:8554
-msgid "Clear Recent files"
-msgstr "清除最近的文件"
-
-#: appMain.py:8611
-msgid "FlatCAM Evo"
-msgstr "FlatCAM Evo"
-
-#: appMain.py:8615
-msgid "Release date"
-msgstr "发布日期"
-
-#: appMain.py:8619
-msgid "Displayed"
-msgstr "显示"
-
-#: appMain.py:8631
-msgid "Canvas"
-msgstr "画布"
-
-#: appMain.py:8636
-msgid "Workspace active"
-msgstr "工作区激活"
-
-#: appMain.py:8640
-msgid "Workspace size"
-msgstr "工作区大小"
-
-#: appMain.py:8644
-msgid "Workspace orientation"
-msgstr "工作区方向"
-
-#: appMain.py:8706
-msgid "Failed checking for latest version. Could not connect."
-msgstr "检查最新版本失败。无法连接。"
-
-#: appMain.py:8713
-msgid "Could not parse information about latest version."
-msgstr "无法分析有关最新版本的信息。"
-
-#: appMain.py:8723
-#, fuzzy
-#| msgid "The application will restart."
-msgid "The application is up to date!"
-msgstr "应用程序将重新启动。"
-
-#: appMain.py:8727
-msgid "Newer Version Available"
-msgstr "新版本可用"
-
-#: appMain.py:8729
-#, fuzzy
-#| msgid "There is a newer version of FlatCAM available for download:"
-msgid "There is a newer version available for download:"
-msgstr "有更新版本的FlatCAM可供下载:"
-
-#: appMain.py:8759
-msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
-msgstr ""
-"OpenGL画布初始化失败。不支持硬件或硬件配置。请在编辑->首选项->常规选项卡中将"
-"图形引擎更改为Legacy(2D)。\n"
-
-#: appMain.py:8850
-msgid "All plots disabled."
-msgstr "所有绘图均已禁用。"
-
-#: appMain.py:8856
-msgid "All non selected plots disabled."
-msgstr "禁用所有未选择的绘图。"
-
-#: appMain.py:8862
-msgid "All plots enabled."
-msgstr "所有绘图均已启用。"
-
-#: appMain.py:8868
-msgid "All non selected plots enabled."
-msgstr "所有未选择的绘图均已启用。"
-
-#: appMain.py:8876
-msgid "Selected plots enabled..."
-msgstr "已启用选定的绘图选项。。。"
-
-#: appMain.py:8884
-msgid "Selected plots disabled..."
-msgstr "已禁用选定的绘图选项。。。"
-
-#: appMain.py:8926
-msgid "Enabling plots ..."
-msgstr "正在启用绘图。。。"
-
-#: appMain.py:8979
-msgid "Disabling plots ..."
-msgstr "正在禁用绘图。。。"
-
-#: appMain.py:9147
-msgid "Set alpha level ..."
-msgstr "设置透明度级别。。。"
-
-#: appMain.py:9545 appMain.py:9583 appMain.py:9626 appMain.py:9690
-#: appMain.py:10485 appMain.py:11788 appMain.py:11853
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-"画布初始化已开始。\n"
-"画布初始化完成于"
-
-#: appMain.py:9548
-msgid "Opening Gerber file."
-msgstr "正在打开Gerber文件。"
-
-#: appMain.py:9586
-msgid "Opening Excellon file."
-msgstr "正在打开Excellon文件。"
-
-#: appMain.py:9629
-msgid "Opening G-Code file."
-msgstr "正在打开G代码文件。"
-
-#: appMain.py:9681 appMain.py:9685
-msgid "Open HPGL2"
-msgstr "打开HPGL2"
-
-#: appMain.py:9693
-msgid "Opening HPGL2 file."
-msgstr "正在打开HPGL2文件。"
-
-#: appMain.py:9715 appMain.py:9718
-msgid "Open Configuration File"
-msgstr "打开配置文件"
-
-#: appMain.py:9744
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr "只能使用Geometry、Gerber和CNC任务对象。"
-
-#: appMain.py:9794
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr "数据必须是最后一个维度为3或4的三维数组"
-
-#: appMain.py:9800 appMain.py:9805
-msgid "Export PNG Image"
-msgstr "导出PNG图形"
-
-#: appMain.py:9838 appMain.py:10050
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr "失败。只有Gerber对象可以保存为Gerber文件。。。"
-
-#: appMain.py:9851
-msgid "Save Gerber source file"
-msgstr "保存Gerber源文件"
-
-#: appMain.py:9880
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr "失败。只有脚本对象才能保存为TCL脚本文件。。。"
-
-#: appMain.py:9893
-msgid "Save Script source file"
-msgstr "保存脚本源文件"
-
-#: appMain.py:9922
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr "失败。只有文档对象才能保存为文档文件。。。"
-
-#: appMain.py:9935
-msgid "Save Document source file"
-msgstr "保存文档源文件"
-
-#: appMain.py:9964 appMain.py:10005 appMain.py:11001
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr "失败。只有Excellon对象才能保存为Excellon文件。。。"
-
-#: appMain.py:9972 appMain.py:9977
-msgid "Save Excellon source file"
-msgstr "保存Excellon源文件"
-
-#: appMain.py:10095
-msgid "Only Geometry objects can be used."
-msgstr "只能使用Geometry对象。"
-
-#: appMain.py:10146 appMain.py:10150
-msgid "Import SVG"
-msgstr "导出SVG"
-
-#: appMain.py:10176 appMain.py:10180
-msgid "Import DXF"
-msgstr "导出DXF"
-
-#: appMain.py:10207
-msgid ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-msgstr ""
-"有在FlatCAM中打开的文件/对象。\n"
-"创建新项目将删除它们。\n"
-"是否要保存该项目?"
-
-#: appMain.py:10338
-msgid "Save preferences"
-msgstr "保存首选项"
-
-#: appMain.py:10339
-#, fuzzy
-#| msgid "Do you want to save the current settings/preferences?"
-msgid ""
-"Do you want to save the loaded project settings as the default settings?"
-msgstr "您想保存当前的设置/首选项吗?"
-
-#: appMain.py:10363
-msgid "Project created in"
-msgstr "项目创建于"
-
-#: appMain.py:10363
-msgid "seconds"
-msgstr "秒"
-
-#: appMain.py:10366
-msgid "New Project created"
-msgstr "创建新项目"
-
-#: appMain.py:10394
-msgid "New TCL script file created in Code Editor."
-msgstr "在代码编辑器中创建的新TCL脚本文件。"
-
-#: appMain.py:10421 appMain.py:10423 appMain.py:10458 appMain.py:10460
-msgid "Open TCL script"
-msgstr "打开TCL脚本"
-
-#: appMain.py:10487
-msgid "Executing ScriptObject file."
-msgstr "正在执行脚本对象文件。"
-
-#: appMain.py:10495 appMain.py:10499
-msgid "Run TCL script"
-msgstr "运行TCL脚本"
-
-#: appMain.py:10522
-msgid "TCL script file opened in Code Editor and executed."
-msgstr "TCL脚本文件在代码编辑器中打开并执行。"
-
-#: appMain.py:10570 appMain.py:10577
-msgid "Save Project As ..."
-msgstr "将项目另存为。。。"
-
-#: appMain.py:10614
-msgid "FlatCAM objects print"
-msgstr "FlatCAM对象打印"
-
-#: appMain.py:10627 appMain.py:10635
-msgid "Save Object as PDF ..."
-msgstr "将对象另存为PDF。。。"
-
-#: appMain.py:10645
-msgid "Printing PDF ..."
-msgstr "正在打印PDF。。。"
-
-#: appMain.py:10826
-msgid "PDF file saved to"
-msgstr "PDF文件保存到"
-
-#: appMain.py:10848 appMain.py:11108 appMain.py:11242 appMain.py:11309
-msgid "Exporting ..."
-msgstr "导出中。。。"
-
-#: appMain.py:10891
-msgid "SVG file exported to"
-msgstr "SVG文件导出到"
-
-#: appMain.py:10906 appMain.py:10910
-msgid "Import FlatCAM Preferences"
-msgstr "导入FlatCAM首选项"
-
-#: appMain.py:10921
-msgid "Imported Defaults from"
-msgstr "导入默认值自"
-
-#: appMain.py:10940 appMain.py:10946
-msgid "Export FlatCAM Preferences"
-msgstr "导出FlatCAM首选项"
-
-#: appMain.py:10966
-msgid "Exported preferences to"
-msgstr "将首选项导出到"
-
-#: appMain.py:11099
-msgid "Excellon file exported to"
-msgstr "Excellon文件导出到"
-
-#: appMain.py:11113 appMain.py:11120 appMain.py:11247 appMain.py:11254
-#: appMain.py:11314 appMain.py:11321
-msgid "Could not export."
-msgstr "无法导出。"
-
-#: appMain.py:11234
-msgid "Gerber file exported to"
-msgstr "Gerber文件导出到"
-
-#: appMain.py:11300
-msgid "DXF file exported to"
-msgstr "DXF文件导出到"
-
-#: appMain.py:11376 appMain.py:11433
-msgid "Import failed."
-msgstr "导入失败。"
-
-#: appMain.py:11467 appMain.py:11674 appMain.py:11739
-msgid "Failed to open file"
-msgstr "无法打开文件"
-
-#: appMain.py:11470 appMain.py:11677 appMain.py:11742
-msgid "Failed to parse file"
-msgstr "无法分析文件"
-
-#: appMain.py:11482
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr "对象不是Gerber文件或为空。正在中止对象创建。"
-
-#: appMain.py:11493 appMain.py:11563 appMain.py:11627 appMain.py:11701
-#: appMain.py:11757 appMain.py:11932 tclCommands/TclCommandOpenDXF.py:90
-msgid "Opening"
-msgstr "打开中"
-
-#: appMain.py:11504
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr "打开Gerber失败。可能不是Gerber文件。"
-
-#: appMain.py:11542
-msgid "Cannot open file"
-msgstr "无法打开文件"
-
-#: appMain.py:11573
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr "打开Excellon文件失败。可能不是Excellon文件。"
-
-#: appMain.py:11609
-msgid "Reading GCode file"
-msgstr "读取G代码文件"
-
-#: appMain.py:11622
-msgid "This is not GCODE"
-msgstr "没有G代码"
-
-#: appMain.py:11640
-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 ""
-"无法创建CNC任务对象。可能不是G代码文件。尝试从“文件”菜单加载它。\n"
-"在处理过程中,尝试从G代码文件创建FlatCAM CNC任务对象失败"
-
-#: appMain.py:11696
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr "对象不是HPGL2文件或为空。正在中止对象创建。"
-
-#: appMain.py:11708
-msgid "Failed. Probable not a HPGL2 file."
-msgstr "失败。可能不是HPGL2文件。"
-
-#: appMain.py:11734
-msgid "TCL script file opened in Code Editor."
-msgstr "TCL脚本文件在代码编辑器中打开。"
-
-#: appMain.py:11768
-msgid "Failed to open TCL Script."
-msgstr "无法打开TCL脚本。"
-
-#: appMain.py:11791
-msgid "Opening FlatCAM Config file."
-msgstr "正在打开FlatCAM配置文件。"
-
-#: appMain.py:11818
-msgid "Failed to open config file"
-msgstr "无法打开配置文件"
-
-#: appMain.py:11850
-msgid "Loading Project ... Please Wait ..."
-msgstr "正在加载项目。。。请稍候。。。"
-
-#: appMain.py:11856
-msgid "Opening FlatCAM Project file."
-msgstr "正在打开FlatCAM项目文件。"
-
-#: appMain.py:11871 appMain.py:11875 appMain.py:11893
-msgid "Failed to open project file"
-msgstr "无法打开项目文件"
-
-#: appMain.py:11966
-msgid "Loading Project ... restoring"
-msgstr "正在加载项目。。。恢复中"
-
-#: appMain.py:11972
-msgid "Project loaded from"
-msgstr "加载项目自"
-
-#: appMain.py:12004
-msgid "Saving Project ..."
-msgstr "正在保存项目。。。"
-
-#: appMain.py:12048 appMain.py:12104
-msgid "Project saved to"
-msgstr "项目保存到"
-
-#: appMain.py:12059
-msgid "The object is used by another application."
-msgstr "另一个应用程序正在使用该对象。"
-
-#: appMain.py:12079
-msgid "Failed to verify project file"
-msgstr "无法验证项目文件"
-
-#: appMain.py:12079 appMain.py:12088 appMain.py:12096 appMain.py:12109
-msgid "Retry to save it."
-msgstr "请重试以保存它。"
-
-#: appMain.py:12086 appMain.py:12094 appMain.py:12107
-msgid "Failed to parse saved project file"
-msgstr "无法分析已保存的项目文件"
-
-#: appMain.py:12144
-msgid "Save cancelled because source file is empty. Try to export the file."
-msgstr "由于源文件为空,已取消保存。尝试导出该文件。"
-
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr "FlatCAM Beta"
@@ -18707,43 +19113,43 @@ msgstr "FlatCAM Beta"
msgid "G-Code from GERBERS"
msgstr "来自GERBERS的G代码"
-#: camlib.py:711
+#: camlib.py:710
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr "self.solid_geometry既不是基本的Geometry,也不是列表。"
-#: camlib.py:1154
+#: camlib.py:1153
msgid "Pass"
msgstr "通过"
-#: camlib.py:1176
+#: camlib.py:1175
msgid "Get Exteriors"
msgstr "获取外部"
-#: camlib.py:1179
+#: camlib.py:1178
msgid "Get Interiors"
msgstr "获取内部"
-#: camlib.py:2535
+#: camlib.py:2534
msgid "Object was rotated"
msgstr "对象已旋转"
-#: camlib.py:2603
+#: camlib.py:2602
msgid "Object was skewed"
msgstr "对象已倾斜"
-#: camlib.py:2674
+#: camlib.py:2673
msgid "Object was buffered"
msgstr "对象已缓冲"
-#: camlib.py:2937
+#: camlib.py:2936
msgid "There is no such parameter"
msgstr "没有这样的参数"
-#: camlib.py:3152 camlib.py:3196 camlib.py:5658 camlib.py:6087
+#: camlib.py:3153 camlib.py:3197 camlib.py:5666 camlib.py:6095
msgid "Indexing geometry before generating G-Code..."
msgstr "在生成G代码之前索引几何体。。。"
-#: camlib.py:3229 camlib.py:4332 camlib.py:4591
+#: camlib.py:3230 camlib.py:4340 camlib.py:4599
msgid ""
"The Cut Z parameter has positive value. It is the depth value to drill into "
"material.\n"
@@ -18755,35 +19161,35 @@ msgstr ""
"切削Z参数需要有一个负值,假设它是一个打字错误,因此应用程序会将该值转换为负"
"值。检查生成的CNC代码(G代码等)。"
-#: camlib.py:3236
+#: camlib.py:3237
msgid "The Cut Z parameter is zero. There will be no cut, aborting"
msgstr "切削Z参数为零。不会有切削,中止"
-#: camlib.py:3386 camlib.py:3824
+#: camlib.py:3387 camlib.py:3828
msgid "The End X,Y format has to be (x, y)."
msgstr "结束X,Y格式必须是(X,Y)。"
-#: camlib.py:3471 camlib.py:3918 camlib.py:4427 camlib.py:4678 camlib.py:5732
-#: camlib.py:6169
+#: camlib.py:3472 camlib.py:3922 camlib.py:4435 camlib.py:4686 camlib.py:5740
+#: camlib.py:6177
msgid "Starting G-Code for tool with diameter"
msgstr "带刀具直径的起始 G 代码"
-#: camlib.py:3598 camlib.py:4554 camlib.py:4801 camlib.py:7143 camlib.py:7420
-#: camlib.py:7569
+#: camlib.py:3599 camlib.py:4562 camlib.py:4809 camlib.py:7161 camlib.py:7438
+#: camlib.py:7587
msgid "G91 coordinates not implemented"
msgstr "G91坐标未执行"
-#: camlib.py:3607
+#: camlib.py:3608
msgid "Finished G-Code generation for tool:"
msgstr "已完成刀具的G代码生成:"
-#: camlib.py:3732 camlib.py:5605 camlib.py:6027
+#: camlib.py:3733 camlib.py:5613 camlib.py:6035
msgid ""
"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
"parameters."
msgstr "切削Z参数为无或零。很可能是其他参数的错误组合。"
-#: camlib.py:3740 camlib.py:5613 camlib.py:6036
+#: camlib.py:3741 camlib.py:5621 camlib.py:6044
msgid ""
"The Cut Z parameter has positive value. It is the depth value to cut into "
"material.\n"
@@ -18795,15 +19201,15 @@ msgstr ""
"切削Z参数需要有一个负值,假设它是一个打字错误,因此应用程序会将该值转换为负"
"值。检查生成的CNC代码(G代码等)。"
-#: camlib.py:3748 camlib.py:4342 camlib.py:4601 camlib.py:5621 camlib.py:6044
+#: camlib.py:3749 camlib.py:4350 camlib.py:4609 camlib.py:5629 camlib.py:6052
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr "切削Z参数为零。将不会切削,跳过文件"
-#: camlib.py:3753 camlib.py:5626 camlib.py:6050
+#: camlib.py:3754 camlib.py:5634 camlib.py:6058
msgid "Travel Z parameter is None or zero."
msgstr "移动Z参数为空或零。"
-#: camlib.py:3758 camlib.py:5631 camlib.py:6056
+#: camlib.py:3759 camlib.py:5639 camlib.py:6064
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel "
"between cuts.\n"
@@ -18815,19 +19221,19 @@ msgstr ""
"移动Z参数需要有一个正值,假设它输入错误,那么应用程序会将该值转换为正值。检查"
"生成的CNC代码(G代码等)。"
-#: camlib.py:3766 camlib.py:5639 camlib.py:6064
+#: camlib.py:3767 camlib.py:5647 camlib.py:6072
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr "移动Z参数为零。这很危险,正在跳过文件"
-#: camlib.py:4039 camlib.py:5474 camlib.py:5805 camlib.py:6250
+#: camlib.py:4047 camlib.py:5482 camlib.py:5813 camlib.py:6258
msgid "Finished G-Code generation"
msgstr "已完成G代码生成"
-#: camlib.py:4039 camlib.py:5805 camlib.py:6250 camlib.py:6371
+#: camlib.py:4047 camlib.py:5813 camlib.py:6258 camlib.py:6381
msgid "paths traced"
msgstr "路径已连接"
-#: camlib.py:4098
+#: camlib.py:4106
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -18836,7 +19242,7 @@ msgstr ""
"编辑->首选项中的“工具更改X,Y”字段必须采用(X,Y)格式,但现在只有一个值,而不"
"是两个值。 "
-#: camlib.py:4110 camlib.py:5568 camlib.py:5992
+#: camlib.py:4118 camlib.py:5576 camlib.py:6000
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
"but now there is only one value, not two."
@@ -18844,11 +19250,11 @@ msgstr ""
"编辑->首选项中的“结束移动X,Y”字段必须采用(X,Y)格式,但现在只有一个值,而不"
"是两个值。"
-#: camlib.py:4230
+#: camlib.py:4238
msgid "Failed. Drill points inside the exclusion zones."
msgstr "失败。在禁区内钻孔。"
-#: camlib.py:5591
+#: camlib.py:5599
msgid ""
"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
"y) \n"
@@ -18857,12 +19263,12 @@ msgstr ""
"编辑->首选项中的“工具更改X,Y”字段必须采用(X,Y)格式,但现在只有一个值,而不"
"是两个值。"
-#: camlib.py:5860
+#: camlib.py:5868
msgid ""
"Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr "尝试从没有实体几何体的Geometry对象生成CNC任务。"
-#: camlib.py:5911
+#: camlib.py:5919
msgid ""
"The Tool Offset value is too negative to use for the current_geometry.\n"
"Raise the value (in module) and try again."
@@ -18870,39 +19276,39 @@ msgstr ""
"刀具偏移值太小,无法用于当前几何图形。\n"
"提高该值(在模块中),然后重试。"
-#: camlib.py:6281
+#: camlib.py:6289
msgid "There is no tool data in the SolderPaste geometry."
msgstr "锡膏几何图形中没有刀具数据。"
-#: camlib.py:6371
+#: camlib.py:6381
msgid "Finished SolderPaste G-Code generation"
msgstr "完成锡膏G代码生成"
-#: camlib.py:6720
+#: camlib.py:6733
msgid "Parsing GCode file. Number of lines"
msgstr "正在解析G代码文件。行数"
-#: camlib.py:6832
+#: camlib.py:6845
msgid "Creating Geometry from the parsed GCode file. "
msgstr "从解析的G代码文件创建Geometry。 "
-#: camlib.py:6889
+#: camlib.py:6902
msgid "Parsing GCode file for tool diameter"
msgstr "解析刀具直径的G代码文件"
-#: camlib.py:6890
+#: camlib.py:6903
msgid "Number of lines"
msgstr "行数"
-#: camlib.py:6979
+#: camlib.py:6992
msgid "Creating Geometry from the parsed GCode file for tool diameter"
msgstr "从解析的G代码文件创建刀具直径的Geometry"
-#: camlib.py:7738
+#: camlib.py:7756
msgid "G91 coordinates not implemented ..."
msgstr "G91坐标未执行。。。"
-#: defaults.py:949 defaults.py:1120
+#: defaults.py:954 defaults.py:1125
msgid "Failed to parse defaults file."
msgstr "无法解析默认文件。"
@@ -18946,10 +19352,18 @@ msgid ""
msgstr "缺少为其执行剪切的对象的名称。添加它并重试。"
#: tclCommands/TclCommandGeoCutout.py:186
-msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
-msgstr "间隙值只能是“无”、“lr”、“tb”、“2lr”、“2tb”、4或8。"
+#, fuzzy
+#| msgid ""
+#| "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8.\n"
+#| "Fill in a correct value and retry."
+msgid ""
+"Gaps value can be only one of: 'none', 'lr', 'tb', '2lr', '2tb', 4 or 8.\n"
+"Fill in a correct value and retry."
+msgstr ""
+"间隙值只能是“无”、“lr”、“tb”、“2lr”、“2tb”、4或8中的一个。\n"
+"请填写正确的值,然后重试。"
-#: tclCommands/TclCommandGeoCutout.py:217
+#: tclCommands/TclCommandGeoCutout.py:218
msgid "Cancelled. Object type is not supported."
msgstr "取消。不支持对象类型。"
@@ -19000,6 +19414,430 @@ msgstr "通过使用偏移所有加载的对象来设置原点 "
msgid "No Geometry name in args. Provide a name and try again."
msgstr "参数中没有Geometry名称。请提供名称,然后重试。"
+#~ msgid "Click on the Drill Circular Array Start position"
+#~ msgstr "单击钻孔圆形阵列的起始位置"
+
+#~ msgid "The value is mistyped. Check the value"
+#~ msgstr "该值输入错误。检查值"
+
+#~ msgid "Value is missing or wrong format. Add it and retry."
+#~ msgstr "值丢失或格式错误。添加它并重试。"
+
+#~ msgid "Click on the Slot Circular Array Start position"
+#~ msgstr "单击槽圆形阵列的开始位置"
+
+#~ msgid "Resize Tool"
+#~ msgstr "调整刀具大小"
+
+#~ msgid "Resize Dia"
+#~ msgstr "调整直径"
+
+#~ msgid "Resize drill(s)"
+#~ msgstr "调整钻孔大小"
+
+#~ msgid "Add an array of drills (linear or circular array)"
+#~ msgstr "添加钻孔阵列(线性或圆形阵列)"
+
+#~ msgid ""
+#~ "Select the type of drills array to create.\n"
+#~ "It can be Linear X(Y) or Circular"
+#~ msgstr ""
+#~ "选择要创建的阵列的类型。\n"
+#~ "它可以是线性X(Y)或圆形"
+
+#~ msgid "Number"
+#~ msgstr "数量"
+
+#~ msgid "Slot Parameters"
+#~ msgstr "槽参数"
+
+#~ msgid "Parameters for the array of slots (linear or circular array)"
+#~ msgstr "槽阵列的参数(线性或圆形阵列)"
+
+#~ msgid "Resize Drill(S)"
+#~ msgstr "调整通孔大小"
+
+#~ msgid "Move Drill"
+#~ msgstr "移动通孔"
+
+#~ msgid "Copy Drill"
+#~ msgstr "复制钻孔"
+
+#~ msgid "Delete Drill"
+#~ msgstr "删除钻孔"
+
+#~ msgid "Calculate the current intensity value and the procedure time."
+#~ msgstr "计算当前强度值和过程时间。"
+
+#~ msgid "Image type"
+#~ msgstr "图像类型"
+
+#~ msgid "SP Dispenser"
+#~ msgstr "锡膏分配器"
+
+#~ msgid "Buffer Selection"
+#~ msgstr "缓冲区选择"
+
+#~ msgid "Text Input Tool"
+#~ msgstr "文本输入工具"
+
+#~ msgid "Transform Tool"
+#~ msgstr "迁移刀具"
+
+#~ msgid "Mirror (Flip)"
+#~ msgstr "镜像(翻转)"
+
+#~ msgid "Ring"
+#~ msgstr "环型"
+
+#~ msgid "Log"
+#~ msgstr "日志"
+
+#~ msgid "Delete Shape"
+#~ msgstr "删除形状"
+
+#~ msgid "Use Gray Icons"
+#~ msgstr "使用灰色图标"
+
+#~ msgid ""
+#~ "Check this box to use a set of icons with\n"
+#~ "a lighter (gray) color. To be used when a\n"
+#~ "full dark theme is applied."
+#~ msgstr ""
+#~ "选中此框以使用一组较浅(灰色)颜色的图标。当应用完整的黑色主题时使用。"
+
+#~ msgid "Project Items Color"
+#~ msgstr "项目项的颜色"
+
+#~ msgid "Calibration Plugin"
+#~ msgstr "校准插件"
+
+#~ msgid "Source Type"
+#~ msgstr "源类型"
+
+#~ msgid ""
+#~ "The source of calibration points.\n"
+#~ "It can be:\n"
+#~ "- Object -> click a hole geo for Excellon or a pad for Gerber\n"
+#~ "- Free -> click freely on canvas to acquire the calibration points"
+#~ msgstr ""
+#~ "校准点的来源。\n"
+#~ "它可以是:\n"
+#~ "-对象->单击Excellon的孔或Gerber的焊盘\n"
+#~ "-自由->在画布上自由单击以获取校准点"
+
+#~ msgid "Free"
+#~ msgstr "自由"
+
+#~ msgid "Height (Z) for travelling between the points."
+#~ msgstr "点之间移动的高度(Z)。"
+
+#~ msgid "Verification Z"
+#~ msgstr "验证Z"
+
+#~ msgid "Height (Z) for checking the point."
+#~ msgstr "检查点的高度(Z)。"
+
+#~ msgid "Zero Z tool"
+#~ msgstr "刀具Z清零"
+
+#~ msgid ""
+#~ "Include a sequence to zero the height (Z)\n"
+#~ "of the verification tool."
+#~ msgstr "包括将验证刀具高度(Z)归零的序列。"
+
+#~ msgid "Second point"
+#~ msgstr "第二点"
+
+#~ 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 ""
+#~ "G代码验证中的第二点可以是:\n"
+#~ "-左上->用户将垂直对齐PCB\n"
+#~ "-右下->用户将水平对齐PCB"
+
+#~ 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"
+#~ "如果未输入任何值,则将使用当前(x,y)点,"
+
+#~ msgid "Height (Z) for mounting the verification probe."
+#~ msgstr "安装验证探针的高度(Z)。"
+
+#~ msgid "Number of rows of the desired panel"
+#~ msgstr "所需拼板的行数"
+
+#~ msgid "This CNCJob object can't be processed because it is a"
+#~ msgstr "无法处理此CNC任务对象,因为它是"
+
+#~ msgid "CNCJob object"
+#~ msgstr "CNC任务对象"
+
+#~ msgid "Calibration"
+#~ msgstr "校准"
+
+#~ msgid "Tool initialized"
+#~ msgstr "工具已初始化"
+
+#~ msgid "There is no source FlatCAM object selected..."
+#~ msgstr "没有选择源FlatCAM对象。。。"
+
+#~ msgid "Get First calibration point. Bottom Left..."
+#~ msgstr "获取第一个校准点。左下角。。。"
+
+#~ msgid "Get Second calibration point. Bottom Right (Top Left)..."
+#~ msgstr "获取第二个校准点。右下(左上)。。。"
+
+#~ msgid "Get Third calibration point. Top Left (Bottom Right)..."
+#~ msgstr "获取第三个校准点。左上(右下)。。。"
+
+#~ msgid "Get Forth calibration point. Top Right..."
+#~ msgstr "获取第四个校准点。右上角。。。"
+
+#~ msgid "Verification GCode for FlatCAM Calibration Tool"
+#~ msgstr "FlatCAM校准工具的验证G代码"
+
+#~ msgid "Gcode Viewer"
+#~ msgstr "G代码预览"
+
+#~ msgid "Cancelled. Four points are needed for GCode generation."
+#~ msgstr "取消。生成G代码需要四个点。"
+
+#~ msgid "Parameters used when creating the GCode in this tool."
+#~ msgstr "使用此刀具创建G代码时使用的参数。"
+
+#~ msgid "STEP 1: Acquire Calibration Points"
+#~ msgstr "步骤1:获取校准点"
+
+#~ msgid ""
+#~ "Pick four points by clicking on canvas.\n"
+#~ "Those four points should be in the four\n"
+#~ "(as much as possible) corners of the object."
+#~ msgstr ""
+#~ "通过单击画布选择四个点。\n"
+#~ "这四个点应该位于对象的四个角(尽可能多)。"
+
+#~ msgid "Source object selection"
+#~ msgstr "源对象选择"
+
+#~ msgid "FlatCAM Object to be used as a source for reference points."
+#~ msgstr "用作参考点源的FlatCAM对象。"
+
+#~ msgid "Calibration Points"
+#~ msgstr "校准点"
+
+#~ msgid ""
+#~ "Contain the expected calibration points and the\n"
+#~ "ones measured."
+#~ msgstr "包含预期校准点和测量点。"
+
+#~ msgid "Bot Left X"
+#~ msgstr "左下角X"
+
+#~ msgid "Bot Left Y"
+#~ msgstr "左下角Y"
+
+#~ msgid "Bot Right X"
+#~ msgstr "右下角X"
+
+#~ msgid "Bot Right Y"
+#~ msgstr "右下角Y"
+
+#~ msgid "Top Left X"
+#~ msgstr "左上角X"
+
+#~ msgid "Top Left Y"
+#~ msgstr "左上角Y"
+
+#~ msgid "Top Right X"
+#~ msgstr "右上角X"
+
+#~ msgid "Top Right Y"
+#~ msgstr "右上角Y"
+
+#~ msgid "Get Points"
+#~ msgstr "获取点"
+
+#~ msgid ""
+#~ "Pick four points by clicking on canvas if the source choice\n"
+#~ "is 'free' or inside the object geometry if the source is 'object'.\n"
+#~ "Those four points should be in the four squares of\n"
+#~ "the object."
+#~ msgstr ""
+#~ "如果源选择为“自由”,则通过单击画布拾取四个点;如果源选择为“对象”,则在对象"
+#~ "几何体内部拾取四个点。\n"
+#~ "这四个点应该在对象的四个正方形中。"
+
+#~ msgid "STEP 2: Verification GCode"
+#~ msgstr "步骤2:验证G代码"
+
+#~ msgid ""
+#~ "Generate GCode file to locate and align the PCB by using\n"
+#~ "the four points acquired above.\n"
+#~ "The points sequence is:\n"
+#~ "- first point -> set the origin\n"
+#~ "- second point -> alignment point. Can be: top-left or bottom-right.\n"
+#~ "- third point -> check point. Can be: top-left or bottom-right.\n"
+#~ "- forth point -> final verification point. Just for evaluation."
+#~ msgstr ""
+#~ "生成G代码文件,以便使用\n"
+#~ "上述四点。\n"
+#~ "点序列为:\n"
+#~ "-第一点->设置原点\n"
+#~ "-第二点->对齐点。可以是:左上角或右下角。\n"
+#~ "-第三点->检查点。可以是:左上角或右下角。\n"
+#~ "-第四点->最终验证点。只是为了评估。"
+
+#~ msgid "Generate GCode"
+#~ msgstr "生成G代码"
+
+#~ msgid "STEP 3: Adjustments"
+#~ msgstr "步骤3:调整"
+
+#~ 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 ""
+#~ "根据检查PCB图案时发现的差异(增量)计算比例和倾斜系数。必须填补这些差异\n"
+#~ "在找到的字段中(增量)。"
+
+#~ msgid "Calculate Factors"
+#~ msgstr "计算系数"
+
+#~ msgid "STEP 4: Adjusted GCode"
+#~ msgstr "步骤4:调整G代码"
+
+#~ msgid ""
+#~ "Generate verification GCode file adjusted with\n"
+#~ "the factors above."
+#~ msgstr "生成根据上述因素调整的验证G代码文件。"
+
+#~ msgid "Scale Factor X:"
+#~ msgstr "缩放系数X:"
+
+#~ msgid "Factor for Scale action over X axis."
+#~ msgstr "X轴上的缩放系数。"
+
+#~ msgid "Scale Factor Y:"
+#~ msgstr "缩放系数Y:"
+
+#~ msgid "Factor for Scale action over Y axis."
+#~ msgstr "Y轴上的缩放系数。"
+
+#~ msgid "Apply Scale Factors"
+#~ msgstr "应用缩放系数"
+
+#~ msgid "Apply Scale factors on the calibration points."
+#~ msgstr "在校准点上应用缩放系数。"
+
+#~ msgid "Skew Angle X:"
+#~ msgstr "X角度:"
+
+#~ msgid "Skew Angle Y:"
+#~ msgstr "Y角度:"
+
+#~ msgid "Apply Skew Factors"
+#~ msgstr "应用倾斜系数"
+
+#~ msgid "Apply Skew factors on the calibration points."
+#~ msgstr "在校准点上应用倾斜系数。"
+
+#~ msgid "Generate Adjusted GCode"
+#~ msgstr "生成调整后的G代码"
+
+#~ 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 ""
+#~ "生成验证G代码文件,并使用上述设置的系数进行调整。\n"
+#~ "单击此按钮之前,可以重新调整G代码参数。"
+
+#~ msgid "STEP 5: Calibrate FlatCAM Objects"
+#~ msgstr "步骤5:校准FlatCAM对象"
+
+#~ msgid ""
+#~ "Adjust the FlatCAM objects\n"
+#~ "with the factors determined and verified above."
+#~ msgstr "调整FlatCAM对象,并确定并验证上述因素。"
+
+#~ msgid "Adjusted object type"
+#~ msgstr "调整对象类型"
+
+#~ msgid "Type of the Application Object to be adjusted."
+#~ msgstr "要调整的应用程序对象的类型。"
+
+#~ msgid "Adjusted object selection"
+#~ msgstr "调整对象选择"
+
+#~ msgid "The Application Object to be adjusted."
+#~ msgstr "要调整的应用程序对象。"
+
+#~ msgid "Calibrate"
+#~ msgstr "校准"
+
+#~ msgid ""
+#~ "Adjust (scale and/or skew) the objects\n"
+#~ "with the factors determined above."
+#~ msgstr "使用上述确定的因子调整(缩放和/或倾斜)对象。"
+
+#~ msgid "Tool(s) deleted from Tool Table."
+#~ msgstr "从刀具表中删除刀具。"
+
+#~ msgid "Generating drills milling geometry..."
+#~ msgstr "正在生成打孔几何体。。。"
+
+#~ msgid "Generating slot milling geometry..."
+#~ msgstr "正在生成槽几何体。。。"
+
+#~ msgid "Punch Geber"
+#~ msgstr "打孔Gerber"
+
+#~ msgid "New Nozzle tool added to Tool Table."
+#~ msgstr "新的喷嘴工具添加到刀具表中。"
+
+#~ msgid "Nozzle tool from Tool Table was edited."
+#~ msgstr "编辑了刀具表中的喷嘴工具。"
+
+#~ msgid "No SolderPaste mask Gerber object loaded."
+#~ msgstr "未加载锡膏防护层Gerber对象。"
+
+#~ msgid "No Nozzle tools in the tool table."
+#~ msgstr "刀具表中没有喷嘴工具。"
+
+#~ msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
+#~ msgstr "无法处理此Geometry。不是锡膏工具几何图形。"
+
+#~ msgid "ToolSolderPaste CNCjob created"
+#~ msgstr "已创建锡膏工具CNC任务"
+
+#~ msgid ""
+#~ "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob "
+#~ "object."
+#~ msgstr "无法处理此CNC任务对象。不是锡膏工具CNC任务对象。"
+
+#~ msgid "Solder paste dispenser GCode file saved to"
+#~ msgstr "锡膏分配器G代码文件保存到"
+
+#~ msgid "Object Transform"
+#~ msgstr "对象变换"
+
+#~ msgid "Save preferences"
+#~ msgstr "保存首选项"
+
+#~ msgid "FlatCAM objects print"
+#~ msgstr "FlatCAM对象打印"
+
+#~ msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
+#~ msgstr "间隙值只能是“无”、“lr”、“tb”、“2lr”、“2tb”、4或8。"
+
#~ msgid "Shell enabled."
#~ msgstr "控制台已启用。"
@@ -19167,9 +20005,6 @@ msgstr "参数中没有Geometry名称。请提供名称,然后重试。"
#~ msgid "Min value"
#~ msgstr "最小值"
-#~ msgid "Corners"
-#~ msgstr "拐角"
-
#~ msgid "info"
#~ msgstr "信息"
@@ -19912,9 +20747,6 @@ msgstr "参数中没有Geometry名称。请提供名称,然后重试。"
#~ msgid "No Gcode in the object"
#~ msgstr "对象中没有G代码"
-#~ msgid "Solder Paste Tool"
-#~ msgstr "锡膏工具"
-
#~ msgid "New Nozzle Tool"
#~ msgstr "新的喷嘴工具"
diff --git a/locale_template/strings.pot b/locale_template/strings.pot
index c9b4bf2d..f0f36862 100644
--- a/locale_template/strings.pot
+++ b/locale_template/strings.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2022-03-19 17:59+0200\n"
+"POT-Creation-Date: 2022-04-30 18:39+0300\n"
"PO-Revision-Date: 2019-03-25 15:08+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -85,7 +85,7 @@ msgstr ""
msgid "Bookmark added."
msgstr ""
-#: Bookmark.py:245 appMain.py:3889 appMain.py:3931
+#: Bookmark.py:245 appMain.py:3906 appMain.py:3948
msgid "Backup Site"
msgstr ""
@@ -101,45 +101,51 @@ msgstr ""
msgid "Export Bookmarks"
msgstr ""
-#: Bookmark.py:295 appGUI/MainGUI.py:617
+#: Bookmark.py:295 appGUI/MainGUI.py:656
msgid "Bookmarks"
msgstr ""
#: Bookmark.py:302 Bookmark.py:344 appDatabase.py:2136 appDatabase.py:2182
-#: appEditors/AppExcEditor.py:1417 appEditors/AppExcEditor.py:1485
-#: appEditors/AppGeoEditor.py:680 appEditors/AppGeoEditor.py:1194
-#: appEditors/AppGeoEditor.py:3120 appEditors/AppGeoEditor.py:3146
-#: appEditors/AppGeoEditor.py:3172 appEditors/AppGeoEditor.py:5046
-#: appEditors/AppGerberEditor.py:5032 appEditors/AppGerberEditor.py:7256
-#: appEditors/AppTextEditor.py:265 appGUI/MainGUI.py:3493 appGUI/MainGUI.py:3722
-#: appGUI/MainGUI.py:3952 appGUI/MainGUI.py:4179 appObjects/ObjectCollection.py:132
-#: appPlugins/ToolCutOut.py:2063 appPlugins/ToolDistance.py:369 appPlugins/ToolFilm.py:427
-#: appPlugins/ToolFilm.py:570 appPlugins/ToolImage.py:155 appPlugins/ToolLevelling.py:1591
-#: appPlugins/ToolMarkers.py:735 appPlugins/ToolMarkers.py:844 appPlugins/ToolMove.py:284
-#: appPlugins/ToolPcbWizard.py:224 appPlugins/ToolPcbWizard.py:247
-#: appPlugins/ToolQRCode.py:616 appPlugins/ToolQRCode.py:665
-#: appPlugins/ToolSolderPaste.py:888 appMain.py:1722 appMain.py:3102 appMain.py:5039
-#: appMain.py:5455 appMain.py:9553 appMain.py:9591 appMain.py:9634 appMain.py:9659
-#: appMain.py:9698 appMain.py:9722 appMain.py:9773 appMain.py:9811 appMain.py:9857
-#: appMain.py:9899 appMain.py:9941 appMain.py:9982 appMain.py:10024 appMain.py:10069
-#: appMain.py:10127 appMain.py:10159 appMain.py:10189 appMain.py:10427 appMain.py:10464
-#: appMain.py:10507 appMain.py:10583 appMain.py:10641 appMain.py:10914 appMain.py:10949
+#: appEditors/AppExcEditor.py:2073 appEditors/AppExcEditor.py:2141
+#: appEditors/AppExcEditor.py:2163 appEditors/AppGeoEditor.py:2737
+#: appEditors/AppGeoEditor.py:2763 appEditors/AppGeoEditor.py:2789
+#: appEditors/AppGeoEditor.py:4661 appEditors/AppGerberEditor.py:5040
+#: appEditors/AppGerberEditor.py:7264 appEditors/AppTextEditor.py:279
+#: appEditors/geo_plugins/GeoPaintPlugin.py:103
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:130 appGUI/MainGUI.py:3567
+#: appGUI/MainGUI.py:3799 appGUI/MainGUI.py:4032 appGUI/MainGUI.py:4293 appMain.py:1732
+#: appMain.py:3105 appMain.py:5052 appMain.py:5472 appMain.py:9582 appMain.py:9620
+#: appMain.py:9663 appMain.py:9688 appMain.py:9727 appMain.py:9751 appMain.py:9802
+#: appMain.py:9840 appMain.py:9886 appMain.py:9928 appMain.py:9970 appMain.py:10011
+#: appMain.py:10053 appMain.py:10098 appMain.py:10156 appMain.py:10188 appMain.py:10218
+#: appMain.py:10440 appMain.py:10477 appMain.py:10520 appMain.py:10596 appMain.py:10655
+#: appMain.py:10936 appMain.py:10971 appObjects/ObjectCollection.py:155
+#: appPlugins/ToolCutOut.py:2045 appPlugins/ToolDistance.py:618 appPlugins/ToolFilm.py:411
+#: appPlugins/ToolFilm.py:561 appPlugins/ToolImage.py:180 appPlugins/ToolImage.py:206
+#: appPlugins/ToolLevelling.py:1572 appPlugins/ToolMarkers.py:802
+#: appPlugins/ToolMarkers.py:911 appPlugins/ToolMove.py:277 appPlugins/ToolNCC.py:1192
+#: appPlugins/ToolNCC.py:1271 appPlugins/ToolNCC.py:1329 appPlugins/ToolNCC.py:3965
+#: appPlugins/ToolPaint.py:837 appPlugins/ToolPaint.py:923 appPlugins/ToolPaint.py:983
+#: appPlugins/ToolPaint.py:2848 appPlugins/ToolPcbWizard.py:213
+#: appPlugins/ToolPcbWizard.py:236 appPlugins/ToolQRCode.py:604 appPlugins/ToolQRCode.py:653
+#: appPlugins/ToolSolderPaste.py:584 appPlugins/ToolSolderPaste.py:922
+#: appPlugins/ToolSolderPaste.py:978
msgid "Cancelled."
msgstr ""
-#: Bookmark.py:310 appDatabase.py:2144 appEditors/AppTextEditor.py:320
-#: appObjects/FlatCAMCNCJob.py:752 appObjects/FlatCAMCNCJob.py:1179
-#: appPlugins/ToolFilm.py:982 appPlugins/ToolLevelling.py:1513
-#: appPlugins/ToolLevelling.py:1705 appPlugins/ToolSolderPaste.py:1179 appMain.py:3110
-#: appMain.py:10884 appMain.py:11092 appMain.py:11227 appMain.py:11293 appMain.py:12160
+#: Bookmark.py:310 appDatabase.py:2144 appEditors/AppTextEditor.py:334 appMain.py:3113
+#: appMain.py:10906 appMain.py:11114 appMain.py:11249 appMain.py:11315 appMain.py:12371
+#: appObjects/CNCJobObject.py:762 appObjects/CNCJobObject.py:1184 appPlugins/ToolFilm.py:973
+#: appPlugins/ToolLevelling.py:1494 appPlugins/ToolLevelling.py:1686
+#: appPlugins/ToolSolderPaste.py:1212
msgid ""
"Permission denied, saving not possible.\n"
"Most likely another app is holding the file open and not accessible."
msgstr ""
#: Bookmark.py:321 Bookmark.py:351 appDatabase.py:1735 appDatabase.py:2155
-#: appDatabase.py:2189 appPlugins/ToolNCC.py:1221 appPlugins/ToolPaint.py:867
-#: appMain.py:3121 appMain.py:6632 defaults.py:936 defaults.py:1107
+#: appDatabase.py:2189 appMain.py:3124 appMain.py:6649 appPlugins/ToolNCC.py:1202
+#: appPlugins/ToolPaint.py:847 defaults.py:941 defaults.py:1112
msgid "Could not load the file."
msgstr ""
@@ -163,101 +169,104 @@ msgstr ""
msgid "The user requested a graceful exit of the current task."
msgstr ""
-#: appCommon/Common.py:301 appPlugins/ToolCopperThieving.py:395 appPlugins/ToolFollow.py:229
-#: appPlugins/ToolIsolation.py:1676 appPlugins/ToolNCC.py:1591 appPlugins/ToolPaint.py:1217
+#: appCommon/Common.py:302 appPlugins/ToolCopperThieving.py:378 appPlugins/ToolFollow.py:213
+#: appPlugins/ToolIsolation.py:1662 appPlugins/ToolNCC.py:1572 appPlugins/ToolPaint.py:1197
msgid "Click the start point of the area."
msgstr ""
-#: appCommon/Common.py:360 appPlugins/ToolFollow.py:438 appPlugins/ToolNCC.py:1652
-#: appPlugins/ToolPaint.py:1367
+#: appCommon/Common.py:361 appPlugins/ToolFollow.py:422 appPlugins/ToolNCC.py:1633
+#: appPlugins/ToolPaint.py:1347
msgid "Click the end point of the area."
msgstr ""
-#: appCommon/Common.py:366 appCommon/Common.py:470 appPlugins/ToolCopperThieving.py:439
-#: appPlugins/ToolFollow.py:444 appPlugins/ToolFollow.py:495
-#: appPlugins/ToolIsolation.py:2693 appPlugins/ToolIsolation.py:2745
-#: appPlugins/ToolNCC.py:1656 appPlugins/ToolNCC.py:1708 appPlugins/ToolPaint.py:1373
-#: appPlugins/ToolPaint.py:1424
+#: appCommon/Common.py:367 appCommon/Common.py:471 appPlugins/ToolCopperThieving.py:422
+#: appPlugins/ToolFollow.py:428 appPlugins/ToolFollow.py:479
+#: appPlugins/ToolIsolation.py:2733 appPlugins/ToolIsolation.py:2785
+#: appPlugins/ToolNCC.py:1637 appPlugins/ToolNCC.py:1689 appPlugins/ToolPaint.py:1353
+#: appPlugins/ToolPaint.py:1404
msgid "Zone added. Click to start adding next zone or right click to finish."
msgstr ""
-#: appCommon/Common.py:414 appEditors/AppGeoEditor.py:2490
+#: appCommon/Common.py:415 appEditors/AppGeoEditor.py:1209 appEditors/AppGeoEditor.py:1358
+#: appEditors/AppGeoEditor.py:1420 appEditors/AppGeoEditor.py:1571
#: appEditors/AppGerberEditor.py:1029 appEditors/AppGerberEditor.py:1409
-#: appPlugins/ToolFollow.py:466 appPlugins/ToolIsolation.py:2716 appPlugins/ToolNCC.py:1679
-#: appPlugins/ToolPaint.py:1395
+#: appPlugins/ToolFollow.py:450 appPlugins/ToolIsolation.py:2756 appPlugins/ToolNCC.py:1660
+#: appPlugins/ToolPaint.py:1375
msgid "Click on next Point or click right mouse button to complete ..."
msgstr ""
-#: appCommon/Common.py:501
+#: appCommon/Common.py:502
msgid "Exclusion areas added. Checking overlap with the object geometry ..."
msgstr ""
-#: appCommon/Common.py:507
+#: appCommon/Common.py:508
msgid "Failed. Exclusion areas intersects the object geometry ..."
msgstr ""
-#: appCommon/Common.py:510
+#: appCommon/Common.py:511
msgid "Exclusion areas added."
msgstr ""
-#: appCommon/Common.py:519 appCommon/Common.py:654 appCommon/Common.py:716
+#: appCommon/Common.py:520 appCommon/Common.py:655 appCommon/Common.py:717
msgid "Generate the CNC Job object."
msgstr ""
-#: appCommon/Common.py:519
+#: appCommon/Common.py:520
msgid "With Exclusion areas."
msgstr ""
-#: appCommon/Common.py:554
+#: appCommon/Common.py:555
msgid "Cancelled. Area exclusion drawing was interrupted."
msgstr ""
-#: appCommon/Common.py:664 appCommon/Common.py:719
+#: appCommon/Common.py:665 appCommon/Common.py:720
msgid "All exclusion zones deleted."
msgstr ""
-#: appCommon/Common.py:705
+#: appCommon/Common.py:706
msgid "Selected exclusion zones deleted."
msgstr ""
-#: appDatabase.py:28 appGUI/MainGUI.py:1767 appPlugins/ToolMilling.py:4367
+#: appDatabase.py:28 appEditors/AppGeoEditor.py:118 appEditors/AppGeoEditor.py:1398
+#: appEditors/AppGeoEditor.py:1402 appEditors/AppGeoEditor.py:1438
+#: appEditors/AppGeoEditor.py:1774 appGUI/MainGUI.py:1813 appPlugins/ToolMilling.py:4334
msgid "Path"
msgstr ""
-#: appDatabase.py:28 appPlugins/ToolMilling.py:4367
+#: appDatabase.py:28 appPlugins/ToolMilling.py:4334
msgid "In"
msgstr ""
-#: appDatabase.py:28 appPlugins/ToolMilling.py:4367
+#: appDatabase.py:28 appPlugins/ToolMilling.py:4334
msgid "Out"
msgstr ""
-#: appDatabase.py:28 appGUI/MainGUI.py:887 appGUI/MainGUI.py:1752
-#: appPlugins/ToolMilling.py:4367 appPlugins/ToolMilling.py:4375 appMain.py:9104
+#: appDatabase.py:28 appGUI/MainGUI.py:930 appGUI/MainGUI.py:1798 appMain.py:9132
+#: appPlugins/ToolMilling.py:4334 appPlugins/ToolMilling.py:4342
msgid "Custom"
msgstr ""
-#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/FlatCAMCNCJob.py:259
-#: appObjects/FlatCAMGeometry.py:125 appPlugins/ToolMilling.py:4479
+#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/CNCJobObject.py:264
+#: appObjects/GeometryObject.py:125 appPlugins/ToolMilling.py:4446
msgid "Roughing"
msgstr ""
-#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/FlatCAMCNCJob.py:259
-#: appObjects/FlatCAMGeometry.py:125 appPlugins/ToolMilling.py:4479
+#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/CNCJobObject.py:264
+#: appObjects/GeometryObject.py:125 appPlugins/ToolMilling.py:4446
msgid "Finishing"
msgstr ""
#: appDatabase.py:29 appDatabase.py:271 appDatabase.py:593 appDatabase.py:1768
#: appDatabase.py:2233 appDatabase.py:2416 appEditors/appGCodeEditor.py:192
-#: appGUI/MainGUI.py:1111 appGUI/MainGUI.py:2481 appGUI/MainGUI.py:4928
-#: appObjects/FlatCAMCNCJob.py:259 appObjects/FlatCAMGeometry.py:125
-#: appPlugins/ToolIsolation.py:210 appPlugins/ToolIsolation.py:3300
-#: appPlugins/ToolMilling.py:4479 appPlugins/ToolNCC.py:4324
+#: appGUI/MainGUI.py:1154 appGUI/MainGUI.py:2531 appGUI/MainGUI.py:5044
+#: appObjects/CNCJobObject.py:264 appObjects/GeometryObject.py:125
+#: appPlugins/ToolIsolation.py:191 appPlugins/ToolIsolation.py:3346
+#: appPlugins/ToolMilling.py:4446 appPlugins/ToolNCC.py:4297
msgid "Isolation"
msgstr ""
-#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/FlatCAMCNCJob.py:259
-#: appObjects/FlatCAMGeometry.py:125 appPlugins/ToolMilling.py:4479
+#: appDatabase.py:29 appEditors/appGCodeEditor.py:192 appObjects/CNCJobObject.py:264
+#: appObjects/GeometryObject.py:125 appPlugins/ToolMilling.py:4446
msgid "Polishing"
msgstr ""
@@ -265,28 +274,27 @@ msgstr ""
msgid "ID"
msgstr ""
-#: appDatabase.py:38 appDatabase.py:203 appEditors/AppGeoEditor.py:3479
+#: appDatabase.py:38 appDatabase.py:203 appEditors/AppGeoEditor.py:3126
#: appGUI/ObjectUI.py:222 appGUI/ObjectUI.py:641 appGUI/ObjectUI.py:973
-#: appGUI/ObjectUI.py:1322 appGUI/ObjectUI.py:1597 appGUI/ObjectUI.py:1664
+#: appGUI/ObjectUI.py:1322 appGUI/ObjectUI.py:1605 appGUI/ObjectUI.py:1672
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:376
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:379 appPlugins/ToolCalibration.py:954
-#: appPlugins/ToolFiducials.py:885 appMain.py:8611
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:379 appMain.py:8639
+#: appPlugins/ToolFiducials.py:972
msgid "Name"
msgstr ""
-#: appDatabase.py:38 appDatabase.py:265 appPlugins/ToolCalibration.py:955
-#: appPlugins/ToolDblSided.py:749 appPlugins/ToolPanelize.py:1196 appPlugins/ToolSub.py:851
-#: appPlugins/ToolSub.py:919
+#: appDatabase.py:38 appDatabase.py:265 appPlugins/ToolDblSided.py:735
+#: appPlugins/ToolPanelize.py:1180 appPlugins/ToolSub.py:840 appPlugins/ToolSub.py:908
msgid "Target"
msgstr ""
-#: appDatabase.py:38 appDatabase.py:216 appEditors/AppExcEditor.py:2857
-#: appEditors/AppExcEditor.py:4061 appGUI/ObjectUI.py:741 appObjects/FlatCAMObj.py:781
-#: appObjects/FlatCAMObj.py:847 appPlugins/ToolDrilling.py:2470
-#: appPlugins/ToolIsolation.py:3390 appPlugins/ToolMilling.py:4065
-#: appPlugins/ToolNCC.py:4161 appPlugins/ToolPaint.py:3037 appPlugins/ToolPcbWizard.py:443
-#: appPlugins/ToolReport.py:443 appPlugins/ToolReport.py:512
-#: appPlugins/ToolSolderPaste.py:1268 tclCommands/TclCommandDrillcncjob.py:210
+#: appDatabase.py:38 appDatabase.py:216 appEditors/AppExcEditor.py:3591
+#: appEditors/AppExcEditor.py:4761 appGUI/ObjectUI.py:741
+#: appObjects/AppObjectTemplate.py:781 appObjects/AppObjectTemplate.py:847
+#: appPlugins/ToolDrilling.py:2450 appPlugins/ToolIsolation.py:3436
+#: appPlugins/ToolMilling.py:4032 appPlugins/ToolNCC.py:4134 appPlugins/ToolPaint.py:3018
+#: appPlugins/ToolPcbWizard.py:432 appPlugins/ToolReport.py:430 appPlugins/ToolReport.py:499
+#: appPlugins/ToolSolderPaste.py:1302 tclCommands/TclCommandDrillcncjob.py:210
msgid "Diameter"
msgstr ""
@@ -325,8 +333,12 @@ msgid ""
"is to serve as a note for the user."
msgstr ""
-#: appDatabase.py:218 appDatabase.py:1181
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:206 appPlugins/ToolCalculators.py:650
+#: appDatabase.py:218 appDatabase.py:1181 appEditors/exc_plugins/ExcDrillArrayPlugin.py:120
+#: appEditors/exc_plugins/ExcDrillPlugin.py:127
+#: appEditors/exc_plugins/ExcResizePlugin.py:119
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:118
+#: appEditors/exc_plugins/ExcSlotPlugin.py:127
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:206 appPlugins/ToolCalculators.py:644
msgid "Tool Diameter"
msgstr ""
@@ -361,65 +373,66 @@ msgid "The kind of Application Tool where this tool is to be used."
msgstr ""
#: appDatabase.py:271 appDatabase.py:1765 appDatabase.py:1806 appDatabase.py:2217
-#: appDatabase.py:2413 appGUI/MainGUI.py:1508
+#: appDatabase.py:2413 appGUI/MainGUI.py:1554
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:20
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:23
#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:22
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:23 appMain.py:8609
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:23 appMain.py:8637
msgid "General"
msgstr ""
#: appDatabase.py:271 appDatabase.py:1766 appDatabase.py:2220 appDatabase.py:2414
-#: appGUI/MainGUI.py:1102 appGUI/MainGUI.py:2472 appGUI/MainGUI.py:4932
-#: appGUI/ObjectUI.py:804 appGUI/ObjectUI.py:1116 appPlugins/ToolMilling.py:102
-#: appPlugins/ToolMilling.py:243 appPlugins/ToolMilling.py:3935
+#: appGUI/MainGUI.py:1145 appGUI/MainGUI.py:2522 appGUI/MainGUI.py:5048
+#: appGUI/ObjectUI.py:804 appGUI/ObjectUI.py:1116 appPlugins/ToolMilling.py:76
+#: appPlugins/ToolMilling.py:217 appPlugins/ToolMilling.py:3902
msgid "Milling"
msgstr ""
#: appDatabase.py:271 appDatabase.py:1767 appDatabase.py:2225 appDatabase.py:2415
-#: appGUI/MainGUI.py:1100 appGUI/MainGUI.py:2470 appGUI/ObjectUI.py:790
-#: appPlugins/ToolDrilling.py:55 appPlugins/ToolDrilling.py:198
-#: appPlugins/ToolDrilling.py:1198 appPlugins/ToolDrilling.py:2375
+#: appGUI/MainGUI.py:1143 appGUI/MainGUI.py:2520 appGUI/ObjectUI.py:790
+#: appPlugins/ToolDrilling.py:33 appPlugins/ToolDrilling.py:176
+#: appPlugins/ToolDrilling.py:1176 appPlugins/ToolDrilling.py:2355
msgid "Drilling"
msgstr ""
#: appDatabase.py:271 appDatabase.py:1769 appDatabase.py:2241 appDatabase.py:2417
-#: appEditors/AppGeoEditor.py:598 appGUI/MainGUI.py:1117 appGUI/MainGUI.py:1784
-#: appGUI/MainGUI.py:2487 appGUI/ObjectUI.py:1130 appPlugins/ToolPaint.py:216
-#: appPlugins/ToolPaint.py:899 appPlugins/ToolPaint.py:2919
+#: appEditors/geo_plugins/GeoPaintPlugin.py:220 appEditors/geo_plugins/GeoPaintPlugin.py:332
+#: appGUI/MainGUI.py:768 appGUI/MainGUI.py:1160 appGUI/MainGUI.py:1832
+#: appGUI/MainGUI.py:2537 appGUI/ObjectUI.py:1130 appPlugins/ToolPaint.py:195
+#: appPlugins/ToolPaint.py:879 appPlugins/ToolPaint.py:2900
msgid "Paint"
msgstr ""
#: appDatabase.py:271 appDatabase.py:1770 appDatabase.py:2249 appDatabase.py:2418
-#: appGUI/MainGUI.py:1115 appGUI/MainGUI.py:2485 appGUI/ObjectUI.py:429
-#: appGUI/ObjectUI.py:1140 appPlugins/ToolNCC.py:215 appPlugins/ToolNCC.py:1247
-#: appPlugins/ToolNCC.py:4042
+#: appGUI/MainGUI.py:1158 appGUI/MainGUI.py:2535 appGUI/ObjectUI.py:429
+#: appGUI/ObjectUI.py:1140 appPlugins/ToolNCC.py:195 appPlugins/ToolNCC.py:1228
+#: appPlugins/ToolNCC.py:4015
msgid "NCC"
msgstr ""
#: appDatabase.py:271 appDatabase.py:1771 appDatabase.py:2257 appDatabase.py:2419
-#: appGUI/MainGUI.py:1122 appGUI/MainGUI.py:2492 appGUI/ObjectUI.py:400
-#: appPlugins/ToolCutOut.py:188 appPlugins/ToolCutOut.py:484 appPlugins/ToolCutOut.py:2230
+#: appGUI/MainGUI.py:1165 appGUI/MainGUI.py:2542 appGUI/ObjectUI.py:400
+#: appPlugins/ToolCutOut.py:170 appPlugins/ToolCutOut.py:466 appPlugins/ToolCutOut.py:2212
msgid "Cutout"
msgstr ""
-#: appDatabase.py:285 appEditors/appGCodeEditor.py:809 appGUI/ObjectUI.py:1068
-#: appGUI/ObjectUI.py:1483 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:444
+#: appDatabase.py:285 appEditors/appGCodeEditor.py:812 appGUI/ObjectUI.py:1068
+#: appGUI/ObjectUI.py:1490 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:444
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:148
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:316
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:330
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:464
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:321
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:285 appPlugins/ToolCutOut.py:2610
-#: appPlugins/ToolFollow.py:757 appPlugins/ToolIsolation.py:3541
-#: appPlugins/ToolIsolation.py:3893 appPlugins/ToolMilling.py:4437
-#: appPlugins/ToolNCC.py:4161 appPlugins/ToolNCC.py:4597 appPlugins/ToolPaint.py:3037
-#: appPlugins/ToolPaint.py:3348
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:285 appPlugins/ToolCutOut.py:2592
+#: appPlugins/ToolFollow.py:741 appPlugins/ToolIsolation.py:3587
+#: appPlugins/ToolIsolation.py:3955 appPlugins/ToolMilling.py:4404
+#: appPlugins/ToolNCC.py:4134 appPlugins/ToolNCC.py:4570 appPlugins/ToolPaint.py:3018
+#: appPlugins/ToolPaint.py:3329
msgid "Shape"
msgstr ""
#: appDatabase.py:287 appGUI/ObjectUI.py:1092
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:150 appPlugins/ToolIsolation.py:3543
-#: appPlugins/ToolMilling.py:4439 appPlugins/ToolNCC.py:4179 appPlugins/ToolPaint.py:3055
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:150 appPlugins/ToolIsolation.py:3589
+#: appPlugins/ToolMilling.py:4406 appPlugins/ToolNCC.py:4152 appPlugins/ToolPaint.py:3036
msgid ""
"Tool Shape. \n"
"Can be:\n"
@@ -449,12 +462,12 @@ msgid ""
"Angle at the tip for the V-Shape Tools."
msgstr ""
-#: appDatabase.py:336 appEditors/appGCodeEditor.py:809 appGUI/ObjectUI.py:1068
-#: appGUI/ObjectUI.py:1483 appPlugins/ToolMilling.py:4467
+#: appDatabase.py:336 appEditors/appGCodeEditor.py:812 appGUI/ObjectUI.py:1068
+#: appGUI/ObjectUI.py:1490 appPlugins/ToolMilling.py:4434
msgid "Job"
msgstr ""
-#: appDatabase.py:339 appPlugins/ToolMilling.py:4470
+#: appDatabase.py:339 appPlugins/ToolMilling.py:4437
msgid ""
"- Isolation -> informative - lower Feedrate as it uses a milling bit with a fine tip.\n"
"- Roughing -> informative - lower Feedrate and multiDepth cut.\n"
@@ -486,8 +499,8 @@ msgid ""
"A value to be used as offset from the current path."
msgstr ""
-#: appDatabase.py:390 appDatabase.py:889 appEditors/appGCodeEditor.py:820
-#: appGUI/ObjectUI.py:1493 appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:38
+#: appDatabase.py:390 appDatabase.py:889 appEditors/appGCodeEditor.py:823
+#: appGUI/ObjectUI.py:1500 appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:38
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:75
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:67
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:54
@@ -495,10 +508,10 @@ msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:84
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:97
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:100
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:108 appPlugins/ToolCalculators.py:639
-#: appPlugins/ToolCutOut.py:2417 appPlugins/ToolDrilling.py:2541
-#: appPlugins/ToolIsolation.py:3608 appPlugins/ToolMilling.py:1455
-#: appPlugins/ToolMilling.py:4583
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:108 appPlugins/ToolCalculators.py:633
+#: appPlugins/ToolCutOut.py:2399 appPlugins/ToolDrilling.py:2521
+#: appPlugins/ToolIsolation.py:3654 appPlugins/ToolMilling.py:1428
+#: appPlugins/ToolMilling.py:4550
msgid "Cut Z"
msgstr ""
@@ -529,13 +542,12 @@ msgid ""
"The value used to cut into material on each pass."
msgstr ""
-#: appDatabase.py:431 appDatabase.py:955 appGUI/preferences/tools/Tools2CalPrefGroupUI.py:60
+#: appDatabase.py:431 appDatabase.py:955
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:93
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:168
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:126 appPlugins/ToolCalibration.py:794
-#: appPlugins/ToolDrilling.py:1582 appPlugins/ToolDrilling.py:2583
-#: appPlugins/ToolMilling.py:3629 appPlugins/ToolMilling.py:4625
-#: appPlugins/ToolSolderPaste.py:1338
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:126 appPlugins/ToolDrilling.py:1560
+#: appPlugins/ToolDrilling.py:2563 appPlugins/ToolMilling.py:3596
+#: appPlugins/ToolMilling.py:4592 appPlugins/ToolSolderPaste.py:1387
msgid "Travel Z"
msgstr ""
@@ -574,8 +586,8 @@ msgid ""
msgstr ""
#: appDatabase.py:484 appGUI/preferences/tools/ToolsMillPrefGroupUI.py:198
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: appPlugins/ToolMilling.py:4643
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
+#: appPlugins/ToolMilling.py:4610
msgid "Feedrate X-Y"
msgstr ""
@@ -588,8 +600,8 @@ msgstr ""
#: appDatabase.py:498 appDatabase.py:978
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:154
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:213
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: appPlugins/ToolDrilling.py:2600 appPlugins/ToolMilling.py:4661
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
+#: appPlugins/ToolDrilling.py:2580 appPlugins/ToolMilling.py:4628
msgid "Feedrate Z"
msgstr ""
@@ -612,10 +624,10 @@ msgid ""
msgstr ""
#: appDatabase.py:533 appDatabase.py:1018
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:229 appPlugins/ToolDrilling.py:1600
-#: appPlugins/ToolDrilling.py:2639 appPlugins/ToolMilling.py:3647
-#: appPlugins/ToolMilling.py:4731 appPlugins/ToolSolderPaste.py:1502
-#: appPlugins/ToolSolderPaste.py:1539
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:229 appPlugins/ToolDrilling.py:1578
+#: appPlugins/ToolDrilling.py:2619 appPlugins/ToolMilling.py:3614
+#: appPlugins/ToolMilling.py:4698 appPlugins/ToolSolderPaste.py:1565
+#: appPlugins/ToolSolderPaste.py:1602
msgid "Spindle speed"
msgstr ""
@@ -626,9 +638,9 @@ msgid ""
"The speed of the spindle in RPM."
msgstr ""
-#: appDatabase.py:548 appDatabase.py:1033 appPlugins/ToolDrilling.py:2670
-#: appPlugins/ToolMilling.py:4762 appPlugins/ToolSolderPaste.py:1516
-#: appPlugins/ToolSolderPaste.py:1553
+#: appDatabase.py:548 appDatabase.py:1033 appPlugins/ToolDrilling.py:2650
+#: appPlugins/ToolMilling.py:4729 appPlugins/ToolSolderPaste.py:1579
+#: appPlugins/ToolSolderPaste.py:1616
msgid "Dwell"
msgstr ""
@@ -649,11 +661,11 @@ msgid ""
"A delay used to allow the motor spindle reach its set speed."
msgstr ""
-#: appDatabase.py:583 appPlugins/ToolNCC.py:4314
+#: appDatabase.py:583 appPlugins/ToolNCC.py:4287
msgid "Operation"
msgstr ""
-#: appDatabase.py:585 appPlugins/ToolNCC.py:4316
+#: appDatabase.py:585 appPlugins/ToolNCC.py:4289
msgid ""
"The 'Operation' can be:\n"
"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
@@ -661,7 +673,9 @@ msgid ""
"- Clear -> the regular non-copper clearing."
msgstr ""
-#: appDatabase.py:592 appEditors/AppGerberEditor.py:6601 appPlugins/ToolNCC.py:4323
+#: appDatabase.py:592 appEditors/AppGerberEditor.py:6609
+#: appEditors/exc_plugins/ExcCopyPlugin.py:158 appEditors/geo_plugins/GeoCopyPlugin.py:158
+#: appEditors/geo_plugins/GeoPathPlugin.py:153 appPlugins/ToolNCC.py:4296
msgid "Clear"
msgstr ""
@@ -669,8 +683,8 @@ msgstr ""
#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:55
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:203
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:578
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:136 appPlugins/ToolIsolation.py:3673
-#: appPlugins/ToolMilling.py:4316 appPlugins/ToolNCC.py:4332
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:136 appPlugins/ToolIsolation.py:3719
+#: appPlugins/ToolMilling.py:4283 appPlugins/ToolNCC.py:4305
msgid "Milling Type"
msgstr ""
@@ -679,8 +693,8 @@ msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:205
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:213
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:138
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:146 appPlugins/ToolIsolation.py:3675
-#: appPlugins/ToolIsolation.py:3683 appPlugins/ToolNCC.py:4334 appPlugins/ToolNCC.py:4342
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:146 appPlugins/ToolIsolation.py:3721
+#: appPlugins/ToolIsolation.py:3729 appPlugins/ToolNCC.py:4307 appPlugins/ToolNCC.py:4315
msgid ""
"Milling type:\n"
"- climb / best for precision milling and to reduce tool usage\n"
@@ -690,36 +704,37 @@ msgstr ""
#: appDatabase.py:608 appDatabase.py:849
#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:61
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:210
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:143 appPlugins/ToolIsolation.py:3680
-#: appPlugins/ToolNCC.py:4339
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:143 appPlugins/ToolIsolation.py:3726
+#: appPlugins/ToolNCC.py:4312
msgid "Climb"
msgstr ""
#: appDatabase.py:609 appDatabase.py:850
#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:211
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 appPlugins/ToolIsolation.py:3681
-#: appPlugins/ToolNCC.py:4340
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144 appPlugins/ToolIsolation.py:3727
+#: appPlugins/ToolNCC.py:4313
msgid "Conventional"
msgstr ""
#: appDatabase.py:621 appDatabase.py:727 appDatabase.py:827 appDatabase.py:1076
-#: appEditors/AppGeoEditor.py:520 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:254
+#: appEditors/geo_plugins/GeoPaintPlugin.py:254
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:254
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:189
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:532
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:612
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:168
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 appPlugins/ToolDrilling.py:2718
-#: appPlugins/ToolIsolation.py:3658 appPlugins/ToolMilling.py:4397
-#: appPlugins/ToolMilling.py:4500 appPlugins/ToolNCC.py:4355 appPlugins/ToolPaint.py:3172
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151 appPlugins/ToolDrilling.py:2698
+#: appPlugins/ToolIsolation.py:3704 appPlugins/ToolMilling.py:4364
+#: appPlugins/ToolMilling.py:4467 appPlugins/ToolNCC.py:4328 appPlugins/ToolPaint.py:3153
msgid "Overlap"
msgstr ""
-#: appDatabase.py:623 appDatabase.py:729 appEditors/AppGeoEditor.py:522
+#: appDatabase.py:623 appDatabase.py:729 appEditors/geo_plugins/GeoPaintPlugin.py:256
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:614
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:170
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:153 appPlugins/ToolMilling.py:4399
-#: appPlugins/ToolNCC.py:4357 appPlugins/ToolPaint.py:3174
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:153 appPlugins/ToolMilling.py:4366
+#: appPlugins/ToolNCC.py:4330 appPlugins/ToolPaint.py:3155
msgid ""
"How much (percentage) of the tool width to overlap each tool pass.\n"
"Adjust the value starting with lower values\n"
@@ -730,7 +745,7 @@ msgid ""
"due of too many paths."
msgstr ""
-#: appDatabase.py:642 appDatabase.py:1118 appEditors/AppGeoEditor.py:540
+#: appDatabase.py:642 appDatabase.py:1118 appEditors/geo_plugins/GeoPaintPlugin.py:274
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:70
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:277
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:296
@@ -742,11 +757,13 @@ msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:520
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:188
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:171
-#: appPlugins/ToolCopperThieving.py:1343 appPlugins/ToolCopperThieving.py:1632
-#: appPlugins/ToolCutOut.py:2458 appPlugins/ToolCutOut.py:2777
-#: appPlugins/ToolExtract.py:1366 appPlugins/ToolFiducials.py:991
-#: appPlugins/ToolInvertGerber.py:269 appPlugins/ToolInvertGerber.py:277
-#: appPlugins/ToolMilling.py:4487 appPlugins/ToolNCC.py:4399 appPlugins/ToolNCC.py:4503
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:67
+#: appPlugins/ToolCopperThieving.py:1325 appPlugins/ToolCopperThieving.py:1613
+#: appPlugins/ToolCutOut.py:2440 appPlugins/ToolCutOut.py:2759
+#: appPlugins/ToolExtract.py:1397 appPlugins/ToolFiducials.py:1080
+#: appPlugins/ToolInvertGerber.py:256 appPlugins/ToolInvertGerber.py:264
+#: appPlugins/ToolMilling.py:4454 appPlugins/ToolNCC.py:4372 appPlugins/ToolNCC.py:4476
+#: appPlugins/ToolSolderPaste.py:1367
msgid "Margin"
msgstr ""
@@ -756,27 +773,27 @@ msgstr ""
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:123
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:136
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:522
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:190 appPlugins/ToolCopperThieving.py:1345
-#: appPlugins/ToolFiducials.py:993 appPlugins/ToolMilling.py:4489 appPlugins/ToolNCC.py:4401
-#: appPlugins/ToolNCC.py:4505
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:190 appPlugins/ToolCopperThieving.py:1327
+#: appPlugins/ToolFiducials.py:1082 appPlugins/ToolMilling.py:4456
+#: appPlugins/ToolNCC.py:4374 appPlugins/ToolNCC.py:4478
msgid "Bounding box margin."
msgstr ""
-#: appDatabase.py:655 appDatabase.py:763 appEditors/AppGeoEditor.py:554
+#: appDatabase.py:655 appDatabase.py:763 appEditors/geo_plugins/GeoPaintPlugin.py:288
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:104
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:105
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:55
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:546
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:201
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:186 appPlugins/ToolExtract.py:1116
-#: appPlugins/ToolLevelling.py:1930 appPlugins/ToolMilling.py:4515
-#: appPlugins/ToolNCC.py:4376 appPlugins/ToolPaint.py:3208
-#: appPlugins/ToolPunchGerber.py:2130
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:186 appPlugins/ToolExtract.py:1147
+#: appPlugins/ToolLevelling.py:1911 appPlugins/ToolMilling.py:4482
+#: appPlugins/ToolNCC.py:4349 appPlugins/ToolPaint.py:3189
+#: appPlugins/ToolPunchGerber.py:2143
msgid "Method"
msgstr ""
#: appDatabase.py:657 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:203
-#: appPlugins/ToolNCC.py:4378
+#: appPlugins/ToolNCC.py:4351
msgid ""
"Algorithm for copper clearing:\n"
"- Standard: Fixed step inwards.\n"
@@ -784,102 +801,107 @@ msgid ""
"- Line-based: Parallel lines."
msgstr ""
-#: appDatabase.py:665 appDatabase.py:777 appEditors/AppGeoEditor.py:568
+#: appDatabase.py:665 appDatabase.py:777 appEditors/geo_plugins/GeoPaintPlugin.py:302
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:556
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:216
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolMilling.py:4525
-#: appPlugins/ToolNCC.py:4391 appPlugins/ToolPaint.py:3222
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolMilling.py:4492
+#: appPlugins/ToolNCC.py:4364 appPlugins/ToolPaint.py:3203
msgid "Standard"
msgstr ""
-#: appDatabase.py:665 appDatabase.py:777 appEditors/AppGeoEditor.py:568
-#: appEditors/AppGeoEditor.py:666 appEditors/AppGeoEditor.py:5967
+#: appDatabase.py:665 appDatabase.py:777 appEditors/geo_plugins/GeoPaintPlugin.py:89
+#: appEditors/geo_plugins/GeoPaintPlugin.py:180 appEditors/geo_plugins/GeoPaintPlugin.py:302
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:556
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:216
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolMilling.py:4525
-#: appPlugins/ToolNCC.py:4391 appPlugins/ToolPaint.py:3222
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolMilling.py:4492
+#: appPlugins/ToolNCC.py:4364 appPlugins/ToolPaint.py:3203
msgid "Seed"
msgstr ""
-#: appDatabase.py:665 appDatabase.py:777 appEditors/AppGeoEditor.py:568
-#: appEditors/AppGeoEditor.py:5972 appGUI/preferences/tools/ToolsMillPrefGroupUI.py:556
+#: appDatabase.py:665 appDatabase.py:777 appEditors/geo_plugins/GeoPaintPlugin.py:185
+#: appEditors/geo_plugins/GeoPaintPlugin.py:302
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:556
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:216
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appParsers/ParseGerber.py:446
-#: appParsers/ParseHPGL2.py:200 appPlugins/ToolMilling.py:4525 appPlugins/ToolNCC.py:4391
-#: appPlugins/ToolPaint.py:3222
+#: appParsers/ParseHPGL2.py:200 appPlugins/ToolImage.py:752 appPlugins/ToolMilling.py:4492
+#: appPlugins/ToolNCC.py:4364 appPlugins/ToolPaint.py:3203
msgid "Lines"
msgstr ""
#: appDatabase.py:665 appDatabase.py:777 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:216
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolNCC.py:4391
-#: appPlugins/ToolPaint.py:3222
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolNCC.py:4364
+#: appPlugins/ToolPaint.py:3203
msgid "Combo"
msgstr ""
-#: appDatabase.py:673 appDatabase.py:788 appEditors/AppGeoEditor.py:575
+#: appDatabase.py:673 appDatabase.py:788 appEditors/geo_plugins/GeoPaintPlugin.py:309
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:633
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:223
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:212 appPlugins/ToolLevelling.py:1142
-#: appPlugins/ToolLevelling.py:1164 appPlugins/ToolLevelling.py:2019
-#: appPlugins/ToolLevelling.py:2042 appPlugins/ToolMilling.py:4418
-#: appPlugins/ToolNCC.py:4412 appPlugins/ToolNCC.py:4516 appPlugins/ToolPaint.py:3233
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:212 appPlugins/ToolLevelling.py:1123
+#: appPlugins/ToolLevelling.py:1145 appPlugins/ToolLevelling.py:2000
+#: appPlugins/ToolLevelling.py:2023 appPlugins/ToolMilling.py:4385
+#: appPlugins/ToolNCC.py:4385 appPlugins/ToolNCC.py:4489 appPlugins/ToolPaint.py:3214
msgid "Connect"
msgstr ""
-#: appDatabase.py:677 appDatabase.py:791 appEditors/AppGeoEditor.py:577
+#: appDatabase.py:677 appDatabase.py:791 appEditors/geo_plugins/GeoPaintPlugin.py:311
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:636
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:225
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:214 appPlugins/ToolMilling.py:4421
-#: appPlugins/ToolNCC.py:4416 appPlugins/ToolNCC.py:4518 appPlugins/ToolPaint.py:3236
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:214 appPlugins/ToolMilling.py:4388
+#: appPlugins/ToolNCC.py:4389 appPlugins/ToolNCC.py:4491 appPlugins/ToolPaint.py:3217
msgid ""
"Draw lines between resulting\n"
"segments to minimize tool lifts."
msgstr ""
-#: appDatabase.py:683 appDatabase.py:795 appEditors/AppGeoEditor.py:585
+#: appDatabase.py:683 appDatabase.py:795 appEditors/geo_plugins/GeoPaintPlugin.py:319
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:232
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:219 appPlugins/ToolNCC.py:4422
-#: appPlugins/ToolNCC.py:4524 appPlugins/ToolPaint.py:3240
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:219 appPlugins/ToolNCC.py:4395
+#: appPlugins/ToolNCC.py:4497 appPlugins/ToolPaint.py:3221
msgid "Contour"
msgstr ""
-#: appDatabase.py:687 appDatabase.py:798 appEditors/AppGeoEditor.py:587
+#: appDatabase.py:687 appDatabase.py:798 appEditors/geo_plugins/GeoPaintPlugin.py:321
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:234
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:221 appPlugins/ToolNCC.py:4426
-#: appPlugins/ToolNCC.py:4526 appPlugins/ToolPaint.py:3243
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:221 appPlugins/ToolNCC.py:4399
+#: appPlugins/ToolNCC.py:4499 appPlugins/ToolPaint.py:3224
msgid ""
"Cut around the perimeter of the polygon\n"
"to trim rough edges."
msgstr ""
-#: appDatabase.py:693 appDatabase.py:748 appEditors/AppGeoEditor.py:709
-#: appEditors/AppGerberEditor.py:6775 appEditors/appGCodeEditor.py:809
-#: appGUI/ObjectUI.py:138 appGUI/ObjectUI.py:1068 appGUI/ObjectUI.py:1483
+#: appDatabase.py:693 appDatabase.py:748 appEditors/AppGerberEditor.py:6783
+#: appEditors/appGCodeEditor.py:812 appEditors/exc_plugins/ExcCopyPlugin.py:302
+#: appEditors/exc_plugins/ExcCopyPlugin.py:379 appEditors/exc_plugins/ExcCopyPlugin.py:392
+#: appEditors/geo_plugins/GeoCopyPlugin.py:302 appEditors/geo_plugins/GeoCopyPlugin.py:379
+#: appEditors/geo_plugins/GeoCopyPlugin.py:392
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:603 appGUI/ObjectUI.py:138
+#: appGUI/ObjectUI.py:1068 appGUI/ObjectUI.py:1490
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:107
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:121
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:134
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:241
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:217
-#: appPlugins/ToolEtchCompensation.py:474 appPlugins/ToolMarkers.py:1263
-#: appPlugins/ToolMarkers.py:1290 appPlugins/ToolMarkers.py:1303
-#: appPlugins/ToolMarkers.py:1544 appPlugins/ToolMarkers.py:1549 appPlugins/ToolNCC.py:4432
-#: appPlugins/ToolNCC.py:4532 appPlugins/ToolPaint.py:3193 appPlugins/ToolPaint.py:3290
-#: appPlugins/ToolTransform.py:577 appPlugins/ToolTransform.py:893
+#: appPlugins/ToolEtchCompensation.py:460 appPlugins/ToolMarkers.py:1337
+#: appPlugins/ToolMarkers.py:1364 appPlugins/ToolMarkers.py:1377
+#: appPlugins/ToolMarkers.py:1636 appPlugins/ToolMarkers.py:1641 appPlugins/ToolNCC.py:4405
+#: appPlugins/ToolNCC.py:4505 appPlugins/ToolPaint.py:3174 appPlugins/ToolPaint.py:3271
+#: appPlugins/ToolTransform.py:568 appPlugins/ToolTransform.py:884
msgid "Offset"
msgstr ""
#: appDatabase.py:697 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:243
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:253 appPlugins/ToolNCC.py:4436
-#: appPlugins/ToolNCC.py:4534
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:253 appPlugins/ToolNCC.py:4409
+#: appPlugins/ToolNCC.py:4507
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."
msgstr ""
-#: appDatabase.py:750 appEditors/AppGeoEditor.py:542
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:173 appPlugins/ToolPaint.py:3195
-#: appPlugins/ToolPaint.py:3292
+#: appDatabase.py:750 appEditors/geo_plugins/GeoPaintPlugin.py:276
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:173 appPlugins/ToolPaint.py:3176
+#: appPlugins/ToolPaint.py:3273
msgid ""
"Distance by which to avoid\n"
"the edges of the polygon to\n"
@@ -887,7 +909,7 @@ msgid ""
msgstr ""
#: appDatabase.py:765 appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:188
-#: appPlugins/ToolPaint.py:3210
+#: appPlugins/ToolPaint.py:3191
msgid ""
"Algorithm for painting:\n"
"- Standard: Fixed step inwards.\n"
@@ -900,36 +922,36 @@ msgid ""
msgstr ""
#: appDatabase.py:777 appDatabase.py:779
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolPaint.py:141
-#: appPlugins/ToolPaint.py:415 appPlugins/ToolPaint.py:3222 appPlugins/ToolPaint.py:3224
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:205 appPlugins/ToolPaint.py:120
+#: appPlugins/ToolPaint.py:394 appPlugins/ToolPaint.py:3203 appPlugins/ToolPaint.py:3205
msgid "Laser_lines"
msgstr ""
#: appDatabase.py:814 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:165
-#: appPlugins/ToolIsolation.py:3632
+#: appPlugins/ToolIsolation.py:3678
msgid "Passes"
msgstr ""
#: appDatabase.py:816 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:167
-#: appPlugins/ToolIsolation.py:3634
+#: appPlugins/ToolIsolation.py:3680
msgid ""
"Width of the isolation gap in\n"
"number (integer) of tool widths."
msgstr ""
#: appDatabase.py:829 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:191
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:534 appPlugins/ToolIsolation.py:3660
-#: appPlugins/ToolMilling.py:4502
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:534 appPlugins/ToolIsolation.py:3706
+#: appPlugins/ToolMilling.py:4469
msgid "How much (percentage) of the tool width to overlap each tool pass."
msgstr ""
#: appDatabase.py:862 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:222
-#: appPlugins/ToolIsolation.py:3693
+#: appPlugins/ToolIsolation.py:3739
msgid "Isolation Type"
msgstr ""
#: appDatabase.py:864 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:224
-#: appPlugins/ToolIsolation.py:3695
+#: appPlugins/ToolIsolation.py:3741
msgid ""
"Choose how the isolation will be executed:\n"
"- 'Full' -> complete isolation of polygons\n"
@@ -942,34 +964,34 @@ msgid ""
msgstr ""
#: appDatabase.py:873 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:233 appPlugins/ToolIsolation.py:3704
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:233 appPlugins/ToolIsolation.py:3750
msgid "Full"
msgstr ""
#: appDatabase.py:874 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:234
-#: appPlugins/ToolIsolation.py:3705
+#: appPlugins/ToolIsolation.py:3751
msgid "Ext"
msgstr ""
#: appDatabase.py:875 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:235
-#: appPlugins/ToolIsolation.py:3706
+#: appPlugins/ToolIsolation.py:3752
msgid "Int"
msgstr ""
#: appDatabase.py:891 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:56
-#: appPlugins/ToolDrilling.py:2543 appPlugins/ToolMilling.py:1457
+#: appPlugins/ToolDrilling.py:2523 appPlugins/ToolMilling.py:1430
msgid ""
"Drill depth (negative)\n"
"below the copper surface."
msgstr ""
#: appDatabase.py:907 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:288
-#: appPlugins/ToolDrilling.py:2694
+#: appPlugins/ToolDrilling.py:2674
msgid "Offset Z"
msgstr ""
#: appDatabase.py:909 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:290
-#: appPlugins/ToolDrilling.py:2696
+#: appPlugins/ToolDrilling.py:2676
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"
@@ -978,8 +1000,8 @@ msgstr ""
#: appDatabase.py:926 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:87
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:73
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:103 appPlugins/ToolCutOut.py:2434
-#: appPlugins/ToolDrilling.py:2561 appPlugins/ToolMilling.py:4603
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:103 appPlugins/ToolCutOut.py:2416
+#: appPlugins/ToolDrilling.py:2541 appPlugins/ToolMilling.py:4570
msgid ""
"Use multiple passes to limit\n"
"the cut depth in each pass. Will\n"
@@ -989,21 +1011,21 @@ msgstr ""
#: appDatabase.py:948 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:99
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:85
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:114 appPlugins/ToolCutOut.py:2445
-#: appPlugins/ToolDrilling.py:2574 appPlugins/ToolMilling.py:4616
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:114 appPlugins/ToolCutOut.py:2427
+#: appPlugins/ToolDrilling.py:2554 appPlugins/ToolMilling.py:4583
msgid "Depth of each pass (positive)."
msgstr ""
#: appDatabase.py:957 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:95
-#: appPlugins/ToolDrilling.py:1584 appPlugins/ToolDrilling.py:2585
-#: appPlugins/ToolMilling.py:3631 appPlugins/ToolMilling.py:4627
+#: appPlugins/ToolDrilling.py:1562 appPlugins/ToolDrilling.py:2565
+#: appPlugins/ToolMilling.py:3598 appPlugins/ToolMilling.py:4594
msgid ""
"Tool height when travelling\n"
"across the XY plane."
msgstr ""
#: appDatabase.py:980 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:156
-#: appPlugins/ToolDrilling.py:2602 appPlugins/ToolMilling.py:4663
+#: appPlugins/ToolDrilling.py:2582 appPlugins/ToolMilling.py:4630
msgid ""
"Tool speed while drilling\n"
"(in units per minute).\n"
@@ -1012,13 +1034,15 @@ msgid ""
msgstr ""
#: appDatabase.py:995 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:322
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:326 appPlugins/ToolDrilling.py:2617
-#: appPlugins/ToolMilling.py:4678
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:326
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:171
+#: appPlugins/ToolDrilling.py:2597 appPlugins/ToolMilling.py:4645
+#: appPlugins/ToolSolderPaste.py:1507
msgid "Feedrate Rapids"
msgstr ""
#: appDatabase.py:997 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:324
-#: appPlugins/ToolDrilling.py:2619 appPlugins/ToolMilling.py:4680
+#: appPlugins/ToolDrilling.py:2599 appPlugins/ToolMilling.py:4647
msgid ""
"Tool speed while drilling\n"
"(in units per minute).\n"
@@ -1028,35 +1052,35 @@ msgid ""
msgstr ""
#: appDatabase.py:1020 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:171
-#: appPlugins/ToolDrilling.py:1602 appPlugins/ToolDrilling.py:2641
-#: appPlugins/ToolMilling.py:3649 appPlugins/ToolMilling.py:4733
+#: appPlugins/ToolDrilling.py:1580 appPlugins/ToolDrilling.py:2621
+#: appPlugins/ToolMilling.py:3616 appPlugins/ToolMilling.py:4700
msgid ""
"Speed of the spindle\n"
"in RPM (optional)"
msgstr ""
#: appDatabase.py:1065 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:239
-#: appPlugins/ToolDrilling.py:2710
+#: appPlugins/ToolDrilling.py:2690
msgid "Drill slots"
msgstr ""
#: appDatabase.py:1067 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:241
-#: appPlugins/ToolDrilling.py:2712
+#: appPlugins/ToolDrilling.py:2692
msgid "If the selected tool has slots then they will be drilled."
msgstr ""
#: appDatabase.py:1078 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:256
-#: appPlugins/ToolDrilling.py:2720
+#: appPlugins/ToolDrilling.py:2700
msgid "How much (percentage) of the tool diameter to overlap previous drill hole."
msgstr ""
#: appDatabase.py:1092 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:246
-#: appPlugins/ToolDrilling.py:2734
+#: appPlugins/ToolDrilling.py:2714
msgid "Last drill"
msgstr ""
#: appDatabase.py:1094 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:248
-#: appPlugins/ToolDrilling.py:2736
+#: appPlugins/ToolDrilling.py:2716
msgid ""
"If the slot length is not completely covered by drill holes,\n"
"add a drill hole on the slot end point."
@@ -1064,8 +1088,8 @@ msgstr ""
#: appDatabase.py:1120 appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:298
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:124
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:310 appPlugins/ToolCutOut.py:2460
-#: appPlugins/ToolCutOut.py:2779 appPlugins/ToolExtract.py:1368
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:310 appPlugins/ToolCutOut.py:2442
+#: appPlugins/ToolCutOut.py:2761 appPlugins/ToolExtract.py:1399
msgid ""
"Margin over bounds. A positive value here\n"
"will make the cutout of the PCB further from\n"
@@ -1077,7 +1101,7 @@ msgid "Gap size"
msgstr ""
#: appDatabase.py:1134 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:152
-#: appPlugins/ToolCutOut.py:2483
+#: appPlugins/ToolCutOut.py:2465
msgid ""
"The size of the bridge gaps in the cutout\n"
"used to keep the board connected to\n"
@@ -1090,7 +1114,7 @@ msgid "Gap type"
msgstr ""
#: appDatabase.py:1145 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169
-#: appPlugins/ToolCutOut.py:2499
+#: appPlugins/ToolCutOut.py:2481
msgid ""
"The type of gap:\n"
"- Bridge -> the cutout will be interrupted by bridges\n"
@@ -1099,66 +1123,68 @@ msgid ""
msgstr ""
#: appDatabase.py:1153 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:176
-#: appPlugins/ToolCutOut.py:2514 appPlugins/ToolCutOut.py:2565
+#: appPlugins/ToolCutOut.py:2496 appPlugins/ToolCutOut.py:2547
msgid "Bridge"
msgstr ""
#: appDatabase.py:1154 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:176
-#: appPlugins/ToolCutOut.py:2514
+#: appPlugins/ToolCutOut.py:2496
msgid "Thin"
msgstr ""
#: appDatabase.py:1165 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:187
-#: appPlugins/ToolCutOut.py:2520
+#: appPlugins/ToolCutOut.py:2502
msgid "Depth"
msgstr ""
#: appDatabase.py:1167 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:189
-#: appPlugins/ToolCutOut.py:2522
+#: appPlugins/ToolCutOut.py:2504
msgid ""
"The depth until the milling is done\n"
"in order to thin the gaps."
msgstr ""
#: appDatabase.py:1183 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:208
-#: appPlugins/ToolCutOut.py:2536
+#: appPlugins/ToolCutOut.py:2518
msgid "The drill hole diameter when doing mouse bites."
msgstr ""
-#: appDatabase.py:1194 appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
+#: appDatabase.py:1194 appEditors/exc_plugins/ExcCopyPlugin.py:301
+#: appEditors/geo_plugins/GeoCopyPlugin.py:301
+#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:208
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:247
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:218
-#: appPlugins/ToolCopperThieving.py:1487 appPlugins/ToolCopperThieving.py:1533
-#: appPlugins/ToolCopperThieving.py:1579 appPlugins/ToolCutOut.py:2546
+#: appPlugins/ToolCopperThieving.py:1469 appPlugins/ToolCopperThieving.py:1515
+#: appPlugins/ToolCopperThieving.py:1561 appPlugins/ToolCutOut.py:2528
msgid "Spacing"
msgstr ""
#: appDatabase.py:1196 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:220
-#: appPlugins/ToolCutOut.py:2548
+#: appPlugins/ToolCutOut.py:2530
msgid "The spacing between drill holes when doing mouse bites."
msgstr ""
#: appDatabase.py:1215 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:59
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213 appPlugins/ToolCutOut.py:2403
-#: appPlugins/ToolFilm.py:1551
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198 appPlugins/ToolCutOut.py:2385
+#: appPlugins/ToolFilm.py:1528
msgid "Convex Shape"
msgstr ""
#: appDatabase.py:1218 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: appPlugins/ToolCutOut.py:2405 appPlugins/ToolCutOut.py:2410
+#: appPlugins/ToolCutOut.py:2387 appPlugins/ToolCutOut.py:2392
msgid ""
"Create a convex shape surrounding the entire PCB.\n"
"Used only if the source object type is Gerber."
msgstr ""
#: appDatabase.py:1226 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:137
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:234 appPlugins/ToolCutOut.py:2467
-#: appPlugins/ToolCutOut.py:2586 appPlugins/ToolCutOut.py:2685
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:234 appPlugins/ToolCutOut.py:2449
+#: appPlugins/ToolCutOut.py:2568 appPlugins/ToolCutOut.py:2667
msgid "Gaps"
msgstr ""
-#: appDatabase.py:1228 appPlugins/ToolCutOut.py:2588
+#: appDatabase.py:1228 appPlugins/ToolCutOut.py:2570
msgid ""
"Number of gaps used for the Automatic cutout.\n"
"There can be maximum 8 bridges/gaps.\n"
@@ -1226,82 +1252,86 @@ msgid ""
"in the Tools Database."
msgstr ""
-#: appDatabase.py:1325 appEditors/AppTextEditor.py:351 appGUI/GUIElements.py:2717
-#: appGUI/GUIElements.py:2787 appGUI/GUIElements.py:2848 appGUI/GUIElements.py:2913
-#: appGUI/GUIElements.py:4307 appGUI/MainGUI.py:1667
-#: appGUI/preferences/PreferencesUIManager.py:1078
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:418 appMain.py:2755 appMain.py:4022
-#: appMain.py:4987 appMain.py:5246 appMain.py:10218
+#: appDatabase.py:1325 appEditors/AppTextEditor.py:365 appGUI/GUIElements.py:2769
+#: appGUI/GUIElements.py:2839 appGUI/GUIElements.py:2900 appGUI/GUIElements.py:2965
+#: appGUI/GUIElements.py:4416 appGUI/MainGUI.py:1713
+#: appGUI/preferences/PreferencesUIManager.py:1153
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:418 appMain.py:2758 appMain.py:4038
+#: appMain.py:5000 appMain.py:5263 appMain.py:10247 appMain.py:12007
msgid "Cancel"
msgstr ""
-#: appDatabase.py:1338 appDatabase.py:1349 appEditors/AppExcEditor.py:4577
-#: appEditors/AppExcEditor.py:4588 appEditors/appGCodeEditor.py:903
-#: appEditors/appGCodeEditor.py:914 appGUI/ObjectUI.py:158 appGUI/ObjectUI.py:169
-#: appPlugins/ToolAlignObjects.py:573 appPlugins/ToolAlignObjects.py:584
-#: appPlugins/ToolCalculators.py:1071 appPlugins/ToolCalculators.py:1082
-#: appPlugins/ToolCalibration.py:1420 appPlugins/ToolCalibration.py:1431
-#: appPlugins/ToolCopperThieving.py:1810 appPlugins/ToolCopperThieving.py:1821
-#: appPlugins/ToolCutOut.py:2848 appPlugins/ToolCutOut.py:2859
-#: appPlugins/ToolDblSided.py:1180 appPlugins/ToolDblSided.py:1191
-#: appPlugins/ToolDistance.py:847 appPlugins/ToolDistance.py:858
-#: appPlugins/ToolDrilling.py:3060 appPlugins/ToolDrilling.py:3071
-#: appPlugins/ToolEtchCompensation.py:531 appPlugins/ToolEtchCompensation.py:542
-#: appPlugins/ToolExtract.py:1436 appPlugins/ToolExtract.py:1447
-#: appPlugins/ToolFiducials.py:1136 appPlugins/ToolFiducials.py:1147
-#: appPlugins/ToolFilm.py:1892 appPlugins/ToolFilm.py:1903 appPlugins/ToolFollow.py:812
-#: appPlugins/ToolFollow.py:823 appPlugins/ToolImage.py:467 appPlugins/ToolImage.py:478
-#: appPlugins/ToolInvertGerber.py:338 appPlugins/ToolInvertGerber.py:349
-#: appPlugins/ToolIsolation.py:3962 appPlugins/ToolIsolation.py:3973
-#: appPlugins/ToolLevelling.py:2371 appPlugins/ToolLevelling.py:2382
-#: appPlugins/ToolMarkers.py:1559 appPlugins/ToolMarkers.py:1570
-#: appPlugins/ToolMilling.py:5125 appPlugins/ToolMilling.py:5136 appPlugins/ToolNCC.py:4760
-#: appPlugins/ToolNCC.py:4771 appPlugins/ToolObjectDistance.py:642
-#: appPlugins/ToolObjectDistance.py:653 appPlugins/ToolOptimal.py:737
-#: appPlugins/ToolOptimal.py:748 appPlugins/ToolPaint.py:3454 appPlugins/ToolPaint.py:3465
-#: appPlugins/ToolPanelize.py:1473 appPlugins/ToolPanelize.py:1484
-#: appPlugins/ToolPcbWizard.py:532 appPlugins/ToolPcbWizard.py:543
-#: appPlugins/ToolPunchGerber.py:2397 appPlugins/ToolPunchGerber.py:2408
-#: appPlugins/ToolQRCode.py:1048 appPlugins/ToolQRCode.py:1059
-#: appPlugins/ToolRulesCheck.py:1881 appPlugins/ToolRulesCheck.py:1892
-#: appPlugins/ToolSolderPaste.py:1714 appPlugins/ToolSolderPaste.py:1725
-#: appPlugins/ToolSub.py:995 appPlugins/ToolSub.py:1006 appPlugins/ToolTransform.py:1071
-#: appPlugins/ToolTransform.py:1082 appTool.py:312 appTool.py:323
+#: appDatabase.py:1338 appDatabase.py:1349 appEditors/AppExcEditor.py:4866
+#: appEditors/AppExcEditor.py:4877 appEditors/appGCodeEditor.py:906
+#: appEditors/appGCodeEditor.py:917 appEditors/exc_plugins/ExcCopyPlugin.py:459
+#: appEditors/exc_plugins/ExcCopyPlugin.py:468
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:336
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:345
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:402
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:411
+#: appEditors/geo_plugins/GeoCopyPlugin.py:459 appEditors/geo_plugins/GeoCopyPlugin.py:468
+#: appGUI/ObjectUI.py:158 appGUI/ObjectUI.py:169 appPlugins/ToolAlignObjects.py:560
+#: appPlugins/ToolAlignObjects.py:571 appPlugins/ToolCalculators.py:1068
+#: appPlugins/ToolCalculators.py:1079 appPlugins/ToolCopperThieving.py:1790
+#: appPlugins/ToolCopperThieving.py:1801 appPlugins/ToolCutOut.py:2830
+#: appPlugins/ToolCutOut.py:2841 appPlugins/ToolDblSided.py:1165
+#: appPlugins/ToolDblSided.py:1176 appPlugins/ToolDistance.py:992
+#: appPlugins/ToolDistance.py:1003 appPlugins/ToolDrilling.py:3040
+#: appPlugins/ToolDrilling.py:3051 appPlugins/ToolEtchCompensation.py:517
+#: appPlugins/ToolEtchCompensation.py:528 appPlugins/ToolExtract.py:1467
+#: appPlugins/ToolExtract.py:1478 appPlugins/ToolFiducials.py:1231
+#: appPlugins/ToolFiducials.py:1242 appPlugins/ToolFilm.py:1869 appPlugins/ToolFilm.py:1880
+#: appPlugins/ToolFollow.py:796 appPlugins/ToolFollow.py:807
+#: appPlugins/ToolInvertGerber.py:325 appPlugins/ToolInvertGerber.py:336
+#: appPlugins/ToolIsolation.py:4024 appPlugins/ToolIsolation.py:4035
+#: appPlugins/ToolLevelling.py:2352 appPlugins/ToolLevelling.py:2363
+#: appPlugins/ToolMarkers.py:1651 appPlugins/ToolMarkers.py:1662
+#: appPlugins/ToolMilling.py:5092 appPlugins/ToolMilling.py:5103 appPlugins/ToolNCC.py:4733
+#: appPlugins/ToolNCC.py:4744 appPlugins/ToolObjectDistance.py:629
+#: appPlugins/ToolObjectDistance.py:640 appPlugins/ToolOptimal.py:723
+#: appPlugins/ToolOptimal.py:734 appPlugins/ToolPaint.py:3435 appPlugins/ToolPaint.py:3446
+#: appPlugins/ToolPanelize.py:1457 appPlugins/ToolPanelize.py:1468
+#: appPlugins/ToolPcbWizard.py:521 appPlugins/ToolPcbWizard.py:532
+#: appPlugins/ToolPunchGerber.py:2410 appPlugins/ToolPunchGerber.py:2421
+#: appPlugins/ToolQRCode.py:1036 appPlugins/ToolQRCode.py:1047
+#: appPlugins/ToolRulesCheck.py:1872 appPlugins/ToolRulesCheck.py:1883
+#: appPlugins/ToolSolderPaste.py:1783 appPlugins/ToolSolderPaste.py:1794
+#: appPlugins/ToolSub.py:984 appPlugins/ToolSub.py:995 appPlugins/ToolTransform.py:1062
+#: appPlugins/ToolTransform.py:1073 appTool.py:333 appTool.py:344
msgid "Edited value is out of range"
msgstr ""
-#: appDatabase.py:1344 appDatabase.py:1351 appEditors/AppExcEditor.py:4583
-#: appEditors/AppExcEditor.py:4590 appEditors/appGCodeEditor.py:909
-#: appEditors/appGCodeEditor.py:916 appGUI/ObjectUI.py:164 appGUI/ObjectUI.py:171
-#: appPlugins/ToolAlignObjects.py:579 appPlugins/ToolAlignObjects.py:586
-#: appPlugins/ToolCalculators.py:1077 appPlugins/ToolCalculators.py:1084
-#: appPlugins/ToolCalibration.py:1426 appPlugins/ToolCalibration.py:1433
-#: appPlugins/ToolCopperThieving.py:1816 appPlugins/ToolCopperThieving.py:1823
-#: appPlugins/ToolCutOut.py:2854 appPlugins/ToolCutOut.py:2861
-#: appPlugins/ToolDblSided.py:1186 appPlugins/ToolDblSided.py:1193
-#: appPlugins/ToolDistance.py:853 appPlugins/ToolDistance.py:860
-#: appPlugins/ToolDrilling.py:3066 appPlugins/ToolDrilling.py:3073
-#: appPlugins/ToolEtchCompensation.py:537 appPlugins/ToolEtchCompensation.py:544
-#: appPlugins/ToolExtract.py:1442 appPlugins/ToolExtract.py:1449
-#: appPlugins/ToolFiducials.py:1142 appPlugins/ToolFiducials.py:1149
-#: appPlugins/ToolFilm.py:1898 appPlugins/ToolFilm.py:1905 appPlugins/ToolFollow.py:818
-#: appPlugins/ToolFollow.py:825 appPlugins/ToolImage.py:473 appPlugins/ToolImage.py:480
-#: appPlugins/ToolInvertGerber.py:344 appPlugins/ToolInvertGerber.py:351
-#: appPlugins/ToolIsolation.py:3968 appPlugins/ToolIsolation.py:3975
-#: appPlugins/ToolLevelling.py:2377 appPlugins/ToolLevelling.py:2384
-#: appPlugins/ToolMarkers.py:1565 appPlugins/ToolMarkers.py:1572
-#: appPlugins/ToolMilling.py:5131 appPlugins/ToolMilling.py:5138 appPlugins/ToolNCC.py:4766
-#: appPlugins/ToolNCC.py:4773 appPlugins/ToolObjectDistance.py:648
-#: appPlugins/ToolObjectDistance.py:655 appPlugins/ToolOptimal.py:743
-#: appPlugins/ToolOptimal.py:750 appPlugins/ToolPaint.py:3460 appPlugins/ToolPaint.py:3467
-#: appPlugins/ToolPanelize.py:1479 appPlugins/ToolPanelize.py:1486
-#: appPlugins/ToolPcbWizard.py:538 appPlugins/ToolPcbWizard.py:545
-#: appPlugins/ToolPunchGerber.py:2403 appPlugins/ToolPunchGerber.py:2410
-#: appPlugins/ToolQRCode.py:1054 appPlugins/ToolQRCode.py:1061
-#: appPlugins/ToolRulesCheck.py:1887 appPlugins/ToolRulesCheck.py:1894
-#: appPlugins/ToolSolderPaste.py:1720 appPlugins/ToolSolderPaste.py:1727
-#: appPlugins/ToolSub.py:1001 appPlugins/ToolSub.py:1008 appPlugins/ToolTransform.py:1077
-#: appPlugins/ToolTransform.py:1084 appTool.py:318 appTool.py:325
+#: appDatabase.py:1344 appDatabase.py:1351 appEditors/AppExcEditor.py:4872
+#: appEditors/AppExcEditor.py:4879 appEditors/appGCodeEditor.py:912
+#: appEditors/appGCodeEditor.py:919 appGUI/ObjectUI.py:164 appGUI/ObjectUI.py:171
+#: appPlugins/ToolAlignObjects.py:566 appPlugins/ToolAlignObjects.py:573
+#: appPlugins/ToolCalculators.py:1074 appPlugins/ToolCalculators.py:1081
+#: appPlugins/ToolCopperThieving.py:1796 appPlugins/ToolCopperThieving.py:1803
+#: appPlugins/ToolCutOut.py:2836 appPlugins/ToolCutOut.py:2843
+#: appPlugins/ToolDblSided.py:1171 appPlugins/ToolDblSided.py:1178
+#: appPlugins/ToolDistance.py:998 appPlugins/ToolDistance.py:1005
+#: appPlugins/ToolDrilling.py:3046 appPlugins/ToolDrilling.py:3053
+#: appPlugins/ToolEtchCompensation.py:523 appPlugins/ToolEtchCompensation.py:530
+#: appPlugins/ToolExtract.py:1473 appPlugins/ToolExtract.py:1480
+#: appPlugins/ToolFiducials.py:1237 appPlugins/ToolFiducials.py:1244
+#: appPlugins/ToolFilm.py:1875 appPlugins/ToolFilm.py:1882 appPlugins/ToolFollow.py:802
+#: appPlugins/ToolFollow.py:809 appPlugins/ToolInvertGerber.py:331
+#: appPlugins/ToolInvertGerber.py:338 appPlugins/ToolIsolation.py:4030
+#: appPlugins/ToolIsolation.py:4037 appPlugins/ToolLevelling.py:2358
+#: appPlugins/ToolLevelling.py:2365 appPlugins/ToolMarkers.py:1657
+#: appPlugins/ToolMarkers.py:1664 appPlugins/ToolMilling.py:5098
+#: appPlugins/ToolMilling.py:5105 appPlugins/ToolNCC.py:4739 appPlugins/ToolNCC.py:4746
+#: appPlugins/ToolObjectDistance.py:635 appPlugins/ToolObjectDistance.py:642
+#: appPlugins/ToolOptimal.py:729 appPlugins/ToolOptimal.py:736 appPlugins/ToolPaint.py:3441
+#: appPlugins/ToolPaint.py:3448 appPlugins/ToolPanelize.py:1463
+#: appPlugins/ToolPanelize.py:1470 appPlugins/ToolPcbWizard.py:527
+#: appPlugins/ToolPcbWizard.py:534 appPlugins/ToolPunchGerber.py:2416
+#: appPlugins/ToolPunchGerber.py:2423 appPlugins/ToolQRCode.py:1042
+#: appPlugins/ToolQRCode.py:1049 appPlugins/ToolRulesCheck.py:1878
+#: appPlugins/ToolRulesCheck.py:1885 appPlugins/ToolSolderPaste.py:1789
+#: appPlugins/ToolSolderPaste.py:1796 appPlugins/ToolSub.py:990 appPlugins/ToolSub.py:997
+#: appPlugins/ToolTransform.py:1068 appPlugins/ToolTransform.py:1075 appTool.py:339
+#: appTool.py:346
msgid "Edited value is within limits."
msgstr ""
@@ -1325,24 +1355,24 @@ msgstr ""
msgid "Delete from DB"
msgstr ""
-#: appDatabase.py:1620 appTranslation.py:216 appMain.py:4010 appMain.py:10206
+#: appDatabase.py:1620 appMain.py:4027 appMain.py:10235 appTranslation.py:216
msgid "Save changes"
msgstr ""
#: appDatabase.py:1724 appDatabase.py:2211 appDatabase.py:2663 appDatabase.py:2675
-#: appGUI/MainGUI.py:501 appPlugins/ToolCutOut.py:575 appPlugins/ToolCutOut.py:596
-#: appPlugins/ToolCutOut.py:633 appPlugins/ToolIsolation.py:2934
-#: appPlugins/ToolIsolation.py:2944 appPlugins/ToolIsolation.py:3024
-#: appPlugins/ToolMilling.py:2271 appPlugins/ToolNCC.py:3939 appPlugins/ToolNCC.py:3949
-#: appPlugins/ToolNCC.py:4025 appPlugins/ToolPaint.py:2807 appPlugins/ToolPaint.py:2817
-#: appPlugins/ToolPaint.py:2902 appMain.py:6636 appMain.py:6673 appMain.py:6760
-#: appMain.py:6772 appMain.py:6781 appMain.py:6791
+#: appGUI/MainGUI.py:540 appMain.py:6653 appMain.py:6690 appMain.py:6777 appMain.py:6789
+#: appMain.py:6798 appMain.py:6808 appPlugins/ToolCutOut.py:557 appPlugins/ToolCutOut.py:578
+#: appPlugins/ToolCutOut.py:615 appPlugins/ToolIsolation.py:2974
+#: appPlugins/ToolIsolation.py:2984 appPlugins/ToolIsolation.py:3064
+#: appPlugins/ToolMilling.py:2245 appPlugins/ToolNCC.py:3912 appPlugins/ToolNCC.py:3922
+#: appPlugins/ToolNCC.py:3998 appPlugins/ToolPaint.py:2788 appPlugins/ToolPaint.py:2798
+#: appPlugins/ToolPaint.py:2883
msgid "Tools Database"
msgstr ""
-#: appDatabase.py:1743 appDatabase.py:2197 appPlugins/ToolCutOut.py:470
-#: appPlugins/ToolDrilling.py:1170 appPlugins/ToolIsolation.py:1375
-#: appPlugins/ToolMilling.py:2112 appPlugins/ToolNCC.py:1232 appPlugins/ToolPaint.py:878
+#: appDatabase.py:1743 appDatabase.py:2197 appPlugins/ToolCutOut.py:452
+#: appPlugins/ToolDrilling.py:1148 appPlugins/ToolIsolation.py:1359
+#: appPlugins/ToolMilling.py:2086 appPlugins/ToolNCC.py:1213 appPlugins/ToolPaint.py:858
msgid "Failed to parse Tools DB file."
msgstr ""
@@ -1394,7 +1424,7 @@ msgstr ""
msgid "No Tool/row selected in the Tools Database table"
msgstr ""
-#: appDatabase.py:2643 appPlugins/ToolDrilling.py:1174
+#: appDatabase.py:2643 appPlugins/ToolDrilling.py:1152
msgid "Tools DB empty."
msgstr ""
@@ -1406,1546 +1436,727 @@ msgstr ""
msgid "Cancelled adding tool from DB."
msgstr ""
-#: appEditors/AppExcEditor.py:235 appEditors/AppExcEditor.py:259
-#: appEditors/AppExcEditor.py:355 appEditors/AppExcEditor.py:657
-#: appEditors/AppExcEditor.py:872 appEditors/AppExcEditor.py:3869
-#: appEditors/AppExcEditor.py:3880 appEditors/AppGerberEditor.py:248
-#: appEditors/AppGerberEditor.py:255
+#: appEditors/AppExcEditor.py:246 appEditors/AppExcEditor.py:304
+#: appEditors/AppExcEditor.py:533 appEditors/AppExcEditor.py:968
+#: appEditors/AppExcEditor.py:1027 appEditors/AppExcEditor.py:1349
+#: appEditors/AppGerberEditor.py:248 appEditors/AppGerberEditor.py:255
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:352
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:417
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:437
msgid "Click to place ..."
msgstr ""
-#: appEditors/AppExcEditor.py:243
+#: appEditors/AppExcEditor.py:254
msgid "To add a drill first select a tool"
msgstr ""
-#: appEditors/AppExcEditor.py:309 appEditors/AppExcEditor.py:601
-#: appEditors/AppExcEditor.py:830 appEditors/AppExcEditor.py:1242
-#: appEditors/AppExcEditor.py:1505 appEditors/AppExcEditor.py:1608
-#: appEditors/AppExcEditor.py:1723 appEditors/AppExcEditor.py:2527
-#: appEditors/AppExcEditor.py:3343 appEditors/AppExcEditor.py:3350
-#: appEditors/AppExcEditor.py:3800 appEditors/AppGeoEditor.py:1407
-#: appEditors/AppGeoEditor.py:1538 appEditors/AppGeoEditor.py:1540
-#: appEditors/AppGeoEditor.py:1596 appEditors/AppGeoEditor.py:2130
-#: appEditors/AppGeoEditor.py:2370 appEditors/AppGeoEditor.py:2445
-#: appEditors/AppGeoEditor.py:2524 appEditors/AppGeoEditor.py:2582
-#: appEditors/AppGeoEditor.py:2787 appEditors/AppGeoEditor.py:2866
-#: appEditors/AppGeoEditor.py:2999 appEditors/AppGeoEditor.py:3072
-#: appEditors/AppGeoEditor.py:3142 appEditors/AppGeoEditor.py:3168
-#: appEditors/AppGeoEditor.py:3196 appEditors/AppGeoEditor.py:3312
-#: appEditors/AppGeoEditor.py:4869 appEditors/AppGeoEditor.py:4883
-#: appEditors/AppGeoEditor.py:5491 appEditors/AppGeoEditor.py:5544
-#: appEditors/AppGeoEditor.py:5607 appEditors/AppGeoEditor.py:5633
-#: appEditors/AppGeoEditor.py:5658 appEditors/AppGeoEditor.py:5690
-#: appEditors/AppGeoEditor.py:5770 appEditors/AppGeoEditor.py:5836
-#: appEditors/AppGeoEditor.py:5904 appEditors/AppGeoEditor.py:6001
+#: appEditors/AppExcEditor.py:268 appEditors/AppExcEditor.py:287
+msgid "Drill"
+msgstr ""
+
+#: appEditors/AppExcEditor.py:368 appEditors/AppExcEditor.py:813
+#: appEditors/AppExcEditor.py:1166 appEditors/AppExcEditor.py:1727
+#: appEditors/AppExcEditor.py:2161 appEditors/AppExcEditor.py:2321
+#: appEditors/AppExcEditor.py:2436 appEditors/AppExcEditor.py:3253
+#: appEditors/AppExcEditor.py:4077 appEditors/AppExcEditor.py:4084
+#: appEditors/AppExcEditor.py:4549 appEditors/AppGeoEditor.py:673
+#: appEditors/AppGeoEditor.py:918 appEditors/AppGeoEditor.py:1034
+#: appEditors/AppGeoEditor.py:1231 appEditors/AppGeoEditor.py:1440
+#: appEditors/AppGeoEditor.py:1779 appEditors/AppGeoEditor.py:1892
+#: appEditors/AppGeoEditor.py:2225 appEditors/AppGeoEditor.py:2689
+#: appEditors/AppGeoEditor.py:2759 appEditors/AppGeoEditor.py:2785
+#: appEditors/AppGeoEditor.py:2813 appEditors/AppGeoEditor.py:2953
+#: appEditors/AppGeoEditor.py:4372 appEditors/AppGeoEditor.py:4386
+#: appEditors/AppGeoEditor.py:5087 appEditors/AppGeoEditor.py:5140
+#: appEditors/AppGeoEditor.py:5203 appEditors/AppGeoEditor.py:5229
+#: appEditors/AppGeoEditor.py:5254 appEditors/AppGeoEditor.py:5286
#: appEditors/AppGerberEditor.py:390 appEditors/AppGerberEditor.py:814
#: appEditors/AppGerberEditor.py:941 appEditors/AppGerberEditor.py:1253
#: appEditors/AppGerberEditor.py:1514 appEditors/AppGerberEditor.py:1724
#: appEditors/AppGerberEditor.py:2014 appEditors/AppGerberEditor.py:2310
#: appEditors/AppGerberEditor.py:2391 appEditors/AppGerberEditor.py:2538
-#: appEditors/AppGerberEditor.py:3251 appEditors/AppGerberEditor.py:5016
-#: appEditors/AppGerberEditor.py:5321 appEditors/AppGerberEditor.py:5339
-#: appEditors/AppGerberEditor.py:5789 appEditors/AppGerberEditor.py:5972
-#: appEditors/AppGerberEditor.py:6034 appEditors/AppGerberEditor.py:6081
-#: appEditors/AppGerberEditor.py:7479 appEditors/AppGerberEditor.py:7641
-#: appEditors/AppGerberEditor.py:7643 appEditors/AppGerberEditor.py:7714
-#: appGUI/MainGUI.py:3474 appGUI/MainGUI.py:3486 appObjects/FlatCAMGeometry.py:534
-#: appObjects/FlatCAMGeometry.py:1220 appObjects/FlatCAMGeometry.py:1299
-#: appObjects/FlatCAMGerber.py:427 appParsers/ParseGerber.py:2205
-#: appParsers/ParseGerber.py:2299 appParsers/ParseGerber.py:2374
-#: appParsers/ParseGerber.py:2448 appParsers/ParseGerber.py:2510
-#: appPlugins/ToolAlignObjects.py:289 appPlugins/ToolAlignObjects.py:311
-#: appPlugins/ToolCalculators.py:335 appPlugins/ToolCalculators.py:345
-#: appPlugins/ToolCalibration.py:329 appPlugins/ToolCutOut.py:1511
-#: appPlugins/ToolDistance.py:321 appPlugins/ToolDistance.py:374
-#: appPlugins/ToolDistance.py:411 appPlugins/ToolFiducials.py:652
-#: appPlugins/ToolFiducials.py:667 appPlugins/ToolFollow.py:338 appPlugins/ToolFollow.py:406
-#: appPlugins/ToolIsolation.py:1624 appPlugins/ToolMarkers.py:998 appPlugins/ToolMove.py:251
-#: appPlugins/ToolObjectDistance.py:440 appPlugins/ToolPaint.py:2335
-#: appPlugins/ToolPanelize.py:1110 appPlugins/ToolSolderPaste.py:892 appMain.py:5756
-#: appMain.py:5881 tclCommands/TclCommandPanelize.py:430
+#: appEditors/AppGerberEditor.py:3251 appEditors/AppGerberEditor.py:5024
+#: appEditors/AppGerberEditor.py:5329 appEditors/AppGerberEditor.py:5347
+#: appEditors/AppGerberEditor.py:5797 appEditors/AppGerberEditor.py:5980
+#: appEditors/AppGerberEditor.py:6042 appEditors/AppGerberEditor.py:6089
+#: appEditors/AppGerberEditor.py:7487 appEditors/AppGerberEditor.py:7649
+#: appEditors/AppGerberEditor.py:7651 appEditors/AppGerberEditor.py:7722
+#: appEditors/geo_plugins/GeoBufferPlugin.py:201
+#: appEditors/geo_plugins/GeoBufferPlugin.py:267
+#: appEditors/geo_plugins/GeoBufferPlugin.py:335
+#: appEditors/geo_plugins/GeoPaintPlugin.py:214
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:118
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:326
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:457
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:459
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:515 appGUI/MainGUI.py:3525
+#: appGUI/MainGUI.py:3560 appGUI/MainGUI.py:4069 appMain.py:5773 appMain.py:5898
+#: appObjects/GeometryObject.py:543 appObjects/GeometryObject.py:1229
+#: appObjects/GeometryObject.py:1308 appObjects/GerberObject.py:427
+#: appParsers/ParseGerber.py:2205 appParsers/ParseGerber.py:2299
+#: appParsers/ParseGerber.py:2374 appParsers/ParseGerber.py:2448
+#: appParsers/ParseGerber.py:2510 appPlugins/ToolAlignObjects.py:276
+#: appPlugins/ToolAlignObjects.py:298 appPlugins/ToolCalculators.py:332
+#: appPlugins/ToolCalculators.py:342 appPlugins/ToolCutOut.py:1493
+#: appPlugins/ToolDistance.py:367 appPlugins/ToolDistance.py:394
+#: appPlugins/ToolDistance.py:626 appPlugins/ToolFiducials.py:673
+#: appPlugins/ToolFiducials.py:688 appPlugins/ToolFollow.py:322 appPlugins/ToolFollow.py:390
+#: appPlugins/ToolIsolation.py:1608 appPlugins/ToolMarkers.py:1065
+#: appPlugins/ToolMove.py:244 appPlugins/ToolObjectDistance.py:427
+#: appPlugins/ToolPaint.py:2316 appPlugins/ToolPanelize.py:1094
+#: appPlugins/ToolSolderPaste.py:926 tclCommands/TclCommandPanelize.py:430
#: tclCommands/TclCommandPanelize.py:440 tclCommands/TclCommandSetOrigin.py:113
msgid "Done."
msgstr ""
-#: appEditors/AppExcEditor.py:363
+#: appEditors/AppExcEditor.py:449 appEditors/AppExcEditor.py:462
+#: appEditors/AppExcEditor.py:800 appEditors/AppExcEditor.py:1259
+#: appEditors/AppExcEditor.py:1272 appEditors/AppExcEditor.py:1714
+#: appEditors/AppGeoEditor.py:636 appEditors/AppGeoEditor.py:639
+#: appEditors/AppGeoEditor.py:1129 appEditors/AppGeoEditor.py:1137
+#: appEditors/AppGeoEditor.py:1335 appEditors/AppGeoEditor.py:1349
+#: appEditors/AppGeoEditor.py:1548 appEditors/AppGeoEditor.py:1562
+#: appEditors/AppGeoEditor.py:2083 appEditors/AppGeoEditor.py:2097
+#: appEditors/AppGeoEditor.py:2592 appEditors/AppGeoEditor.py:2606
+#: appEditors/AppGerberEditor.py:801 appEditors/AppGerberEditor.py:3925
+#: appEditors/AppGerberEditor.py:5976 appEditors/geo_plugins/GeoCirclePlugin.py:99
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:102
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:104 appMain.py:5307 appMain.py:5917
+#: appMain.py:9199 appMain.py:10630 appMain.py:10757 appMain.py:12238 appMain.py:12252
+#: appMain.py:12262 appMain.py:12279 appObjects/CNCJobObject.py:842
+#: appPlugins/ToolCopperThieving.py:337 appPlugins/ToolCopperThieving.py:932
+#: appPlugins/ToolCopperThieving.py:1144 appPlugins/ToolCutOut.py:750
+#: appPlugins/ToolCutOut.py:773 appPlugins/ToolCutOut.py:905 appPlugins/ToolCutOut.py:1159
+#: appPlugins/ToolCutOut.py:1310 appPlugins/ToolCutOut.py:1429 appPlugins/ToolCutOut.py:1447
+#: appPlugins/ToolCutOut.py:1461 appPlugins/ToolDblSided.py:586
+#: appPlugins/ToolDblSided.py:599 appPlugins/ToolDrilling.py:2013
+#: appPlugins/ToolExtract.py:424 appPlugins/ToolExtract.py:790 appPlugins/ToolExtract.py:839
+#: appPlugins/ToolExtract.py:848 appPlugins/ToolExtract.py:852
+#: appPlugins/ToolFiducials.py:352 appPlugins/ToolFiducials.py:626
+#: appPlugins/ToolFiducials.py:682 appPlugins/ToolFiducials.py:697
+#: appPlugins/ToolFilm.py:1019 appPlugins/ToolImage.py:274 appPlugins/ToolImage.py:336
+#: appPlugins/ToolIsolation.py:1513 appPlugins/ToolMarkers.py:375
+#: appPlugins/ToolMarkers.py:398 appPlugins/ToolMarkers.py:406 appPlugins/ToolMarkers.py:430
+#: appPlugins/ToolMarkers.py:901 appPlugins/ToolMarkers.py:1017
+#: appPlugins/ToolMarkers.py:1026 appPlugins/ToolMarkers.py:1063 appPlugins/ToolMove.py:195
+#: appPlugins/ToolPaint.py:2310 appPlugins/ToolSolderPaste.py:824
+#: appPlugins/ToolSolderPaste.py:1151 camlib.py:1224 camlib.py:2463 camlib.py:2536
+#: camlib.py:2604 camlib.py:2676 camlib.py:2679 camlib.py:5552 camlib.py:5971
+msgid "Failed."
+msgstr ""
+
+#: appEditors/AppExcEditor.py:541
msgid "To add an Drill Array first select a tool in Tool Table"
msgstr ""
-#: appEditors/AppExcEditor.py:379 appEditors/AppExcEditor.py:686
-#: appEditors/AppExcEditor.py:919 appEditors/AppExcEditor.py:1576
-#: appEditors/AppGerberEditor.py:481 appEditors/AppGerberEditor.py:2192
-#: appEditors/AppGerberEditor.py:2222 appGUI/MainGUI.py:4104
-msgid "Click on target location ..."
+#: appEditors/AppExcEditor.py:554 appEditors/AppExcEditor.py:572
+msgid "Drill Array"
msgstr ""
-#: appEditors/AppExcEditor.py:398
-msgid "Click on the Drill Circular Array Start position"
+#: appEditors/AppExcEditor.py:619 appEditors/AppExcEditor.py:1444
+msgid "Click on the Circular Array Start position"
msgstr ""
-#: appEditors/AppExcEditor.py:420 appEditors/AppExcEditor.py:960
-#: appEditors/AppGerberEditor.py:535
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:424
-msgid "The value is mistyped. Check the value"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:582 appEditors/AppExcEditor.py:1204
+#: appEditors/AppExcEditor.py:794 appEditors/AppExcEditor.py:1686
#: appEditors/AppGerberEditor.py:796
msgid "Too many items for the selected spacing angle."
msgstr ""
-#: appEditors/AppExcEditor.py:588 appEditors/AppExcEditor.py:1229
-#: appEditors/AppGerberEditor.py:801 appEditors/AppGerberEditor.py:3925
-#: appEditors/AppGerberEditor.py:5968 appObjects/FlatCAMCNCJob.py:832
-#: appPlugins/ToolCopperThieving.py:354 appPlugins/ToolCopperThieving.py:949
-#: appPlugins/ToolCopperThieving.py:1161 appPlugins/ToolCutOut.py:865
-#: appPlugins/ToolCutOut.py:888 appPlugins/ToolCutOut.py:1020 appPlugins/ToolCutOut.py:1177
-#: appPlugins/ToolCutOut.py:1328 appPlugins/ToolCutOut.py:1447 appPlugins/ToolCutOut.py:1465
-#: appPlugins/ToolCutOut.py:1479 appPlugins/ToolDblSided.py:600
-#: appPlugins/ToolDblSided.py:613 appPlugins/ToolDrilling.py:2035
-#: appPlugins/ToolExtract.py:401 appPlugins/ToolExtract.py:767 appPlugins/ToolExtract.py:816
-#: appPlugins/ToolExtract.py:825 appPlugins/ToolExtract.py:829
-#: appPlugins/ToolFiducials.py:344 appPlugins/ToolFiducials.py:605
-#: appPlugins/ToolFiducials.py:661 appPlugins/ToolFiducials.py:676
-#: appPlugins/ToolFilm.py:1028 appPlugins/ToolIsolation.py:1529
-#: appPlugins/ToolMarkers.py:341 appPlugins/ToolMarkers.py:364 appPlugins/ToolMarkers.py:834
-#: appPlugins/ToolMarkers.py:950 appPlugins/ToolMarkers.py:959 appPlugins/ToolMarkers.py:996
-#: appPlugins/ToolMove.py:202 appPlugins/ToolPaint.py:2329 appPlugins/ToolSolderPaste.py:793
-#: appMain.py:5290 appMain.py:5900 appMain.py:9171 appMain.py:10735 appMain.py:12027
-#: appMain.py:12041 appMain.py:12051 appMain.py:12068 camlib.py:1225 camlib.py:2464
-#: camlib.py:2537 camlib.py:2605 camlib.py:2677 camlib.py:2680 camlib.py:5544 camlib.py:5963
-msgid "Failed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:665
+#: appEditors/AppExcEditor.py:976
msgid "To add a slot first select a tool"
msgstr ""
-#: appEditors/AppExcEditor.py:725 appEditors/AppExcEditor.py:732
-#: appEditors/AppExcEditor.py:1087 appEditors/AppExcEditor.py:1094
-msgid "Value is missing or wrong format. Add it and retry."
+#: appEditors/AppExcEditor.py:992 appEditors/AppExcEditor.py:1010
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:168
+msgid "Slot"
msgstr ""
-#: appEditors/AppExcEditor.py:880
+#: appEditors/AppExcEditor.py:1357
msgid "To add an Slot Array first select a tool in Tool Table"
msgstr ""
-#: appEditors/AppExcEditor.py:938
-msgid "Click on the Slot Circular Array Start position"
+#: appEditors/AppExcEditor.py:1371 appEditors/AppExcEditor.py:1388
+msgid "Slot Array"
msgstr ""
-#: appEditors/AppExcEditor.py:963 appEditors/AppGerberEditor.py:538
-msgid "The value is mistyped. Check the value."
+#: appEditors/AppExcEditor.py:1915 appEditors/AppExcEditor.py:1928
+#: appEditors/exc_plugins/ExcResizePlugin.py:150
+#: appEditors/exc_plugins/ExcResizePlugin.py:165
+msgid "Resize"
msgstr ""
-#: appEditors/AppExcEditor.py:1298
+#: appEditors/AppExcEditor.py:1946
msgid "Click on the Drill(s) to resize ..."
msgstr ""
-#: appEditors/AppExcEditor.py:1328
+#: appEditors/AppExcEditor.py:1986
msgid "Resize drill(s) failed. Please enter a diameter for resize."
msgstr ""
-#: appEditors/AppExcEditor.py:1507 appEditors/AppExcEditor.py:1560
-#: appEditors/AppExcEditor.py:1571 appGUI/MainGUI.py:3738 appGUI/MainGUI.py:3823
-#: appGUI/MainGUI.py:3869 appGUI/MainGUI.py:3966 appGUI/MainGUI.py:4081
-#: appGUI/MainGUI.py:4110
+#: appEditors/AppExcEditor.py:2163
+msgid "Nothing selected"
+msgstr ""
+
+#: appEditors/AppExcEditor.py:2273 appEditors/AppExcEditor.py:2284 appGUI/MainGUI.py:3815
+#: appGUI/MainGUI.py:3901 appGUI/MainGUI.py:3948 appGUI/MainGUI.py:4078
+#: appGUI/MainGUI.py:4194 appGUI/MainGUI.py:4224
msgid "Cancelled. Nothing selected."
msgstr ""
-#: appEditors/AppExcEditor.py:1564 appEditors/AppGeoEditor.py:2821
-#: appEditors/AppGeoEditor.py:2841 appEditors/AppGerberEditor.py:2194
+#: appEditors/AppExcEditor.py:2277 appEditors/AppGeoEditor.py:1815
+#: appEditors/AppGeoEditor.py:1864 appEditors/AppGeoEditor.py:2150
+#: appEditors/AppGeoEditor.py:2199 appEditors/AppGerberEditor.py:2194
+#: appEditors/exc_plugins/ExcCopyPlugin.py:473 appEditors/exc_plugins/ExcCopyPlugin.py:495
+#: appEditors/exc_plugins/ExcCopyPlugin.py:504 appEditors/geo_plugins/GeoCopyPlugin.py:473
+#: appEditors/geo_plugins/GeoCopyPlugin.py:495 appEditors/geo_plugins/GeoCopyPlugin.py:504
msgid "Click on reference location ..."
msgstr ""
-#: appEditors/AppExcEditor.py:1924 appEditors/AppGeoEditor.py:4190
-#: appEditors/AppGerberEditor.py:3505 appEditors/AppGerberEditor.py:6297
-#: appEditors/AppGerberEditor.py:6594 appGUI/GUIElements.py:469 appGUI/GUIElements.py:1224
-#: appGUI/GUIElements.py:1628 appGUI/GUIElements.py:1884 appGUI/GUIElements.py:2170
-#: appGUI/GUIElements.py:4360 appGUI/MainGUI.py:428 appGUI/MainGUI.py:768
-#: appGUI/MainGUI.py:827 appGUI/MainGUI.py:907 appGUI/MainGUI.py:1050 appGUI/MainGUI.py:1300
-#: appGUI/MainGUI.py:1857 appGUI/MainGUI.py:2422 appGUI/MainGUI.py:2664
-#: appGUI/MainGUI.py:5408 appGUI/preferences/gerber/GerberGenPrefGroupUI.py:396
-#: appPlugins/ToolDrilling.py:313 appPlugins/ToolIsolation.py:231
-#: appPlugins/ToolMilling.py:431 appPlugins/ToolMilling.py:443 appPlugins/ToolNCC.py:233
-#: appPlugins/ToolPaint.py:230 appPlugins/ToolSolderPaste.py:139 appMain.py:7232
+#: appEditors/AppExcEditor.py:2289 appEditors/AppGerberEditor.py:481
+#: appEditors/AppGerberEditor.py:2192 appEditors/AppGerberEditor.py:2222
+#: appGUI/MainGUI.py:4217
+msgid "Click on target location ..."
+msgstr ""
+
+#: appEditors/AppExcEditor.py:2656 appEditors/AppGeoEditor.py:3774
+#: appEditors/AppGerberEditor.py:3505 appEditors/AppGerberEditor.py:6305
+#: appEditors/AppGerberEditor.py:6602 appGUI/GUIElements.py:469 appGUI/GUIElements.py:1245
+#: appGUI/GUIElements.py:1489 appGUI/GUIElements.py:1928 appGUI/GUIElements.py:2214
+#: appGUI/GUIElements.py:4478 appGUI/MainGUI.py:467 appGUI/MainGUI.py:752
+#: appGUI/MainGUI.py:811 appGUI/MainGUI.py:870 appGUI/MainGUI.py:950 appGUI/MainGUI.py:1093
+#: appGUI/MainGUI.py:1239 appGUI/MainGUI.py:1300 appGUI/MainGUI.py:1345
+#: appGUI/MainGUI.py:1905 appGUI/MainGUI.py:2472 appGUI/MainGUI.py:2616
+#: appGUI/MainGUI.py:2668 appGUI/MainGUI.py:2714 appGUI/MainGUI.py:5283
+#: appGUI/MainGUI.py:5383 appGUI/MainGUI.py:5524
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:396 appMain.py:7252
+#: appPlugins/ToolDrilling.py:291 appPlugins/ToolIsolation.py:212
+#: appPlugins/ToolMilling.py:405 appPlugins/ToolMilling.py:417 appPlugins/ToolNCC.py:213
+#: appPlugins/ToolPaint.py:209 appPlugins/ToolSolderPaste.py:124
msgid "Delete"
msgstr ""
-#: appEditors/AppExcEditor.py:2153 appObjects/FlatCAMExcellon.py:385
-#: appPlugins/ToolDrilling.py:772 appPlugins/ToolMilling.py:1210
-#: appPlugins/ToolMilling.py:4090
+#: appEditors/AppExcEditor.py:2879 appObjects/ExcellonObject.py:385
+#: appPlugins/ToolDrilling.py:750 appPlugins/ToolMilling.py:1183
+#: appPlugins/ToolMilling.py:4057
msgid "Total Drills"
msgstr ""
-#: appEditors/AppExcEditor.py:2185 appObjects/FlatCAMExcellon.py:419
-#: appPlugins/ToolDrilling.py:799 appPlugins/ToolMilling.py:1237
-#: appPlugins/ToolMilling.py:4114
+#: appEditors/AppExcEditor.py:2911 appObjects/ExcellonObject.py:419
+#: appPlugins/ToolDrilling.py:777 appPlugins/ToolMilling.py:1210
+#: appPlugins/ToolMilling.py:4081
msgid "Total Slots"
msgstr ""
-#: appEditors/AppExcEditor.py:2263 appEditors/AppGeoEditor.py:4089
-#: appEditors/AppGerberEditor.py:4275 appEditors/appGCodeEditor.py:606
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:184 appObjects/FlatCAMCNCJob.py:581
-#: appObjects/FlatCAMDocument.py:193 appObjects/FlatCAMExcellon.py:219
-#: appObjects/FlatCAMGeometry.py:449 appObjects/FlatCAMGerber.py:226
-#: appObjects/FlatCAMScript.py:177 appPlugins/ToolCutOut.py:307
-#: appPlugins/ToolDblSided.py:224 appPlugins/ToolDrilling.py:561
-#: appPlugins/ToolFiducials.py:211 appPlugins/ToolFilm.py:275 appPlugins/ToolFollow.py:179
-#: appPlugins/ToolIsolation.py:469 appPlugins/ToolLevelling.py:404
-#: appPlugins/ToolMarkers.py:231 appPlugins/ToolMilling.py:716 appPlugins/ToolNCC.py:422
-#: appPlugins/ToolPaint.py:445 appPlugins/ToolPanelize.py:285
-#: appPlugins/ToolPunchGerber.py:391 appPlugins/ToolQRCode.py:202 appPlugins/ToolSub.py:239
+#: appEditors/AppExcEditor.py:2989 appEditors/AppGeoEditor.py:3706
+#: appEditors/AppGerberEditor.py:4275 appEditors/appGCodeEditor.py:609
+#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:184 appObjects/CNCJobObject.py:603
+#: appObjects/DocumentObject.py:193 appObjects/ExcellonObject.py:219
+#: appObjects/FlatCAMScript.py:177 appObjects/GeometryObject.py:458
+#: appObjects/GerberObject.py:226 appPlugins/ToolCutOut.py:289
+#: appPlugins/ToolDblSided.py:209 appPlugins/ToolDrilling.py:539
+#: appPlugins/ToolFiducials.py:209 appPlugins/ToolFilm.py:259 appPlugins/ToolFollow.py:163
+#: appPlugins/ToolIsolation.py:453 appPlugins/ToolLevelling.py:385
+#: appPlugins/ToolMarkers.py:226 appPlugins/ToolMilling.py:690 appPlugins/ToolNCC.py:402
+#: appPlugins/ToolPaint.py:424 appPlugins/ToolPanelize.py:269
+#: appPlugins/ToolPunchGerber.py:407 appPlugins/ToolQRCode.py:184 appPlugins/ToolSub.py:225
msgid "Beginner"
msgstr ""
-#: appEditors/AppExcEditor.py:2274 appEditors/AppGeoEditor.py:4102
-#: appEditors/AppGerberEditor.py:4288 appEditors/appGCodeEditor.py:619
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:185 appObjects/FlatCAMCNCJob.py:591
-#: appObjects/FlatCAMDocument.py:202 appObjects/FlatCAMExcellon.py:236
-#: appObjects/FlatCAMGeometry.py:458 appObjects/FlatCAMGerber.py:241
-#: appObjects/FlatCAMScript.py:186 appPlugins/ToolCutOut.py:343
-#: appPlugins/ToolDblSided.py:238 appPlugins/ToolDrilling.py:604
-#: appPlugins/ToolFiducials.py:226 appPlugins/ToolFilm.py:292 appPlugins/ToolFollow.py:191
-#: appPlugins/ToolIsolation.py:526 appPlugins/ToolLevelling.py:419
-#: appPlugins/ToolMarkers.py:249 appPlugins/ToolMilling.py:777 appPlugins/ToolNCC.py:460
-#: appPlugins/ToolPaint.py:470 appPlugins/ToolPanelize.py:297
-#: appPlugins/ToolPunchGerber.py:403 appPlugins/ToolQRCode.py:216 appPlugins/ToolSub.py:250
+#: appEditors/AppExcEditor.py:3000 appEditors/AppGeoEditor.py:3719
+#: appEditors/AppGerberEditor.py:4288 appEditors/appGCodeEditor.py:622
+#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:185 appObjects/CNCJobObject.py:613
+#: appObjects/DocumentObject.py:202 appObjects/ExcellonObject.py:236
+#: appObjects/FlatCAMScript.py:186 appObjects/GeometryObject.py:467
+#: appObjects/GerberObject.py:241 appPlugins/ToolCutOut.py:325
+#: appPlugins/ToolDblSided.py:223 appPlugins/ToolDrilling.py:582
+#: appPlugins/ToolFiducials.py:224 appPlugins/ToolFilm.py:276 appPlugins/ToolFollow.py:175
+#: appPlugins/ToolIsolation.py:510 appPlugins/ToolLevelling.py:400
+#: appPlugins/ToolMarkers.py:244 appPlugins/ToolMilling.py:751 appPlugins/ToolNCC.py:440
+#: appPlugins/ToolPaint.py:449 appPlugins/ToolPanelize.py:281
+#: appPlugins/ToolPunchGerber.py:419 appPlugins/ToolQRCode.py:198 appPlugins/ToolSub.py:236
msgid "Advanced"
msgstr ""
-#: appEditors/AppExcEditor.py:2297 appObjects/FlatCAMGeometry.py:710
-#: appObjects/FlatCAMGeometry.py:1369 appPlugins/ToolDrilling.py:1800
-#: appPlugins/ToolIsolation.py:1517 appPlugins/ToolIsolation.py:1985
-#: appPlugins/ToolMilling.py:2344 appPlugins/ToolMilling.py:3124
-#: appPlugins/ToolMilling.py:3897 appPlugins/ToolNCC.py:1421 appPlugins/ToolNCC.py:1559
-#: appPlugins/ToolPaint.py:1044 appPlugins/ToolPaint.py:1182 appPlugins/ToolPaint.py:1891
-#: appPlugins/ToolSolderPaste.py:518 appPlugins/ToolSolderPaste.py:591
+#: appEditors/AppExcEditor.py:3023 appObjects/GeometryObject.py:719
+#: appObjects/GeometryObject.py:1378 appPlugins/ToolDrilling.py:1778
+#: appPlugins/ToolIsolation.py:1501 appPlugins/ToolIsolation.py:1991
+#: appPlugins/ToolMilling.py:2318 appPlugins/ToolMilling.py:3091
+#: appPlugins/ToolMilling.py:3864 appPlugins/ToolNCC.py:1402 appPlugins/ToolNCC.py:1540
+#: appPlugins/ToolPaint.py:1024 appPlugins/ToolPaint.py:1162 appPlugins/ToolPaint.py:1872
+#: appPlugins/ToolSolderPaste.py:550 appPlugins/ToolSolderPaste.py:622
msgid "Wrong value format entered, use a number."
msgstr ""
-#: appEditors/AppExcEditor.py:2308
+#: appEditors/AppExcEditor.py:3034
msgid ""
"Tool already in the original or actual tool list.\n"
"Save and reedit Excellon if you need to add this tool. "
msgstr ""
-#: appEditors/AppExcEditor.py:2316 appGUI/MainGUI.py:4146
+#: appEditors/AppExcEditor.py:3042 appGUI/MainGUI.py:4260
msgid "Added new tool with dia"
msgstr ""
-#: appEditors/AppExcEditor.py:2350
+#: appEditors/AppExcEditor.py:3076
msgid "Select a tool in Tool Table"
msgstr ""
-#: appEditors/AppExcEditor.py:2380
+#: appEditors/AppExcEditor.py:3106
msgid "Deleted tool with diameter"
msgstr ""
-#: appEditors/AppExcEditor.py:3134
+#: appEditors/AppExcEditor.py:3868
msgid "There are no Tools definitions in the file. Aborting Excellon creation."
msgstr ""
-#: appEditors/AppExcEditor.py:3138 appEditors/AppGerberEditor.py:4996
-#: appObjects/AppObject.py:170 appObjects/FlatCAMGeometry.py:652
-#: appParsers/ParseExcellon.py:976 appPlugins/ToolMilling.py:3061
-#: appPlugins/ToolPcbWizard.py:354 appPlugins/ToolSolderPaste.py:973 appMain.py:6716
-#: appMain.py:8758 appMain.py:11475 appMain.py:11546 appMain.py:11682 appMain.py:11747
+#: appEditors/AppExcEditor.py:3872 appEditors/AppGerberEditor.py:5004 appMain.py:6733
+#: appMain.py:8786 appMain.py:11497 appMain.py:11568 appMain.py:11764 appMain.py:11829
+#: appObjects/AppObject.py:170 appObjects/GeometryObject.py:661
+#: appParsers/ParseExcellon.py:976 appPlugins/ToolMilling.py:3025
+#: appPlugins/ToolPcbWizard.py:343 appPlugins/ToolSolderPaste.py:1005
msgid "An internal error has occurred. See shell.\n"
msgstr ""
-#: appEditors/AppExcEditor.py:3143 appObjects/FlatCAMGeometry.py:957
-#: appObjects/FlatCAMGeometry.py:962 appObjects/FlatCAMGeometry.py:1120
-#: appPlugins/ToolMilling.py:3527 appPlugins/ToolMilling.py:3531 appPlugins/ToolSub.py:480
-#: appPlugins/ToolSub.py:674
+#: appEditors/AppExcEditor.py:3877 appObjects/GeometryObject.py:966
+#: appObjects/GeometryObject.py:971 appObjects/GeometryObject.py:1129
+#: appPlugins/ToolMilling.py:3494 appPlugins/ToolMilling.py:3498 appPlugins/ToolSub.py:468
+#: appPlugins/ToolSub.py:663
msgid "Generating"
msgstr ""
-#: appEditors/AppExcEditor.py:3165
+#: appEditors/AppExcEditor.py:3899
msgid "Excellon editing finished."
msgstr ""
-#: appEditors/AppExcEditor.py:3181
+#: appEditors/AppExcEditor.py:3915
msgid "Cancelled. There is no Tool/Drill selected"
msgstr ""
-#: appEditors/AppExcEditor.py:3874 appEditors/AppExcEditor.py:3885
-#: appEditors/AppGerberEditor.py:5875
-msgid "Click on the circular array Center position"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4018 appGUI/MainGUI.py:740 appGUI/ObjectUI.py:650
+#: appEditors/AppExcEditor.py:4718 appGUI/MainGUI.py:783 appGUI/ObjectUI.py:650
msgid "Excellon Editor"
msgstr ""
-#: appEditors/AppExcEditor.py:4028 appEditors/AppGeoEditor.py:3446
-#: appEditors/AppGerberEditor.py:6144 appEditors/appGCodeEditor.py:779 appGUI/ObjectUI.py:72
-#: appPlugins/ToolCutOut.py:2267 appPlugins/ToolDblSided.py:725
-#: appPlugins/ToolDrilling.py:2411 appPlugins/ToolFiducials.py:832
-#: appPlugins/ToolFilm.py:1266 appPlugins/ToolFollow.py:703 appPlugins/ToolIsolation.py:3337
-#: appPlugins/ToolLevelling.py:1772 appPlugins/ToolMarkers.py:1167
-#: appPlugins/ToolMilling.py:3964 appPlugins/ToolNCC.py:4079 appPlugins/ToolPaint.py:2956
-#: appPlugins/ToolPanelize.py:1168 appPlugins/ToolPunchGerber.py:2006
-#: appPlugins/ToolQRCode.py:755 appPlugins/ToolSub.py:803
+#: appEditors/AppExcEditor.py:4728 appEditors/AppGeoEditor.py:3093
+#: appEditors/AppGerberEditor.py:6152 appEditors/appGCodeEditor.py:782 appGUI/ObjectUI.py:72
+#: appPlugins/ToolCutOut.py:2249 appPlugins/ToolDblSided.py:711
+#: appPlugins/ToolDrilling.py:2391 appPlugins/ToolFiducials.py:919
+#: appPlugins/ToolFilm.py:1258 appPlugins/ToolFollow.py:687 appPlugins/ToolIsolation.py:3383
+#: appPlugins/ToolLevelling.py:1753 appPlugins/ToolMarkers.py:1241
+#: appPlugins/ToolMilling.py:3931 appPlugins/ToolNCC.py:4052 appPlugins/ToolPaint.py:2937
+#: appPlugins/ToolPanelize.py:1152 appPlugins/ToolPunchGerber.py:2019
+#: appPlugins/ToolQRCode.py:743 appPlugins/ToolSub.py:792
msgid ""
"Beginner Mode - many parameters are hidden.\n"
"Advanced Mode - full control.\n"
"Permanent change is done in 'Preferences' menu."
msgstr ""
-#: appEditors/AppExcEditor.py:4042 appEditors/AppGerberEditor.py:6156
-#: appEditors/appGCodeEditor.py:791
+#: appEditors/AppExcEditor.py:4742 appEditors/AppGerberEditor.py:6164
+#: appEditors/appGCodeEditor.py:794
msgid "Name:"
msgstr ""
-#: appEditors/AppExcEditor.py:4049 appGUI/ObjectUI.py:287 appGUI/ObjectUI.py:694
-#: appGUI/ObjectUI.py:1024 appGUI/ObjectUI.py:1036 appGUI/ObjectUI.py:1437
-#: appPlugins/ToolDrilling.py:2452 appPlugins/ToolIsolation.py:3371
-#: appPlugins/ToolMilling.py:4035 appPlugins/ToolNCC.py:4141 appPlugins/ToolPaint.py:3018
-#: appPlugins/ToolSolderPaste.py:1251
+#: appEditors/AppExcEditor.py:4749 appGUI/ObjectUI.py:287 appGUI/ObjectUI.py:694
+#: appGUI/ObjectUI.py:1024 appGUI/ObjectUI.py:1036 appGUI/ObjectUI.py:1444
+#: appPlugins/ToolDrilling.py:2432 appPlugins/ToolIsolation.py:3417
+#: appPlugins/ToolMilling.py:4002 appPlugins/ToolNCC.py:4114 appPlugins/ToolPaint.py:2999
+#: appPlugins/ToolSolderPaste.py:1284
msgid "Tools Table"
msgstr ""
-#: appEditors/AppExcEditor.py:4051
+#: appEditors/AppExcEditor.py:4751
msgid ""
"Tools in this Excellon object\n"
"when are used for drilling."
msgstr ""
-#: appEditors/AppExcEditor.py:4072
+#: appEditors/AppExcEditor.py:4772
msgid "Convert Slots"
msgstr ""
-#: appEditors/AppExcEditor.py:4076
+#: appEditors/AppExcEditor.py:4776
msgid "Convert the slots in the selected tools to drills."
msgstr ""
-#: appEditors/AppExcEditor.py:4086
+#: appEditors/AppExcEditor.py:4786
msgid "Add/Delete Tool"
msgstr ""
-#: appEditors/AppExcEditor.py:4088
+#: appEditors/AppExcEditor.py:4788
msgid ""
"Add/Delete a tool to the tool list\n"
"for this Excellon object."
msgstr ""
-#: appEditors/AppExcEditor.py:4100 appEditors/AppGeoEditor.py:508
+#: appEditors/AppExcEditor.py:4800 appEditors/geo_plugins/GeoPaintPlugin.py:242
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:44
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:127 appPlugins/ToolCutOut.py:2348
-#: appPlugins/ToolCutOut.py:2534 appPlugins/ToolIsolation.py:3443
-#: appPlugins/ToolMilling.py:4226 appPlugins/ToolNCC.py:4227 appPlugins/ToolNCC.py:4240
-#: appPlugins/ToolPaint.py:3097
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:127 appPlugins/ToolCutOut.py:2330
+#: appPlugins/ToolCutOut.py:2516 appPlugins/ToolIsolation.py:3489
+#: appPlugins/ToolMilling.py:4193 appPlugins/ToolNCC.py:4200 appPlugins/ToolNCC.py:4213
+#: appPlugins/ToolPaint.py:3078
msgid "Tool Dia"
msgstr ""
-#: appEditors/AppExcEditor.py:4102
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:56
-#: appPlugins/ToolIsolation.py:3445 appPlugins/ToolMilling.py:4228
-#: appPlugins/ToolNCC.py:4229
+#: appEditors/AppExcEditor.py:4802
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
+#: appPlugins/ToolIsolation.py:3491 appPlugins/ToolMilling.py:4195
+#: appPlugins/ToolNCC.py:4202
msgid "Diameter for the new tool"
msgstr ""
-#: appEditors/AppExcEditor.py:4114 appEditors/AppGeoEditor.py:763
-#: appEditors/AppGerberEditor.py:6290 appEditors/AppGerberEditor.py:6829
+#: appEditors/AppExcEditor.py:4814 appEditors/AppGerberEditor.py:6298
+#: appEditors/AppGerberEditor.py:6837 appEditors/exc_plugins/ExcCopyPlugin.py:441
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:322
+#: appEditors/exc_plugins/ExcDrillPlugin.py:198
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:385
+#: appEditors/exc_plugins/ExcSlotPlugin.py:262 appEditors/geo_plugins/GeoCirclePlugin.py:128
+#: appEditors/geo_plugins/GeoCirclePlugin.py:264 appEditors/geo_plugins/GeoCopyPlugin.py:441
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:161
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:323
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:655
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:388
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:340
-#: appPlugins/ToolCopperThieving.py:1753 appPlugins/ToolDblSided.py:945
-#: appPlugins/ToolLevelling.py:2100 appPlugins/ToolNCC.py:227 appPlugins/ToolPaint.py:224
-#: appPlugins/ToolSolderPaste.py:136 appPlugins/ToolTransform.py:639 appMain.py:7230
+#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:340 appMain.py:7250
+#: appPlugins/ToolCopperThieving.py:1733 appPlugins/ToolDblSided.py:931
+#: appPlugins/ToolLevelling.py:2081 appPlugins/ToolNCC.py:207 appPlugins/ToolPaint.py:203
+#: appPlugins/ToolSolderPaste.py:121 appPlugins/ToolTransform.py:630
msgid "Add"
msgstr ""
-#: appEditors/AppExcEditor.py:4117
+#: appEditors/AppExcEditor.py:4817
msgid ""
"Add a new tool to the tool list\n"
"with the diameter specified above."
msgstr ""
-#: appEditors/AppExcEditor.py:4126
+#: appEditors/AppExcEditor.py:4826
msgid "Delete Tool"
msgstr ""
-#: appEditors/AppExcEditor.py:4129
+#: appEditors/AppExcEditor.py:4829
msgid ""
"Delete a tool in the tool list\n"
"by selecting a row in the tool table."
msgstr ""
-#: appEditors/AppExcEditor.py:4152
-msgid "Resize Tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4154
-msgid "Resize a drill or a selection of drills."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4159
-msgid "Resize Dia"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4161
-msgid "Diameter to resize to."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4175
-msgid "Resize"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4178
-msgid "Resize drill(s)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4207 appGUI/MainGUI.py:745 appGUI/MainGUI.py:1184
-#: appGUI/MainGUI.py:1844 appGUI/MainGUI.py:2554 appGUI/MainGUI.py:5257
-msgid "Add Drill Array"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4209
-msgid "Add an array of drills (linear or circular array)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4215 appEditors/AppExcEditor.py:4427
-#: appEditors/AppGeoEditor.py:3479 appEditors/AppGerberEditor.py:4593
-#: appEditors/AppGerberEditor.py:6182 appEditors/AppGerberEditor.py:6255
-#: appEditors/AppGerberEditor.py:6634 appGUI/ObjectUI.py:334
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:167
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:62
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:126
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:40
-#: appPlugins/ToolCopperThieving.py:1392 appPlugins/ToolCutOut.py:2311
-#: appPlugins/ToolCutOut.py:2497 appPlugins/ToolDblSided.py:1072
-#: appPlugins/ToolExtract.py:1077 appPlugins/ToolFilm.py:1294 appPlugins/ToolFilm.py:1370
-#: appPlugins/ToolFilm.py:1445 appPlugins/ToolIsolation.py:3840
-#: appPlugins/ToolMarkers.py:1220 appPlugins/ToolMarkers.py:1482
-#: appPlugins/ToolMilling.py:3996 appPlugins/ToolNCC.py:4107 appPlugins/ToolNCC.py:4574
-#: appPlugins/ToolObjectDistance.py:474 appPlugins/ToolPaint.py:2984
-#: appPlugins/ToolPaint.py:3324 appPlugins/ToolPunchGerber.py:2107
-#: appPlugins/ToolPunchGerber.py:2318 appPlugins/ToolTransform.py:646
-msgid "Type"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4217
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4221 appEditors/AppExcEditor.py:4433
-#: appEditors/AppGerberEditor.py:6640
-msgid "Linear"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4222 appEditors/AppExcEditor.py:4434
-#: appEditors/AppGerberEditor.py:6641
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:43
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:162
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:99
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:43
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:159
-#: appPlugins/ToolExtract.py:1033 appPlugins/ToolExtract.py:1167
-#: appPlugins/ToolFiducials.py:1034 appPlugins/ToolPunchGerber.py:2063
-#: appPlugins/ToolPunchGerber.py:2219
-msgid "Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4228 appEditors/AppExcEditor.py:4440
-msgid "Number"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4229
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:69
-msgid "Specify how many drills to be in the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4248 appEditors/AppExcEditor.py:4305
-#: appEditors/AppExcEditor.py:4369 appEditors/AppExcEditor.py:4461
-#: appEditors/AppExcEditor.py:4519 appEditors/AppGeoEditor.py:2209
-#: appEditors/AppGerberEditor.py:1824 appEditors/AppGerberEditor.py:6667
-#: appEditors/AppGerberEditor.py:6721
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:202
-msgid "Direction"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4250 appEditors/AppExcEditor.py:4463
-#: appEditors/AppGerberEditor.py:6669
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:264
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:134
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4256 appEditors/AppExcEditor.py:4377
-#: appEditors/AppExcEditor.py:4469 appEditors/AppGerberEditor.py:6675
-#: appGUI/GUIElements.py:5208 appGUI/MainGUI.py:489 appGUI/MainGUI.py:705
-#: appGUI/MainGUI.py:4885 appGUI/MainGUI.py:5153
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:211
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:270
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:140
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:181 appPlugins/ToolFilm.py:1519
-msgid "X"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4257 appEditors/AppExcEditor.py:4378
-#: appEditors/AppExcEditor.py:4470 appEditors/AppGerberEditor.py:6676
-#: appGUI/GUIElements.py:5215 appGUI/MainGUI.py:492 appGUI/MainGUI.py:4886
-#: appGUI/MainGUI.py:5154 appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:101
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:212
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:271
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:141
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:182 appPlugins/ToolFilm.py:1520
-msgid "Y"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4258 appEditors/AppExcEditor.py:4277
-#: appEditors/AppExcEditor.py:4316 appEditors/AppExcEditor.py:4379
-#: appEditors/AppExcEditor.py:4385 appEditors/AppExcEditor.py:4471
-#: appEditors/AppExcEditor.py:4491 appEditors/AppExcEditor.py:4530
-#: appEditors/AppGeoEditor.py:778 appEditors/AppGerberEditor.py:6677
-#: appEditors/AppGerberEditor.py:6697 appEditors/AppGerberEditor.py:6734
-#: appEditors/AppGerberEditor.py:6844
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:121
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:213
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:218
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:272
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:142
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:133
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:102 appPlugins/ToolDistance.py:803
-#: appPlugins/ToolFilm.py:1452 appPlugins/ToolObjectDistance.py:568
-#: appPlugins/ToolTransform.py:692
-msgid "Angle"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4264 appEditors/AppExcEditor.py:4477
-#: appEditors/AppGerberEditor.py:6683
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:108
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:278
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:295 appPlugins/ToolCutOut.py:2764
-msgid "Pitch"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4266 appEditors/AppExcEditor.py:4479
-#: appEditors/AppGerberEditor.py:6685
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:110
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
-msgid "Pitch = Distance between elements of the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4279 appEditors/AppExcEditor.py:4493
-#: appEditors/AppGerberEditor.py:6699
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360.00 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4306 appEditors/AppExcEditor.py:4520
-#: appEditors/AppGerberEditor.py:6723
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:149
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:321
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:188
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4309 appEditors/AppExcEditor.py:4523
-#: appEditors/AppGerberEditor.py:6727
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:153
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:325
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:192
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:371
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:404
-msgid "CW"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4310 appEditors/AppExcEditor.py:4524
-#: appEditors/AppGerberEditor.py:6728
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:154
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:326
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:193
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:372
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:405
-msgid "CCW"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4317 appEditors/AppExcEditor.py:4531
-#: appEditors/AppGerberEditor.py:6736
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:123
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:334
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:162
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:201
-msgid "Angle at which each element in circular array is placed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4347
-msgid "Slot Parameters"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4349
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4355 appEditors/AppGeoEditor.py:3559
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:186
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:68
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:133
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:68 appObjects/FlatCAMObj.py:942
-#: appPlugins/ToolFilm.py:1376 appPlugins/ToolFilm.py:1452 appPlugins/ToolMarkers.py:1248
-#: appPlugins/ToolReport.py:607
-msgid "Length"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4357
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-msgid "Length. The length of the slot."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4371
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:204
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4387
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:220
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360.00 degrees.\n"
-"Max value is: 360.00 degrees."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4419
-msgid "Slot Array Parameters"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4421
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4429
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4441
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:251
-msgid "Specify how many slots to be in the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4545 appEditors/AppGeoEditor.py:3637
-#: appEditors/AppGerberEditor.py:6751 appEditors/appGCodeEditor.py:74
-#: appEditors/appGCodeEditor.py:75 appEditors/appGCodeEditor.py:886 appGUI/MainGUI.py:351
-#: appGUI/MainGUI.py:1861 appMain.py:2744
+#: appEditors/AppExcEditor.py:4843 appEditors/AppGeoEditor.py:3243
+#: appEditors/AppGerberEditor.py:6759 appEditors/appGCodeEditor.py:74
+#: appEditors/appGCodeEditor.py:75 appEditors/appGCodeEditor.py:889 appGUI/MainGUI.py:390
+#: appGUI/MainGUI.py:1909 appMain.py:2747
msgid "Exit Editor"
msgstr ""
-#: appEditors/AppExcEditor.py:4548 appEditors/AppGeoEditor.py:3640
-#: appEditors/AppGerberEditor.py:6754 appEditors/appGCodeEditor.py:889
-#: appGUI/MainGUI.py:1042 appGUI/MainGUI.py:2414
+#: appEditors/AppExcEditor.py:4846 appEditors/AppGeoEditor.py:3246
+#: appEditors/AppGerberEditor.py:6762 appEditors/appGCodeEditor.py:892
+#: appGUI/MainGUI.py:1085 appGUI/MainGUI.py:2464
msgid "Exit from Editor."
msgstr ""
-#: appEditors/AppGeoEditor.py:58
-msgid "Buffer Selection"
+#: appEditors/AppGeoEditor.py:117 appEditors/AppGeoEditor.py:3553
+msgid "Geo Elem"
msgstr ""
-#: appEditors/AppGeoEditor.py:93 appEditors/AppGerberEditor.py:6455
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
-msgid "Buffer distance"
+#: appEditors/AppGeoEditor.py:461 appEditors/AppGeoEditor.py:663
+#: appEditors/geo_plugins/GeoCirclePlugin.py:112
+#: appEditors/geo_plugins/GeoCirclePlugin.py:158 appGUI/MainGUI.py:1818
+msgid "Circle"
msgstr ""
-#: appEditors/AppGeoEditor.py:96 appEditors/AppGerberEditor.py:6459
-msgid "Buffer corner"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:98
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features meeting in the "
-"corner"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:104 appEditors/AppGerberEditor.py:6467
-msgid "Round"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:105 appEditors/AppGerberEditor.py:6468
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:59
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:188
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:77
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:59
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:185
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:140
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:449
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:321
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:469
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:326
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:290 appPlugins/ToolDrilling.py:2988
-#: appPlugins/ToolExtract.py:1049 appPlugins/ToolExtract.py:1193
-#: appPlugins/ToolFollow.py:762 appPlugins/ToolInvertGerber.py:292
-#: appPlugins/ToolIsolation.py:3898 appPlugins/ToolMilling.py:5054
-#: appPlugins/ToolNCC.py:4602 appPlugins/ToolPaint.py:3353
-#: appPlugins/ToolPunchGerber.py:2079 appPlugins/ToolPunchGerber.py:2245
-#: appPlugins/ToolQRCode.py:913
-msgid "Square"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:106 appEditors/AppGerberEditor.py:6469
-msgid "Beveled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:114
-msgid "Buffer Interior"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:116
-msgid "Buffer Exterior"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:122
-msgid "Full Buffer"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:152 appEditors/AppGeoEditor.py:161
-#: appEditors/AppGeoEditor.py:401 appEditors/AppGeoEditor.py:410
-#: appEditors/AppGeoEditor.py:625 appEditors/AppGeoEditor.py:634
-#: appEditors/AppGeoEditor.py:1127 appEditors/AppGeoEditor.py:1136
-#: appEditors/AppGerberEditor.py:7193 appEditors/AppGerberEditor.py:7202
-#: appPlugins/ToolAlignObjects.py:98 appPlugins/ToolAlignObjects.py:107
-#: appPlugins/ToolCalculators.py:56 appPlugins/ToolCalculators.py:65
-#: appPlugins/ToolCalibration.py:89 appPlugins/ToolCalibration.py:98
-#: appPlugins/ToolCopperThieving.py:108 appPlugins/ToolCopperThieving.py:117
-#: appPlugins/ToolCutOut.py:152 appPlugins/ToolCutOut.py:161 appPlugins/ToolDblSided.py:74
-#: appPlugins/ToolDblSided.py:83 appPlugins/ToolDistance.py:129
-#: appPlugins/ToolDistance.py:138 appPlugins/ToolDrilling.py:155
-#: appPlugins/ToolDrilling.py:164 appPlugins/ToolEtchCompensation.py:68
-#: appPlugins/ToolEtchCompensation.py:77 appPlugins/ToolExtract.py:94
-#: appPlugins/ToolExtract.py:103 appPlugins/ToolFiducials.py:102
-#: appPlugins/ToolFiducials.py:111 appPlugins/ToolFilm.py:121 appPlugins/ToolFilm.py:130
-#: appPlugins/ToolFollow.py:94 appPlugins/ToolFollow.py:103 appPlugins/ToolImage.py:63
-#: appPlugins/ToolImage.py:72 appPlugins/ToolInvertGerber.py:67
-#: appPlugins/ToolInvertGerber.py:76 appPlugins/ToolIsolation.py:165
-#: appPlugins/ToolIsolation.py:174 appPlugins/ToolLevelling.py:151
-#: appPlugins/ToolLevelling.py:160 appPlugins/ToolMarkers.py:117
-#: appPlugins/ToolMarkers.py:126 appPlugins/ToolMilling.py:197 appPlugins/ToolMilling.py:206
-#: appPlugins/ToolNCC.py:167 appPlugins/ToolNCC.py:176 appPlugins/ToolObjectDistance.py:76
-#: appPlugins/ToolObjectDistance.py:85 appPlugins/ToolOptimal.py:80
-#: appPlugins/ToolOptimal.py:89 appPlugins/ToolPaint.py:175 appPlugins/ToolPaint.py:184
-#: appPlugins/ToolPanelize.py:76 appPlugins/ToolPanelize.py:85
-#: appPlugins/ToolPcbWizard.py:77 appPlugins/ToolPcbWizard.py:86
-#: appPlugins/ToolPunchGerber.py:120 appPlugins/ToolPunchGerber.py:129
-#: appPlugins/ToolQRCode.py:93 appPlugins/ToolQRCode.py:102 appPlugins/ToolReport.py:91
-#: appPlugins/ToolReport.py:100 appPlugins/ToolRulesCheck.py:83
-#: appPlugins/ToolRulesCheck.py:92 appPlugins/ToolSolderPaste.py:88
-#: appPlugins/ToolSolderPaste.py:97 appPlugins/ToolSub.py:129 appPlugins/ToolSub.py:138
-#: appPlugins/ToolTransform.py:54 appPlugins/ToolTransform.py:63
-msgid "Plugin"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:168 appEditors/AppGeoEditor.py:3113 appGUI/MainGUI.py:721
-#: appGUI/MainGUI.py:5137 appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:215
-msgid "Buffer Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:184 appEditors/AppGeoEditor.py:201
-#: appEditors/AppGeoEditor.py:218 appEditors/AppGeoEditor.py:3132
-#: appEditors/AppGeoEditor.py:3158 appEditors/AppGeoEditor.py:3184
-#: appEditors/AppGerberEditor.py:5927
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:235
-msgid "Text Input Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:283
-msgid "Font"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:357 appEditors/AppGerberEditor.py:4593
-#: appEditors/AppGerberEditor.py:6182 appGUI/ObjectUI.py:334
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:110
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:40
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150
-#: appPlugins/ToolCopperThieving.py:1520 appPlugins/ToolCopperThieving.py:1566
-#: appPlugins/ToolCutOut.py:2481 appPlugins/ToolExtract.py:1077
-#: appPlugins/ToolFiducials.py:975 appPlugins/ToolPunchGerber.py:2107
-msgid "Size"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:361 appGUI/MainGUI.py:1780
-msgid "Text"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:372 appGUI/MainGUI.py:1651
-msgid "Apply"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:416
-msgid "Text Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:476 appObjects/FlatCAMExcellon.py:1002
-#: appPlugins/ToolDrilling.py:930 appPlugins/ToolDrilling.py:1307
-#: appPlugins/ToolDrilling.py:2513 appPlugins/ToolIsolation.py:918
-#: appPlugins/ToolIsolation.py:3512 appPlugins/ToolMilling.py:1683
-#: appPlugins/ToolMilling.py:1756 appPlugins/ToolMilling.py:2576
-#: appPlugins/ToolMilling.py:4287 appPlugins/ToolNCC.py:612 appPlugins/ToolNCC.py:2510
-#: appPlugins/ToolNCC.py:4300 appPlugins/ToolPaint.py:590 appPlugins/ToolPaint.py:3156
-msgid "Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:484 appEditors/AppGeoEditor.py:640 appGUI/MainGUI.py:725
-msgid "Paint Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:510
-msgid "Diameter of the tool to be used in the operation."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:556
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:680 appEditors/AppGeoEditor.py:1194
-#: appEditors/AppGeoEditor.py:1230 appEditors/AppGeoEditor.py:1253
-#: appEditors/AppGeoEditor.py:1399 appEditors/AppGeoEditor.py:1424
-#: appEditors/AppGeoEditor.py:1459 appEditors/AppGeoEditor.py:1494
-#: appEditors/AppGeoEditor.py:1525 appEditors/AppGeoEditor.py:1550
-#: appEditors/AppGeoEditor.py:2747 appEditors/AppGeoEditor.py:2818
-#: appEditors/AppGeoEditor.py:3120 appEditors/AppGeoEditor.py:3146
-#: appEditors/AppGeoEditor.py:3172 appEditors/AppGeoEditor.py:5046
-#: appEditors/AppGerberEditor.py:7256 appEditors/AppGerberEditor.py:7296
-#: appEditors/AppGerberEditor.py:7319 appEditors/AppGerberEditor.py:7464
-#: appEditors/AppGerberEditor.py:7497 appEditors/AppGerberEditor.py:7540
-#: appEditors/AppGerberEditor.py:7581 appEditors/AppGerberEditor.py:7617
-#: appEditors/AppGerberEditor.py:7653
-msgid "No shape selected."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:704 appEditors/AppGeoEditor.py:1154
-#: appEditors/AppGerberEditor.py:6770 appEditors/AppGerberEditor.py:7220
-#: appGUI/MainGUI.py:729
-msgid "Transform Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:705 appEditors/AppGeoEditor.py:794
-#: appEditors/AppGerberEditor.py:6771 appEditors/AppGerberEditor.py:6860
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 appPlugins/ToolTransform.py:573
-#: appPlugins/ToolTransform.py:683 appPlugins/ToolTransform.py:708
-msgid "Rotate"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:706 appEditors/AppGerberEditor.py:6772
-#: appPlugins/ToolTransform.py:574
-msgid "Skew/Shear"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:707 appEditors/AppGerberEditor.py:6526
-#: appEditors/AppGerberEditor.py:6773 appGUI/MainGUI.py:810 appGUI/MainGUI.py:1287
-#: appGUI/MainGUI.py:1829 appGUI/MainGUI.py:2651 appGUI/MainGUI.py:5405
-#: appGUI/ObjectUI.py:121 appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:42
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 appPlugins/ToolFilm.py:1357
-#: appPlugins/ToolTransform.py:575 appPlugins/ToolTransform.py:797
-msgid "Scale"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:708 appEditors/AppGerberEditor.py:6774
-#: appPlugins/ToolTransform.py:576
-msgid "Mirror (Flip)"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:710 appEditors/AppGerberEditor.py:6482
-#: appEditors/AppGerberEditor.py:6776 appGUI/MainGUI.py:807 appGUI/MainGUI.py:1285
-#: appGUI/MainGUI.py:1782 appGUI/MainGUI.py:1827 appGUI/MainGUI.py:2649
-#: appGUI/MainGUI.py:5396 appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:257
-#: appPlugins/ToolTransform.py:578 appPlugins/ToolTransform.py:948
-msgid "Buffer"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:738 appEditors/AppGerberEditor.py:6804
-#: appGUI/GUIElements.py:4267 appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:94
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:157
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:94
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:42 appPlugins/ToolDblSided.py:901
-#: appPlugins/ToolDblSided.py:1092 appPlugins/ToolFilm.py:1402 appPlugins/ToolFilm.py:1478
-#: appPlugins/ToolMarkers.py:1274 appPlugins/ToolPanelize.py:1224
-#: appPlugins/ToolTransform.py:614
-msgid "Reference"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:740 appEditors/AppGerberEditor.py:6806
-msgid ""
-"The reference point for Rotate, Skew, Scale, Mirror.\n"
-"Can be:\n"
-"- Origin -> it is the 0, 0 point\n"
-"- Selection -> the center of the bounding box of the selected objects\n"
-"- Point -> a custom point defined by X,Y coordinates\n"
-"- Min Selection -> the point (minx, miny) of the bounding box of the selection"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:748 appEditors/AppGerberEditor.py:6814
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52
-#: appPlugins/ToolCalibration.py:161 appPlugins/ToolCalibration.py:162
-#: appPlugins/ToolTransform.py:624
-msgid "Origin"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:748 appEditors/AppGeoEditor.py:1167
-#: appEditors/AppGerberEditor.py:6814 appEditors/AppGerberEditor.py:7229
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:258
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:120
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:299
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:310
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:257
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52 appPlugins/ToolFiducials.py:1060
-#: appPlugins/ToolFollow.py:743 appPlugins/ToolIsolation.py:3822
-#: appPlugins/ToolMarkers.py:1365 appPlugins/ToolNCC.py:4563 appPlugins/ToolPaint.py:3304
-#: appPlugins/ToolPunchGerber.py:2307 appPlugins/ToolTransform.py:624 defaults.py:622
-msgid "Selection"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:748 appEditors/AppGerberEditor.py:6814
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:107
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:58 appPlugins/ToolDblSided.py:912
-#: appPlugins/ToolTransform.py:624
-msgid "Point"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:748 appEditors/AppGerberEditor.py:6814
-msgid "Minimum"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:754 appEditors/AppGeoEditor.py:1050
-#: appEditors/AppGerberEditor.py:6820 appEditors/AppGerberEditor.py:7116
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:136
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:73
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:48
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:70
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:92
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:148
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:170
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:192
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:227
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:261
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:283
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:296 appPlugins/ToolExtract.py:1251
-#: appPlugins/ToolExtract.py:1280 appPlugins/ToolPunchGerber.py:2186
-#: appPlugins/ToolPunchGerber.py:2294 appPlugins/ToolRulesCheck.py:1495
-#: appPlugins/ToolRulesCheck.py:1519 appPlugins/ToolRulesCheck.py:1544
-#: appPlugins/ToolRulesCheck.py:1569 appPlugins/ToolRulesCheck.py:1606
-#: appPlugins/ToolRulesCheck.py:1631 appPlugins/ToolRulesCheck.py:1656
-#: appPlugins/ToolRulesCheck.py:1694 appPlugins/ToolRulesCheck.py:1731
-#: appPlugins/ToolRulesCheck.py:1756 appPlugins/ToolTransform.py:630
-#: appPlugins/ToolTransform.py:995 appMain.py:9147
-msgid "Value"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:756 appEditors/AppGerberEditor.py:6822
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 appPlugins/ToolTransform.py:632
-msgid "A point of reference in format X,Y."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:765 appEditors/AppGerberEditor.py:6831
-#: appPlugins/ToolTransform.py:641
-msgid "Add point coordinates from clipboard."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:780 appEditors/AppGerberEditor.py:6846
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:104 appPlugins/ToolTransform.py:694
-msgid ""
-"Angle, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:796 appEditors/AppGerberEditor.py:6862
-#: appPlugins/ToolTransform.py:710
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:816 appEditors/AppGeoEditor.py:878
-#: appEditors/AppGerberEditor.py:6882 appEditors/AppGerberEditor.py:6944
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:125
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 appPlugins/ToolTransform.py:733
-#: appPlugins/ToolTransform.py:803
-msgid "Link"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:818 appEditors/AppGeoEditor.py:880
-#: appEditors/AppGerberEditor.py:6884 appEditors/AppGerberEditor.py:6946
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:127
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:179 appPlugins/ToolTransform.py:735
-#: appPlugins/ToolTransform.py:805
-msgid "Link the Y entry to X entry and copy its content."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:823 appEditors/AppGerberEditor.py:6889
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:143 appPlugins/ToolTransform.py:746
-msgid "X angle"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:825 appEditors/AppGeoEditor.py:846
-#: appEditors/AppGerberEditor.py:6891 appEditors/AppGerberEditor.py:6912
-#: appPlugins/ToolTransform.py:748 appPlugins/ToolTransform.py:769
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:833 appEditors/AppGerberEditor.py:6899
-#: appPlugins/ToolTransform.py:756
-msgid "Skew X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:835 appEditors/AppGeoEditor.py:856
-#: appEditors/AppGerberEditor.py:6901 appEditors/AppGerberEditor.py:6922
-#: appPlugins/ToolTransform.py:758 appPlugins/ToolTransform.py:779
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:844 appEditors/AppGerberEditor.py:6910
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:157 appPlugins/ToolTransform.py:767
-msgid "Y angle"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:854 appEditors/AppGerberEditor.py:6920
-#: appPlugins/ToolTransform.py:777
-msgid "Skew Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:885 appEditors/AppGerberEditor.py:6951
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:194 appPlugins/ToolTransform.py:815
-msgid "X factor"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:887 appEditors/AppGerberEditor.py:6953
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:196 appPlugins/ToolTransform.py:817
-msgid "Factor for scaling on X axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:894 appEditors/AppGerberEditor.py:6960
-#: appPlugins/ToolTransform.py:824
-msgid "Scale X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:896 appEditors/AppGeoEditor.py:916
-#: appEditors/AppGerberEditor.py:6962 appEditors/AppGerberEditor.py:6982
-#: appPlugins/ToolTransform.py:826 appPlugins/ToolTransform.py:846
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:905 appEditors/AppGerberEditor.py:6971
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:207 appPlugins/ToolTransform.py:835
-msgid "Y factor"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:907 appEditors/AppGerberEditor.py:6973
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:209 appPlugins/ToolTransform.py:837
-msgid "Factor for scaling on Y axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:914 appEditors/AppGerberEditor.py:6980
-#: appPlugins/ToolTransform.py:844
-msgid "Scale Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:941 appEditors/AppGerberEditor.py:7007
-#: appPlugins/ToolTransform.py:874
-msgid "Flip on X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:943 appEditors/AppGeoEditor.py:948
-#: appEditors/AppGerberEditor.py:7009 appEditors/AppGerberEditor.py:7014
-#: appPlugins/ToolTransform.py:876 appPlugins/ToolTransform.py:881
-msgid "Flip the selected object(s) over the X axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:946 appEditors/AppGerberEditor.py:7012
-#: appPlugins/ToolTransform.py:879
-msgid "Flip on Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:966 appEditors/AppGerberEditor.py:7032
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:74
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:138
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:231 appPlugins/ToolFilm.py:1382
-#: appPlugins/ToolFilm.py:1458 appPlugins/ToolTransform.py:902
-msgid "X val"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:968 appEditors/AppGerberEditor.py:7034
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:233 appPlugins/ToolTransform.py:904
-msgid "Distance to offset on X axis. In current units."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:975 appEditors/AppGerberEditor.py:7041
-#: appPlugins/ToolTransform.py:911
-msgid "Offset X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:977 appEditors/AppGeoEditor.py:997
-#: appEditors/AppGerberEditor.py:7043 appEditors/AppGerberEditor.py:7063
-#: appPlugins/ToolTransform.py:913 appPlugins/ToolTransform.py:933
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:986 appEditors/AppGerberEditor.py:7052
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:84
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:147
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:244 appPlugins/ToolFilm.py:1392
-#: appPlugins/ToolFilm.py:1468 appPlugins/ToolTransform.py:922
-msgid "Y val"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:988 appEditors/AppGerberEditor.py:7054
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:246 appPlugins/ToolTransform.py:924
-msgid "Distance to offset on Y axis. In current units."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:995 appEditors/AppGerberEditor.py:7061
-#: appPlugins/ToolTransform.py:931
-msgid "Offset Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1015 appEditors/AppGerberEditor.py:7081 appGUI/ObjectUI.py:519
-#: appGUI/ObjectUI.py:561 appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:76
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:263 appPlugins/ToolFilm.py:1562
-#: appPlugins/ToolInvertGerber.py:291 appPlugins/ToolQRCode.py:912
-#: appPlugins/ToolTransform.py:954
-msgid "Rounded"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1017 appEditors/AppGerberEditor.py:7083
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:265 appPlugins/ToolTransform.py:956
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1025 appEditors/AppGerberEditor.py:7091
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:279 appPlugins/ToolDistance.py:142
-#: appPlugins/ToolDistance.py:684 appPlugins/ToolTransform.py:970
-msgid "Distance"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1027 appEditors/AppGerberEditor.py:7093
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:281 appPlugins/ToolTransform.py:972
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1039 appEditors/AppGerberEditor.py:7105
-#: appPlugins/ToolTransform.py:984
-msgid "Buffer D"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1041 appEditors/AppGerberEditor.py:7107
-#: appPlugins/ToolTransform.py:986
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1052 appEditors/AppGerberEditor.py:7118
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:298 appPlugins/ToolTransform.py:997
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1065 appEditors/AppGerberEditor.py:7131
-#: appPlugins/ToolTransform.py:1010
-msgid "Buffer F"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1067 appEditors/AppGerberEditor.py:7133
-#: appPlugins/ToolTransform.py:1012
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1166 appEditors/AppGerberEditor.py:7228
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:47
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:68
-#: appPlugins/ToolCalibration.py:906 appPlugins/ToolDrilling.py:2942
-#: appPlugins/ToolMilling.py:5008 appPlugins/ToolPanelize.py:1244
-#: appPlugins/ToolTransform.py:624
-msgid "Object"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1238 appEditors/AppGerberEditor.py:7304
-#: appPlugins/ToolTransform.py:184
-msgid "Incorrect format for Point value. Needs format X,Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1263 appEditors/AppGerberEditor.py:7329
-#: appPlugins/ToolTransform.py:201
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1321 appEditors/AppGeoEditor.py:1342
-#: appEditors/AppGerberEditor.py:7387 appEditors/AppGerberEditor.py:7408
-#: appPlugins/ToolTransform.py:259 appPlugins/ToolTransform.py:280
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1355 appEditors/AppGeoEditor.py:1364
-#: appEditors/AppGerberEditor.py:7421 appEditors/AppGerberEditor.py:7430
-#: appPlugins/ToolTransform.py:293 appPlugins/ToolTransform.py:302
-msgid "Offset transformation can not be done for a value of 0."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1394 appPlugins/ToolTransform.py:330
-msgid "Rotating"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1409 appEditors/AppGeoEditor.py:1442
-#: appEditors/AppGeoEditor.py:1476 appEditors/AppGeoEditor.py:1510
-#: appEditors/AppGeoEditor.py:1543 appEditors/AppGeoEditor.py:1564
-#: appEditors/AppGerberEditor.py:7481 appEditors/AppGerberEditor.py:7523
-#: appEditors/AppGerberEditor.py:7563 appEditors/AppGerberEditor.py:7602
-#: appEditors/AppGerberEditor.py:7646 appEditors/AppGerberEditor.py:7682
-#: appPlugins/ToolTransform.py:352 appPlugins/ToolTransform.py:392
-#: appPlugins/ToolTransform.py:431 appPlugins/ToolTransform.py:466
-#: appPlugins/ToolTransform.py:503 appPlugins/ToolTransform.py:538 appMain.py:6976
-#: appMain.py:7022
-msgid "Action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1427 appPlugins/ToolTransform.py:362
-msgid "Flipping"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1435 appEditors/AppGerberEditor.py:7512
-#: appPlugins/ToolTransform.py:379 appMain.py:6974
-msgid "Flip on Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1438 appEditors/AppGerberEditor.py:7520
-#: appPlugins/ToolTransform.py:388 appMain.py:7020
-msgid "Flip on X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1462 appPlugins/ToolTransform.py:407
-msgid "Skewing"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1471 appEditors/AppGerberEditor.py:7559
-msgid "Skew on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1473 appEditors/AppGerberEditor.py:7561
-msgid "Skew on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1497 appPlugins/ToolTransform.py:441
-msgid "Scaling"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1506 appEditors/AppGerberEditor.py:7597
-msgid "Scale on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1508 appEditors/AppGerberEditor.py:7599
-msgid "Scale on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1528 appPlugins/ToolTransform.py:476
-msgid "Offsetting"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1538 appEditors/AppGeoEditor.py:1596
-#: appEditors/AppGerberEditor.py:7641 appEditors/AppGerberEditor.py:7714
-#: appPlugins/ToolMarkers.py:1292
-msgid "Offset on the X axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1540 appEditors/AppGerberEditor.py:7643
-#: appPlugins/ToolMarkers.py:1305
-msgid "Offset on the Y axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1553 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:56
-#: appObjects/FlatCAMGerber.py:423 appPlugins/ToolCopperThieving.py:625
-#: appPlugins/ToolCopperThieving.py:820 appPlugins/ToolCopperThieving.py:833
-#: appPlugins/ToolIsolation.py:1618 appPlugins/ToolNCC.py:2016 appPlugins/ToolNCC.py:2043
-#: appPlugins/ToolNCC.py:2151 appPlugins/ToolNCC.py:2164 appPlugins/ToolNCC.py:3065
-#: appPlugins/ToolNCC.py:3170 appPlugins/ToolNCC.py:3185 appPlugins/ToolNCC.py:3453
-#: appPlugins/ToolNCC.py:3554 appPlugins/ToolNCC.py:3569 appPlugins/ToolTransform.py:513
-#: camlib.py:1167
-msgid "Buffering"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1560 appEditors/AppGerberEditor.py:7678
-#: appPlugins/ToolTransform.py:534
-msgid "Buffer done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1568 appEditors/AppGerberEditor.py:7686
-msgid "Rotate ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1569 appEditors/AppGeoEditor.py:1621
-#: appEditors/AppGeoEditor.py:1637 appEditors/AppGerberEditor.py:7687
-#: appEditors/AppGerberEditor.py:7739 appEditors/AppGerberEditor.py:7755
-msgid "Enter an Angle Value (degrees)"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1578 appEditors/AppGerberEditor.py:7696
-#: appPlugins/ToolTransform.py:350
-msgid "Rotate done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1581 appEditors/AppGerberEditor.py:7699
-msgid "Rotate cancelled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1586 appEditors/AppGerberEditor.py:7704
-msgid "Offset on X axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1587 appEditors/AppGeoEditor.py:1605
-#: appEditors/AppGerberEditor.py:7705 appEditors/AppGerberEditor.py:7723
-msgid "Enter a distance Value"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1599 appEditors/AppGerberEditor.py:7717
-msgid "Offset X cancelled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1604 appEditors/AppGerberEditor.py:7722
-msgid "Offset on Y axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1614 appEditors/AppGerberEditor.py:7732
-msgid "Offset on Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1617
-msgid "Offset on the Y axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1620 appEditors/AppGerberEditor.py:7738
-msgid "Skew on X axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1630 appEditors/AppGerberEditor.py:7748
-msgid "Skew on X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1633
-msgid "Skew on X axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1636 appEditors/AppGerberEditor.py:7754
-msgid "Skew on Y axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1646 appEditors/AppGerberEditor.py:7764
-msgid "Skew on Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1649
-msgid "Skew on Y axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2084 appEditors/AppGeoEditor.py:2156
+#: appEditors/AppGeoEditor.py:480 appEditors/AppGeoEditor.py:703
#: appEditors/AppGerberEditor.py:1667 appEditors/AppGerberEditor.py:1750
+#: appEditors/geo_plugins/GeoCirclePlugin.py:88
msgid "Click on Center point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2097 appEditors/AppGerberEditor.py:1677
+#: appEditors/AppGeoEditor.py:513
+msgid "Click on Center point to add a new circle or Apply to change the selection."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:522 appEditors/AppGerberEditor.py:1677
msgid "Click on Perimeter point to complete ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2184 appEditors/AppGerberEditor.py:1799
+#: appEditors/AppGeoEditor.py:731 appEditors/AppGerberEditor.py:1799
msgid "Click on Start point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2186 appEditors/AppGerberEditor.py:1801
+#: appEditors/AppGeoEditor.py:733 appEditors/AppGerberEditor.py:1801
msgid "Click on Point3 ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2188 appEditors/AppGerberEditor.py:1803
+#: appEditors/AppGeoEditor.py:735 appEditors/AppGerberEditor.py:1803
msgid "Click on Stop point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2193 appEditors/AppGerberEditor.py:1808
+#: appEditors/AppGeoEditor.py:740 appEditors/AppGerberEditor.py:1808
msgid "Click on Stop point to complete ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2195 appEditors/AppGerberEditor.py:1810
+#: appEditors/AppGeoEditor.py:742 appEditors/AppGerberEditor.py:1810
msgid "Click on Point2 to complete ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2197 appEditors/AppGerberEditor.py:1812
+#: appEditors/AppGeoEditor.py:744 appEditors/AppGerberEditor.py:1812
msgid "Click on Center point to complete ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2223 appEditors/AppGerberEditor.py:1838
+#: appEditors/AppGeoEditor.py:756 appEditors/AppGerberEditor.py:1824
+#: appEditors/AppGerberEditor.py:6675 appEditors/AppGerberEditor.py:6729
+#: appEditors/exc_plugins/ExcCopyPlugin.py:234 appEditors/exc_plugins/ExcCopyPlugin.py:416
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:224
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:283
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:198
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:288
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:347
+#: appEditors/exc_plugins/ExcSlotPlugin.py:207 appEditors/geo_plugins/GeoCopyPlugin.py:234
+#: appEditors/geo_plugins/GeoCopyPlugin.py:416
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:201
+msgid "Direction"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:770 appEditors/AppGerberEditor.py:1838
msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2226 appEditors/AppGerberEditor.py:1841
+#: appEditors/AppGeoEditor.py:773 appEditors/AppGerberEditor.py:1841
msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2229 appEditors/AppGerberEditor.py:1844
+#: appEditors/AppGeoEditor.py:776 appEditors/AppGerberEditor.py:1844
msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2401 appEditors/AppGeoEditor.py:2476
+#: appEditors/AppGeoEditor.py:917 appGUI/MainGUI.py:1822
+msgid "Arc"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:940 appEditors/AppGeoEditor.py:1025
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:145
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:191 appGUI/MainGUI.py:1815
+msgid "Rectangle"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:959 appEditors/AppGeoEditor.py:1195
+#: appEditors/AppGeoEditor.py:1307 appEditors/geo_plugins/GeoRectanglePlugin.py:90
msgid "Click on 1st corner ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2413
+#: appEditors/AppGeoEditor.py:991
+msgid "Click on 1st corner to add a new rectangle or Apply to change the selection."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:997
msgid "Click on opposite corner to complete ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2538 appEditors/AppGeoEditor.py:2604
+#: appEditors/AppGeoEditor.py:1146 appEditors/AppGeoEditor.py:1357
+#: appEditors/AppGeoEditor.py:1570
+msgid "Projected"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1147
+msgid "Click to complete ..."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1174 appGUI/MainGUI.py:1820
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:450
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:336
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:470
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 appPlugins/ToolDrilling.py:2969
+#: appPlugins/ToolFollow.py:747 appPlugins/ToolIsolation.py:3961
+#: appPlugins/ToolMilling.py:5022 appPlugins/ToolNCC.py:4576 appPlugins/ToolPaint.py:3335
+msgid "Polygon"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1305 appEditors/AppGeoEditor.py:1510
#: appEditors/AppGerberEditor.py:1270 appEditors/AppGerberEditor.py:1524
msgid "Backtracked one point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:2642
-msgid "Selection not allowed. Wait ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2826
-msgid "Click on destination point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2856 appPlugins/ToolMove.py:199
-msgid "Moving"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3030 appEditors/AppGerberEditor.py:1019
+#: appEditors/AppGeoEditor.py:1406 appEditors/AppGeoEditor.py:1512
+#: appEditors/AppGeoEditor.py:2647 appEditors/AppGerberEditor.py:1019
msgid "Click on 1st point ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3054
+#: appEditors/AppGeoEditor.py:1628
+msgid "Selection not allowed. Wait ..."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1733 appEditors/AppGeoEditor.py:1812
+#: appEditors/AppGeoEditor.py:1857 appEditors/AppGeoEditor.py:2147
+#: appEditors/AppGeoEditor.py:2192 appEditors/AppGeoEditor.py:2737
+#: appEditors/AppGeoEditor.py:2763 appEditors/AppGeoEditor.py:2789
+#: appEditors/AppGeoEditor.py:4661 appEditors/AppGerberEditor.py:7264
+#: appEditors/AppGerberEditor.py:7304 appEditors/AppGerberEditor.py:7327
+#: appEditors/AppGerberEditor.py:7472 appEditors/AppGerberEditor.py:7505
+#: appEditors/AppGerberEditor.py:7548 appEditors/AppGerberEditor.py:7589
+#: appEditors/AppGerberEditor.py:7625 appEditors/AppGerberEditor.py:7661
+#: appEditors/geo_plugins/GeoPaintPlugin.py:103
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:130
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:155
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:178
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:318
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:343
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:378
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:413
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:444
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:469
+msgid "No shape selected."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1812 appEditors/AppGeoEditor.py:1857
+#: appEditors/AppGeoEditor.py:2147 appEditors/AppGeoEditor.py:2192
+msgid "Select some shapes or cancel."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1821 appEditors/AppGeoEditor.py:1824 appGUI/MainGUI.py:757
+#: appGUI/MainGUI.py:817 appGUI/MainGUI.py:875 appGUI/MainGUI.py:1243 appGUI/MainGUI.py:1350
+#: appGUI/MainGUI.py:1852 appGUI/MainGUI.py:1918 appGUI/MainGUI.py:2620
+#: appGUI/MainGUI.py:2719 appGUI/MainGUI.py:5377 appGUI/MainGUI.py:5517
+#: appPlugins/ToolMove.py:20
+msgid "Move"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1831 appEditors/AppGeoEditor.py:2166
+msgid "Click on destination point ..."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:1880 appPlugins/ToolMove.py:192
+msgid "Moving"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2156 appEditors/AppGeoEditor.py:2159 appGUI/GUIElements.py:455
+#: appGUI/GUIElements.py:1231 appGUI/GUIElements.py:1475 appGUI/GUIElements.py:1916
+#: appGUI/GUIElements.py:2204 appGUI/GUIElements.py:4473 appGUI/MainGUI.py:461
+#: appGUI/MainGUI.py:808 appGUI/MainGUI.py:867 appGUI/MainGUI.py:948 appGUI/MainGUI.py:1091
+#: appGUI/MainGUI.py:1237 appGUI/MainGUI.py:1343 appGUI/MainGUI.py:1903
+#: appGUI/MainGUI.py:2470 appGUI/MainGUI.py:2614 appGUI/MainGUI.py:2712
+#: appGUI/MainGUI.py:5374 appGUI/MainGUI.py:5513 appObjects/ExcellonObject.py:516
+#: appPlugins/ToolDrilling.py:287 appPlugins/ToolMilling.py:402
+#: appPlugins/ToolMilling.py:413 appPlugins/ToolPanelize.py:445
+#: appPlugins/ToolPanelize.py:474 appPlugins/ToolPanelize.py:600
+#: appPlugins/ToolPanelize.py:611 appPlugins/ToolPanelize.py:649
+#: appPlugins/ToolPanelize.py:698 appPlugins/ToolPanelize.py:912
+#: appPlugins/ToolPanelize.py:951 appPlugins/ToolPanelize.py:999
+msgid "Copy"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2671
msgid "Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. Error"
msgstr ""
-#: appEditors/AppGeoEditor.py:3062
+#: appEditors/AppGeoEditor.py:2679
msgid "No text to add."
msgstr ""
-#: appEditors/AppGeoEditor.py:3109
+#: appEditors/AppGeoEditor.py:2726
msgid "Create buffer geometry ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3245 appEditors/AppGerberEditor.py:2407
+#: appEditors/AppGeoEditor.py:2730 appEditors/AppGerberEditor.py:6490
+#: appEditors/AppGerberEditor.py:6784 appEditors/geo_plugins/GeoBufferPlugin.py:64
+#: appEditors/geo_plugins/GeoBufferPlugin.py:345
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:604 appGUI/MainGUI.py:760
+#: appGUI/MainGUI.py:850 appGUI/MainGUI.py:1330 appGUI/MainGUI.py:1830
+#: appGUI/MainGUI.py:1875 appGUI/MainGUI.py:2699 appGUI/MainGUI.py:5512
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:257 appPlugins/ToolTransform.py:569
+#: appPlugins/ToolTransform.py:939
+msgid "Buffer"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2749 appEditors/AppGeoEditor.py:2775
+#: appEditors/AppGeoEditor.py:2801 appEditors/AppGerberEditor.py:5935
+#: appEditors/geo_plugins/GeoBufferPlugin.py:84
+#: appEditors/geo_plugins/GeoBufferPlugin.py:101
+#: appEditors/geo_plugins/GeoBufferPlugin.py:118
+msgid "Buffer distance value is missing or wrong format. Add it and retry."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2849
+msgid "Simplify geometry ..."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2886 appEditors/AppGerberEditor.py:2407
msgid "Select a shape to act as deletion area ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3247 appEditors/AppGeoEditor.py:3273
-#: appEditors/AppGeoEditor.py:3279 appEditors/AppGerberEditor.py:2409
+#: appEditors/AppGeoEditor.py:2888 appEditors/AppGeoEditor.py:2914
+#: appEditors/AppGeoEditor.py:2920 appEditors/AppGerberEditor.py:2409
msgid "Click to pick-up the erase shape..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3283 appEditors/AppGerberEditor.py:2469
+#: appEditors/AppGeoEditor.py:2918
+msgid "Nothing to erase."
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:2924 appEditors/AppGerberEditor.py:2469
msgid "Click to erase ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3362
+#: appEditors/AppGeoEditor.py:3003
msgid "Create Paint geometry ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3375 appEditors/AppGerberEditor.py:3270
+#: appEditors/AppGeoEditor.py:3019 appEditors/AppGerberEditor.py:3270
msgid "Shape transformations ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:3438 appGUI/ObjectUI.py:980
+#: appEditors/AppGeoEditor.py:3085 appGUI/ObjectUI.py:980
msgid "Geometry Editor"
msgstr ""
-#: appEditors/AppGeoEditor.py:3459
+#: appEditors/AppGeoEditor.py:3106
msgid "Tool dia"
msgstr ""
-#: appEditors/AppGeoEditor.py:3461
+#: appEditors/AppGeoEditor.py:3108
msgid "Edited tool diameter."
msgstr ""
-#: appEditors/AppGeoEditor.py:3471
+#: appEditors/AppGeoEditor.py:3118
msgid "Geometry Table"
msgstr ""
-#: appEditors/AppGeoEditor.py:3473
+#: appEditors/AppGeoEditor.py:3120
msgid "The list of geometry elements inside the edited object."
msgstr ""
-#: appEditors/AppGeoEditor.py:3502 appEditors/AppGerberEditor.py:6320
+#: appEditors/AppGeoEditor.py:3126 appEditors/AppGerberEditor.py:4601
+#: appEditors/AppGerberEditor.py:6190 appEditors/AppGerberEditor.py:6263
+#: appEditors/AppGerberEditor.py:6642 appEditors/exc_plugins/ExcCopyPlugin.py:202
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:183
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:248
+#: appEditors/geo_plugins/GeoCopyPlugin.py:202
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:275 appGUI/ObjectUI.py:334
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:167
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:57
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:116
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:40
+#: appPlugins/ToolCopperThieving.py:1374 appPlugins/ToolCutOut.py:2293
+#: appPlugins/ToolCutOut.py:2479 appPlugins/ToolDblSided.py:1058
+#: appPlugins/ToolExtract.py:1107 appPlugins/ToolFilm.py:1286 appPlugins/ToolFilm.py:1357
+#: appPlugins/ToolFilm.py:1427 appPlugins/ToolImage.py:600 appPlugins/ToolIsolation.py:3902
+#: appPlugins/ToolMarkers.py:1294 appPlugins/ToolMarkers.py:1574
+#: appPlugins/ToolMilling.py:3963 appPlugins/ToolNCC.py:4080 appPlugins/ToolNCC.py:4547
+#: appPlugins/ToolObjectDistance.py:461 appPlugins/ToolPaint.py:2965
+#: appPlugins/ToolPaint.py:3305 appPlugins/ToolPunchGerber.py:2120
+#: appPlugins/ToolPunchGerber.py:2331 appPlugins/ToolTransform.py:637
+msgid "Type"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:3149 appEditors/AppGerberEditor.py:6328
msgid "Zoom on selection"
msgstr ""
-#: appEditors/AppGeoEditor.py:3511 appEditors/AppGerberEditor.py:6329
-#: appGUI/ObjectUI.py:1372 appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:26
+#: appEditors/AppGeoEditor.py:3158 appEditors/AppGerberEditor.py:6337
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:170
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:232
+#: appEditors/exc_plugins/ExcSlotPlugin.py:177
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:232 appGUI/ObjectUI.py:1372
+#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:26
#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:28
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:25
#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:27
#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:411
#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:79
@@ -2955,14 +2166,13 @@ msgstr ""
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:29
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:137
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:28
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:28
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:26
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:28
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:183
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:25
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:25
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:27
@@ -2973,245 +2183,161 @@ msgstr ""
#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:28
#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:24
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:28
-#: appPlugins/ToolAlignObjects.py:508 appPlugins/ToolCalibration.py:787
-#: appPlugins/ToolCopperThieving.py:1317 appPlugins/ToolDistance.py:699
-#: appPlugins/ToolEtchCompensation.py:406 appPlugins/ToolFiducials.py:962
-#: appPlugins/ToolFilm.py:1540 appPlugins/ToolFollow.py:732
-#: appPlugins/ToolInvertGerber.py:257 appPlugins/ToolLevelling.py:1858
-#: appPlugins/ToolMarkers.py:1209 appPlugins/ToolObjectDistance.py:460
-#: appPlugins/ToolOptimal.py:525 appPlugins/ToolPanelize.py:1350
-#: appPlugins/ToolQRCode.py:813 appPlugins/ToolSolderPaste.py:1320 appPlugins/ToolSub.py:821
-#: appPlugins/ToolTransform.py:602
+#: appPlugins/ToolAlignObjects.py:495 appPlugins/ToolCopperThieving.py:1299
+#: appPlugins/ToolDistance.py:825 appPlugins/ToolEtchCompensation.py:392
+#: appPlugins/ToolFiducials.py:1051 appPlugins/ToolFilm.py:1517 appPlugins/ToolFollow.py:716
+#: appPlugins/ToolImage.py:529 appPlugins/ToolImage.py:861
+#: appPlugins/ToolInvertGerber.py:244 appPlugins/ToolLevelling.py:1839
+#: appPlugins/ToolMarkers.py:1283 appPlugins/ToolObjectDistance.py:447
+#: appPlugins/ToolOptimal.py:511 appPlugins/ToolPanelize.py:1334
+#: appPlugins/ToolQRCode.py:801 appPlugins/ToolSolderPaste.py:1354 appPlugins/ToolSub.py:810
+#: appPlugins/ToolTransform.py:593
msgid "Parameters"
msgstr ""
-#: appEditors/AppGeoEditor.py:3513 appEditors/AppGerberEditor.py:6331
+#: appEditors/AppGeoEditor.py:3160 appEditors/AppGerberEditor.py:6339
msgid "Geometry parameters."
msgstr ""
-#: appEditors/AppGeoEditor.py:3518
+#: appEditors/AppGeoEditor.py:3165
msgid "Is Valid"
msgstr ""
-#: appEditors/AppGeoEditor.py:3525
+#: appEditors/AppGeoEditor.py:3172
msgid "Is Empty"
msgstr ""
-#: appEditors/AppGeoEditor.py:3532
+#: appEditors/AppGeoEditor.py:3179
msgid "Is Ring"
msgstr ""
-#: appEditors/AppGeoEditor.py:3539
+#: appEditors/AppGeoEditor.py:3186
msgid "Is CCW"
msgstr ""
-#: appEditors/AppGeoEditor.py:3541 appEditors/AppGeoEditor.py:4196
+#: appEditors/AppGeoEditor.py:3188 appEditors/AppGeoEditor.py:3780
msgid "Change"
msgstr ""
-#: appEditors/AppGeoEditor.py:3544
+#: appEditors/AppGeoEditor.py:3191
msgid ""
"Change the orientation of the geometric element.\n"
"Works for LinearRing and Polygons."
msgstr ""
-#: appEditors/AppGeoEditor.py:3552
+#: appEditors/AppGeoEditor.py:3199
msgid "Is Simple"
msgstr ""
-#: appEditors/AppGeoEditor.py:3561
+#: appEditors/AppGeoEditor.py:3206 appEditors/exc_plugins/ExcCopyPlugin.py:150
+#: appEditors/exc_plugins/ExcDrillPlugin.py:186 appEditors/exc_plugins/ExcSlotPlugin.py:250
+#: appEditors/geo_plugins/GeoCopyPlugin.py:150 appEditors/geo_plugins/GeoPathPlugin.py:131
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:311
+msgid "Projection"
+msgstr ""
+
+#: appEditors/AppGeoEditor.py:3208
msgid "The length of the geometry element."
msgstr ""
-#: appEditors/AppGeoEditor.py:3570 appEditors/AppGerberEditor.py:6363
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:83 appPlugins/ToolDistance.py:724
-#: appPlugins/ToolFiducials.py:870 appPlugins/ToolFiducials.py:886
-#: appPlugins/ToolObjectDistance.py:489
+#: appEditors/AppGeoEditor.py:3217 appEditors/AppGerberEditor.py:6371
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:199
+#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:83 appPlugins/ToolDistance.py:856
+#: appPlugins/ToolFiducials.py:957 appPlugins/ToolFiducials.py:973
+#: appPlugins/ToolMarkers.py:1468 appPlugins/ToolObjectDistance.py:476
msgid "Coordinates"
msgstr ""
-#: appEditors/AppGeoEditor.py:3572 appEditors/AppGeoEditor.py:3578
-#: appEditors/AppGerberEditor.py:6365 appEditors/AppGerberEditor.py:6371
+#: appEditors/AppGeoEditor.py:3219 appEditors/AppGeoEditor.py:3225
+#: appEditors/AppGerberEditor.py:6373 appEditors/AppGerberEditor.py:6379
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:201
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:216
msgid "The coordinates of the selected geometry element."
msgstr ""
-#: appEditors/AppGeoEditor.py:3583 appEditors/AppGerberEditor.py:6376
+#: appEditors/AppGeoEditor.py:3230 appEditors/AppGerberEditor.py:6384
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:221
msgid "Vertex Points"
msgstr ""
-#: appEditors/AppGeoEditor.py:3585 appEditors/AppGerberEditor.py:6378
+#: appEditors/AppGeoEditor.py:3232 appEditors/AppGerberEditor.py:6386
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:223
msgid "The number of vertex points in the selected geometry element."
msgstr ""
-#: appEditors/AppGeoEditor.py:3599 appEditors/AppGerberEditor.py:6392
-#: appGUI/ObjectUI.py:1185
-msgid "Simplification"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3601 appEditors/AppGerberEditor.py:6394
-#: appGUI/ObjectUI.py:1187
-msgid "Simplify a geometry by reducing its vertex points number."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3606 appEditors/AppGerberEditor.py:6399
-#: appGUI/ObjectUI.py:1223 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:85
-msgid "Tolerance"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3608 appEditors/AppGerberEditor.py:6401
-#: appGUI/ObjectUI.py:1225
-msgid ""
-"All points in the simplified object will be\n"
-"within the tolerance distance of the original geometry."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3620 appEditors/AppGeoEditor.py:4125
-#: appEditors/AppGerberEditor.py:4136 appEditors/AppGerberEditor.py:6414
-#: appGUI/ObjectUI.py:1237 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:76
-#: appObjects/FlatCAMGeometry.py:512
-msgid "Simplify"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3623 appEditors/AppGerberEditor.py:6417
-#: appGUI/ObjectUI.py:1240
-msgid "Simplify a geometry element by reducing its vertex points number."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3936
-msgid "Ring"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3938 appMain.py:8318
-msgid "Line"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3940 appGUI/MainGUI.py:1774
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:450
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:322
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:470
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291 appPlugins/ToolDrilling.py:2989
-#: appPlugins/ToolFollow.py:763 appPlugins/ToolIsolation.py:3899
-#: appPlugins/ToolMilling.py:5055 appPlugins/ToolNCC.py:4603 appPlugins/ToolPaint.py:3354
-msgid "Polygon"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3942
+#: appEditors/AppGeoEditor.py:3542
msgid "Multi-Line"
msgstr ""
-#: appEditors/AppGeoEditor.py:3944
+#: appEditors/AppGeoEditor.py:3544
msgid "Multi-Polygon"
msgstr ""
-#: appEditors/AppGeoEditor.py:3951
-msgid "Geo Elem"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4064
+#: appEditors/AppGeoEditor.py:3681
msgid "Last selected shape ID"
msgstr ""
-#: appEditors/AppGeoEditor.py:4156 appEditors/AppGerberEditor.py:2681
-#: appEditors/AppGerberEditor.py:5004 appPlugins/ToolCutOut.py:1503
-#: appPlugins/ToolDistance.py:205 appPlugins/ToolExtract.py:411
-#: appPlugins/ToolExtract.py:784 appPlugins/ToolExtract.py:859 appPlugins/ToolOptimal.py:230
-#: appPlugins/ToolPanelize.py:1118 appPlugins/ToolQRCode.py:253 appPlugins/ToolReport.py:224
-#: appPlugins/ToolSolderPaste.py:734 appPlugins/ToolSolderPaste.py:1040
-#: appPlugins/ToolSub.py:324 tclCommands/TclCommandOpenSVG.py:85
+#: appEditors/AppGeoEditor.py:3740 appEditors/AppGerberEditor.py:2681
+#: appEditors/AppGerberEditor.py:5012 appPlugins/ToolCutOut.py:1485
+#: appPlugins/ToolDistance.py:250 appPlugins/ToolExtract.py:434
+#: appPlugins/ToolExtract.py:807 appPlugins/ToolExtract.py:882 appPlugins/ToolOptimal.py:216
+#: appPlugins/ToolPanelize.py:1102 appPlugins/ToolQRCode.py:235 appPlugins/ToolReport.py:211
+#: appPlugins/ToolSolderPaste.py:765 appPlugins/ToolSolderPaste.py:1077
+#: appPlugins/ToolSub.py:312 tclCommands/TclCommandOpenSVG.py:85
#: tclCommands/TclCommandPanelize.py:425
msgid "Working"
msgstr ""
-#: appEditors/AppGeoEditor.py:4566
+#: appEditors/AppGeoEditor.py:4176
msgid "Error on inserting shapes into storage."
msgstr ""
-#: appEditors/AppGeoEditor.py:4661
+#: appEditors/AppGeoEditor.py:4265
msgid "Grid Snap enabled."
msgstr ""
-#: appEditors/AppGeoEditor.py:4666
+#: appEditors/AppGeoEditor.py:4269
msgid "Grid Snap disabled."
msgstr ""
-#: appEditors/AppGeoEditor.py:5053 appGUI/MainGUI.py:3817 appGUI/MainGUI.py:3863
-#: appGUI/MainGUI.py:3881 appGUI/MainGUI.py:4037 appGUI/MainGUI.py:4075
-#: appGUI/MainGUI.py:4087
+#: appEditors/AppGeoEditor.py:4668 appGUI/MainGUI.py:3894 appGUI/MainGUI.py:3941
+#: appGUI/MainGUI.py:3960 appGUI/MainGUI.py:4149 appGUI/MainGUI.py:4187
+#: appGUI/MainGUI.py:4200
msgid "Click on target point."
msgstr ""
-#: appEditors/AppGeoEditor.py:5343 appEditors/AppGeoEditor.py:5407
-#: appEditors/AppGeoEditor.py:5475 appEditors/AppGeoEditor.py:5505
-#: appEditors/AppGeoEditor.py:5558 appEditors/AppGeoEditor.py:5613
-#: appEditors/AppGeoEditor.py:5641 appEditors/AppGeoEditor.py:5666
-#: appEditors/AppGeoEditor.py:5696 appEditors/AppGeoEditor.py:5776
-#: appEditors/AppGeoEditor.py:5842 appEditors/AppGeoEditor.py:5910
-#: appPlugins/ToolCopperThieving.py:643 appPlugins/ToolFilm.py:701
-#: appPlugins/ToolFilm.py:924 appPlugins/ToolRulesCheck.py:659
+#: appEditors/AppGeoEditor.py:4939 appEditors/AppGeoEditor.py:5003
+#: appEditors/AppGeoEditor.py:5071 appEditors/AppGeoEditor.py:5101
+#: appEditors/AppGeoEditor.py:5154 appEditors/AppGeoEditor.py:5209
+#: appEditors/AppGeoEditor.py:5237 appEditors/AppGeoEditor.py:5262
+#: appEditors/geo_plugins/GeoBufferPlugin.py:127
+#: appEditors/geo_plugins/GeoBufferPlugin.py:207
+#: appEditors/geo_plugins/GeoBufferPlugin.py:273
+#: appEditors/geo_plugins/GeoPaintPlugin.py:123 appPlugins/ToolCopperThieving.py:626
+#: appPlugins/ToolFilm.py:692 appPlugins/ToolFilm.py:915 appPlugins/ToolRulesCheck.py:644
msgid "Working..."
msgstr ""
-#: appEditors/AppGeoEditor.py:5344
+#: appEditors/AppGeoEditor.py:4940
msgid "Loading the Geometry into the Editor..."
msgstr ""
-#: appEditors/AppGeoEditor.py:5383
+#: appEditors/AppGeoEditor.py:4979
msgid "Editing MultiGeo Geometry, tool"
msgstr ""
-#: appEditors/AppGeoEditor.py:5385 appPlugins/ToolNCC.py:2512
+#: appEditors/AppGeoEditor.py:4981 appPlugins/ToolNCC.py:2485
msgid "with diameter"
msgstr ""
-#: appEditors/AppGeoEditor.py:5454
+#: appEditors/AppGeoEditor.py:5050
msgid "Editor Exit. Geometry object was updated ..."
msgstr ""
-#: appEditors/AppGeoEditor.py:5510 appEditors/AppGeoEditor.py:5565
+#: appEditors/AppGeoEditor.py:5106 appEditors/AppGeoEditor.py:5161
msgid "A selection of minimum two items is required to do Intersection."
msgstr ""
-#: appEditors/AppGeoEditor.py:5700 appEditors/AppGeoEditor.py:5846
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5710 appEditors/AppGeoEditor.py:5787
-#: appEditors/AppGeoEditor.py:5855 appEditors/AppGeoEditor.py:5920 appMain.py:5900
-msgid "Nothing selected."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5714 appEditors/AppGeoEditor.py:5791
-#: appEditors/AppGeoEditor.py:5859
-msgid "Invalid distance."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5759 appEditors/AppGeoEditor.py:5825
-#: appEditors/AppGeoEditor.py:5893
-msgid "Failed, the result is empty."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5780
-msgid "Negative buffer value is not accepted."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5913
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5926
-msgid "Invalid value for"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5988 appPlugins/ToolMilling.py:3336
-#: appPlugins/ToolPaint.py:2005 appPlugins/ToolPaint.py:2215
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a different method of "
-"Paint"
-msgstr ""
-
#: appEditors/AppGerberEditor.py:212 appEditors/AppGerberEditor.py:418
#: appEditors/AppGerberEditor.py:1347
msgid "You need to preselect a aperture in the Aperture Table that has a size."
@@ -3229,6 +2355,14 @@ msgstr ""
msgid "Click on the Pad Circular Array Start position"
msgstr ""
+#: appEditors/AppGerberEditor.py:535
+msgid "The value is not Float. Check for comma instead of dot separator."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:538
+msgid "The value is mistyped. Check the value."
+msgstr ""
+
#: appEditors/AppGerberEditor.py:864
msgid "Select shape(s) and then click ..."
msgstr ""
@@ -3304,19 +2438,19 @@ msgid "Select shapes to import them into the edited object."
msgstr ""
#: appEditors/AppGerberEditor.py:3090 appEditors/AppGerberEditor.py:3172
-#: appPlugins/ToolIsolation.py:2491 appPlugins/ToolIsolation.py:2656
-#: appPlugins/ToolPaint.py:1283
+#: appPlugins/ToolIsolation.py:2531 appPlugins/ToolIsolation.py:2696
+#: appPlugins/ToolPaint.py:1263
msgid "Added polygon"
msgstr ""
#: appEditors/AppGerberEditor.py:3092 appEditors/AppGerberEditor.py:3174
-#: appPlugins/ToolIsolation.py:2492 appPlugins/ToolIsolation.py:2658
-#: appPlugins/ToolPaint.py:1285
+#: appPlugins/ToolIsolation.py:2532 appPlugins/ToolIsolation.py:2698
+#: appPlugins/ToolPaint.py:1265
msgid "Click to add next polygon or right click to start."
msgstr ""
#: appEditors/AppGerberEditor.py:3095 appEditors/AppGerberEditor.py:3177
-#: appPlugins/ToolIsolation.py:2661
+#: appPlugins/ToolIsolation.py:2701
msgid "No polygon in selection."
msgstr ""
@@ -3362,141 +2496,177 @@ msgstr ""
msgid "Dimensions edited."
msgstr ""
-#: appEditors/AppGerberEditor.py:4593 appEditors/AppGerberEditor.py:6182
-#: appEditors/AppGerberEditor.py:6227 appGUI/ObjectUI.py:334 appPlugins/ToolExtract.py:1077
-#: appPlugins/ToolPunchGerber.py:2107
+#: appEditors/AppGerberEditor.py:4136 appEditors/AppGerberEditor.py:6422
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:97
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:258 appGUI/MainGUI.py:1266
+#: appGUI/ObjectUI.py:1237 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:76
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:299 appObjects/GeometryObject.py:521
+#: appPlugins/ToolIsolation.py:3830
+msgid "Simplify"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:4601 appEditors/AppGerberEditor.py:6190
+#: appEditors/AppGerberEditor.py:6235 appGUI/ObjectUI.py:334 appPlugins/ToolExtract.py:1107
+#: appPlugins/ToolPunchGerber.py:2120
msgid "Code"
msgstr ""
-#: appEditors/AppGerberEditor.py:4593 appEditors/AppGerberEditor.py:6182
+#: appEditors/AppGerberEditor.py:4601 appEditors/AppGerberEditor.py:6190
+#: appEditors/exc_plugins/ExcCopyPlugin.py:192
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:198
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:262
+#: appEditors/geo_plugins/GeoCopyPlugin.py:192
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:299
+#: appEditors/geo_plugins/GeoTextPlugin.py:259 appGUI/ObjectUI.py:334
+#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:110
+#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195
+#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:40
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150
+#: appPlugins/ToolCopperThieving.py:1502 appPlugins/ToolCopperThieving.py:1548
+#: appPlugins/ToolCutOut.py:2463 appPlugins/ToolExtract.py:1107
+#: appPlugins/ToolFiducials.py:1064 appPlugins/ToolPunchGerber.py:2120
+msgid "Size"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:4601 appEditors/AppGerberEditor.py:6190
#: appGUI/ObjectUI.py:334
msgid "Dim"
msgstr ""
-#: appEditors/AppGerberEditor.py:4712 appObjects/FlatCAMCNCJob.py:769
-#: appObjects/FlatCAMScript.py:131 appPlugins/ToolLevelling.py:1519 appMain.py:8220
+#: appEditors/AppGerberEditor.py:4720 appMain.py:8240 appObjects/CNCJobObject.py:779
+#: appObjects/FlatCAMScript.py:131 appPlugins/ToolLevelling.py:1500
msgid "Loading"
msgstr ""
-#: appEditors/AppGerberEditor.py:4852
+#: appEditors/AppGerberEditor.py:4860
msgid "Setting up the UI"
msgstr ""
-#: appEditors/AppGerberEditor.py:4853
+#: appEditors/AppGerberEditor.py:4861
msgid "Adding geometry finished. Preparing the GUI"
msgstr ""
-#: appEditors/AppGerberEditor.py:4862
+#: appEditors/AppGerberEditor.py:4870
msgid "Finished loading the Gerber object into the editor."
msgstr ""
-#: appEditors/AppGerberEditor.py:4994
+#: appEditors/AppGerberEditor.py:5002
msgid "There are no Aperture definitions in the file. Aborting Gerber creation."
msgstr ""
-#: appEditors/AppGerberEditor.py:5032
+#: appEditors/AppGerberEditor.py:5040
msgid "No aperture is selected."
msgstr ""
-#: appEditors/AppGerberEditor.py:5253 appObjects/FlatCAMExcellon.py:552
-#: appPlugins/ToolDrilling.py:1720 appPlugins/ToolMilling.py:3817 appMain.py:7603
-#: appMain.py:7625
+#: appEditors/AppGerberEditor.py:5261 appMain.py:7623 appMain.py:7645
+#: appObjects/ExcellonObject.py:552 appPlugins/ToolDrilling.py:1698
+#: appPlugins/ToolMilling.py:3784
msgid "Copied to clipboard."
msgstr ""
-#: appEditors/AppGerberEditor.py:5601 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:352
+#: appEditors/AppGerberEditor.py:5609 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:366
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 appObjects/AppObject.py:353
-#: appObjects/FlatCAMCNCJob.py:663 appObjects/FlatCAMGerber.py:1039
-#: appObjects/FlatCAMObj.py:187 appObjects/FlatCAMObj.py:361 appObjects/FlatCAMObj.py:392
-#: appObjects/FlatCAMObj.py:408 appPlugins/ToolCopperThieving.py:1172
-#: appPlugins/ToolFiducials.py:685 appPlugins/ToolMarkers.py:1010 appPlugins/ToolMove.py:170
-#: appPlugins/ToolQRCode.py:551 appMain.py:5343
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305 appMain.py:5360
+#: appObjects/AppObject.py:353 appObjects/AppObjectTemplate.py:187
+#: appObjects/AppObjectTemplate.py:361 appObjects/AppObjectTemplate.py:392
+#: appObjects/AppObjectTemplate.py:408 appObjects/CNCJobObject.py:685
+#: appObjects/GerberObject.py:1039 appPlugins/ToolCopperThieving.py:1155
+#: appPlugins/ToolFiducials.py:706 appPlugins/ToolMarkers.py:1077 appPlugins/ToolMove.py:163
+#: appPlugins/ToolQRCode.py:539
msgid "Plotting"
msgstr ""
-#: appEditors/AppGerberEditor.py:5781
+#: appEditors/AppGerberEditor.py:5789
msgid "Failed. No aperture geometry is selected."
msgstr ""
-#: appEditors/AppGerberEditor.py:5956
+#: appEditors/AppGerberEditor.py:5883 appEditors/exc_plugins/ExcCopyPlugin.py:512
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:357
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:421
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:441
+#: appEditors/geo_plugins/GeoCopyPlugin.py:512
+msgid "Click on the circular array Center position"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:5964
msgid "No aperture to buffer. Select at least one aperture and try again."
msgstr ""
-#: appEditors/AppGerberEditor.py:5987
+#: appEditors/AppGerberEditor.py:5995
msgid "Scale factor value is missing or wrong format. Add it and retry."
msgstr ""
-#: appEditors/AppGerberEditor.py:6019
+#: appEditors/AppGerberEditor.py:6027
msgid "No aperture to scale. Select at least one aperture and try again."
msgstr ""
-#: appEditors/AppGerberEditor.py:6071
+#: appEditors/AppGerberEditor.py:6079
msgid "Polygons marked."
msgstr ""
-#: appEditors/AppGerberEditor.py:6073
+#: appEditors/AppGerberEditor.py:6081
msgid "No polygons were marked. None fit within the limits."
msgstr ""
-#: appEditors/AppGerberEditor.py:6136 appGUI/MainGUI.py:779 appGUI/MainGUI.py:1807
+#: appEditors/AppGerberEditor.py:6144 appGUI/MainGUI.py:822 appGUI/MainGUI.py:1855
#: appGUI/ObjectUI.py:244
msgid "Gerber Editor"
msgstr ""
-#: appEditors/AppGerberEditor.py:6169 appGUI/ObjectUI.py:299 appObjects/FlatCAMObj.py:549
-#: appPlugins/ToolReport.py:187
+#: appEditors/AppGerberEditor.py:6177 appGUI/ObjectUI.py:299
+#: appObjects/AppObjectTemplate.py:549 appPlugins/ToolReport.py:174
msgid "Apertures"
msgstr ""
-#: appEditors/AppGerberEditor.py:6171 appGUI/ObjectUI.py:301
+#: appEditors/AppGerberEditor.py:6179 appGUI/ObjectUI.py:301
msgid "Apertures Table for the Gerber Object."
msgstr ""
-#: appEditors/AppGerberEditor.py:6187 appGUI/ObjectUI.py:338
+#: appEditors/AppGerberEditor.py:6195 appGUI/ObjectUI.py:338
msgid "Index"
msgstr ""
-#: appEditors/AppGerberEditor.py:6189 appGUI/ObjectUI.py:340 appPlugins/ToolExtract.py:1084
-#: appPlugins/ToolPunchGerber.py:2114
+#: appEditors/AppGerberEditor.py:6197 appGUI/ObjectUI.py:340 appPlugins/ToolExtract.py:1114
+#: appPlugins/ToolPunchGerber.py:2127
msgid "Aperture Code"
msgstr ""
-#: appEditors/AppGerberEditor.py:6191 appGUI/ObjectUI.py:342 appPlugins/ToolExtract.py:1086
-#: appPlugins/ToolPunchGerber.py:2116
+#: appEditors/AppGerberEditor.py:6199 appGUI/ObjectUI.py:342 appPlugins/ToolExtract.py:1116
+#: appPlugins/ToolPunchGerber.py:2129
msgid "Type of aperture: circular, rectangle, macros etc"
msgstr ""
-#: appEditors/AppGerberEditor.py:6193 appGUI/ObjectUI.py:344 appPlugins/ToolExtract.py:1088
-#: appPlugins/ToolPunchGerber.py:2118
+#: appEditors/AppGerberEditor.py:6201 appGUI/ObjectUI.py:344 appPlugins/ToolExtract.py:1118
+#: appPlugins/ToolPunchGerber.py:2131
msgid "Aperture Size:"
msgstr ""
-#: appEditors/AppGerberEditor.py:6195 appGUI/ObjectUI.py:346
+#: appEditors/AppGerberEditor.py:6203 appGUI/ObjectUI.py:346
msgid ""
"Aperture Dimensions:\n"
" - (width, height) for R, O type.\n"
" - (dia, nVertices) for P type"
msgstr ""
-#: appEditors/AppGerberEditor.py:6220
+#: appEditors/AppGerberEditor.py:6228
msgid "Add/Delete Aperture"
msgstr ""
-#: appEditors/AppGerberEditor.py:6222
+#: appEditors/AppGerberEditor.py:6230
msgid "Add/Delete an aperture in the aperture table"
msgstr ""
-#: appEditors/AppGerberEditor.py:6228
+#: appEditors/AppGerberEditor.py:6236
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:59
msgid "Code for the new aperture"
msgstr ""
-#: appEditors/AppGerberEditor.py:6238
+#: appEditors/AppGerberEditor.py:6246
msgid "Size:"
msgstr ""
-#: appEditors/AppGerberEditor.py:6240
+#: appEditors/AppGerberEditor.py:6248
msgid ""
"Size for the new aperture.\n"
"If aperture type is 'R' or 'O' then\n"
@@ -3505,7 +2675,7 @@ msgid ""
"sqrt(width**2 + height**2)"
msgstr ""
-#: appEditors/AppGerberEditor.py:6257
+#: appEditors/AppGerberEditor.py:6265
msgid ""
"Select the type of new aperture. Can be:\n"
"C = circular\n"
@@ -3513,68 +2683,105 @@ msgid ""
"O = oblong"
msgstr ""
-#: appEditors/AppGerberEditor.py:6270
+#: appEditors/AppGerberEditor.py:6278
msgid "Dims"
msgstr ""
-#: appEditors/AppGerberEditor.py:6272
+#: appEditors/AppGerberEditor.py:6280
msgid ""
"Dimensions for the new aperture.\n"
"The format is (width, height)"
msgstr ""
-#: appEditors/AppGerberEditor.py:6294
+#: appEditors/AppGerberEditor.py:6302
msgid "Add a new aperture to the aperture list."
msgstr ""
-#: appEditors/AppGerberEditor.py:6303
+#: appEditors/AppGerberEditor.py:6311
msgid "Delete a aperture in the aperture list"
msgstr ""
-#: appEditors/AppGerberEditor.py:6338
+#: appEditors/AppGerberEditor.py:6346
msgid "Valid"
msgstr ""
-#: appEditors/AppGerberEditor.py:6340
+#: appEditors/AppGerberEditor.py:6348
msgid "Show if the selected polygon is valid."
msgstr ""
-#: appEditors/AppGerberEditor.py:6347
+#: appEditors/AppGerberEditor.py:6355
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:83
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:124
-#: appPlugins/ToolCalculators.py:695 appPlugins/ToolCalculators.py:740
-#: appPlugins/ToolCopperThieving.py:1357
+#: appPlugins/ToolCalculators.py:692 appPlugins/ToolCalculators.py:736
+#: appPlugins/ToolCopperThieving.py:1339
msgid "Area"
msgstr ""
-#: appEditors/AppGerberEditor.py:6349
+#: appEditors/AppGerberEditor.py:6357
msgid "Show the area of the selected polygon."
msgstr ""
-#: appEditors/AppGerberEditor.py:6353
+#: appEditors/AppGerberEditor.py:6361
#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:198
#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:45
#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:41
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:102 appPlugins/ToolCalculators.py:552
-#: appPlugins/ToolCopperThieving.py:1369 appPlugins/ToolPcbWizard.py:497
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:102 appPlugins/ToolCalculators.py:545
+#: appPlugins/ToolCopperThieving.py:1351 appPlugins/ToolImage.py:574
+#: appPlugins/ToolPcbWizard.py:486
msgid "mm"
msgstr ""
-#: appEditors/AppGerberEditor.py:6353 appPlugins/ToolCopperThieving.py:1371
-#: appPlugins/ToolCopperThieving.py:1746
+#: appEditors/AppGerberEditor.py:6361 appPlugins/ToolCopperThieving.py:1353
+#: appPlugins/ToolCopperThieving.py:1726 appPlugins/ToolImage.py:574
msgid "in"
msgstr ""
-#: appEditors/AppGerberEditor.py:6440
+#: appEditors/AppGerberEditor.py:6400 appEditors/geo_plugins/GeoSimplificationPlugin.py:167
+#: appGUI/MainGUI.py:764 appGUI/MainGUI.py:1828 appGUI/ObjectUI.py:1185
+msgid "Simplification"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6402 appGUI/ObjectUI.py:1187
+msgid "Simplify a geometry by reducing its vertex points number."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6407 appEditors/geo_plugins/GeoSimplificationPlugin.py:244
+#: appGUI/ObjectUI.py:1223 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:85
+msgid "Tolerance"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6409 appEditors/geo_plugins/GeoSimplificationPlugin.py:246
+#: appGUI/ObjectUI.py:1225 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:301
+#: appPlugins/ToolIsolation.py:3832
+msgid ""
+"All points in the simplified object will be\n"
+"within the tolerance distance of the original geometry."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6425 appEditors/geo_plugins/GeoSimplificationPlugin.py:261
+#: appGUI/ObjectUI.py:1240
+msgid "Simplify a geometry element by reducing its vertex points number."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6448
msgid "Buffer Aperture"
msgstr ""
-#: appEditors/AppGerberEditor.py:6442
+#: appEditors/AppGerberEditor.py:6450
msgid "Buffer a aperture in the aperture list"
msgstr ""
-#: appEditors/AppGerberEditor.py:6461
+#: appEditors/AppGerberEditor.py:6463 appEditors/geo_plugins/GeoBufferPlugin.py:379
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:226
+msgid "Buffer distance"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6467 appEditors/geo_plugins/GeoBufferPlugin.py:382
+msgid "Buffer corner"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6469
msgid ""
"There are 3 types of corners:\n"
" - 'Round': the corner is rounded.\n"
@@ -3583,131 +2790,925 @@ msgid ""
"corner"
msgstr ""
-#: appEditors/AppGerberEditor.py:6498
+#: appEditors/AppGerberEditor.py:6475 appEditors/geo_plugins/GeoBufferPlugin.py:390
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:283
+msgid "Round"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6476 appEditors/geo_plugins/GeoBufferPlugin.py:391
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:284
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:59
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:188
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:77
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:59
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:185
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:140
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:449
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:335
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:469
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:326
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:290 appPlugins/ToolDrilling.py:2968
+#: appPlugins/ToolExtract.py:1079 appPlugins/ToolExtract.py:1224
+#: appPlugins/ToolFollow.py:746 appPlugins/ToolInvertGerber.py:279
+#: appPlugins/ToolIsolation.py:3960 appPlugins/ToolMilling.py:5021
+#: appPlugins/ToolNCC.py:4575 appPlugins/ToolPaint.py:3334
+#: appPlugins/ToolPunchGerber.py:2092 appPlugins/ToolPunchGerber.py:2258
+#: appPlugins/ToolQRCode.py:901
+msgid "Square"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6477 appEditors/geo_plugins/GeoBufferPlugin.py:392
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:285
+msgid "Beveled"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6506
msgid "Scale Aperture"
msgstr ""
-#: appEditors/AppGerberEditor.py:6500
+#: appEditors/AppGerberEditor.py:6508
msgid "Scale a aperture in the aperture list"
msgstr ""
-#: appEditors/AppGerberEditor.py:6508
+#: appEditors/AppGerberEditor.py:6516
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:251
msgid "Scale factor"
msgstr ""
-#: appEditors/AppGerberEditor.py:6510
+#: appEditors/AppGerberEditor.py:6518
msgid ""
"The factor by which to scale the selected aperture.\n"
"Values can be between 0.0000 and 999.9999"
msgstr ""
-#: appEditors/AppGerberEditor.py:6547
+#: appEditors/AppGerberEditor.py:6534 appEditors/AppGerberEditor.py:6781
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:601 appGUI/MainGUI.py:853
+#: appGUI/MainGUI.py:1332 appGUI/MainGUI.py:1877 appGUI/MainGUI.py:2701
+#: appGUI/MainGUI.py:5521 appGUI/ObjectUI.py:121
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:42
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:171 appPlugins/ToolFilm.py:1349
+#: appPlugins/ToolTransform.py:566 appPlugins/ToolTransform.py:788
+msgid "Scale"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6555
msgid "Mark polygons"
msgstr ""
-#: appEditors/AppGerberEditor.py:6549
+#: appEditors/AppGerberEditor.py:6557
msgid "Mark the polygon areas."
msgstr ""
-#: appEditors/AppGerberEditor.py:6558
+#: appEditors/AppGerberEditor.py:6566
msgid "Area UPPER threshold"
msgstr ""
-#: appEditors/AppGerberEditor.py:6560
+#: appEditors/AppGerberEditor.py:6568
msgid ""
"The threshold value, all areas less than this are marked.\n"
"Can have a value between 0.0000 and 10000.0000"
msgstr ""
-#: appEditors/AppGerberEditor.py:6571
+#: appEditors/AppGerberEditor.py:6579
msgid "Area LOWER threshold"
msgstr ""
-#: appEditors/AppGerberEditor.py:6573
+#: appEditors/AppGerberEditor.py:6581
msgid ""
"The threshold value, all areas more than this are marked.\n"
"Can have a value between 0.0000 and 10000.0000"
msgstr ""
-#: appEditors/AppGerberEditor.py:6587
+#: appEditors/AppGerberEditor.py:6595
msgid "Mark"
msgstr ""
-#: appEditors/AppGerberEditor.py:6590
+#: appEditors/AppGerberEditor.py:6598
msgid "Mark the polygons that fit within limits."
msgstr ""
-#: appEditors/AppGerberEditor.py:6597
+#: appEditors/AppGerberEditor.py:6605
msgid "Delete all the marked polygons."
msgstr ""
-#: appEditors/AppGerberEditor.py:6604
+#: appEditors/AppGerberEditor.py:6612
msgid "Clear all the markings."
msgstr ""
-#: appEditors/AppGerberEditor.py:6627 appGUI/MainGUI.py:787 appGUI/MainGUI.py:1270
-#: appGUI/MainGUI.py:2634 appGUI/MainGUI.py:5395
+#: appEditors/AppGerberEditor.py:6635 appGUI/MainGUI.py:830 appGUI/MainGUI.py:1315
+#: appGUI/MainGUI.py:2684 appGUI/MainGUI.py:5511
msgid "Add Pad Array"
msgstr ""
-#: appEditors/AppGerberEditor.py:6629
+#: appEditors/AppGerberEditor.py:6637
msgid "Add an array of pads (linear or circular array)"
msgstr ""
-#: appEditors/AppGerberEditor.py:6636
+#: appEditors/AppGerberEditor.py:6644
msgid ""
"Select the type of pads array to create.\n"
"It can be Linear X(Y) or Circular"
msgstr ""
-#: appEditors/AppGerberEditor.py:6647
+#: appEditors/AppGerberEditor.py:6648 appEditors/exc_plugins/ExcCopyPlugin.py:209
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:190
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:255
+#: appEditors/geo_plugins/GeoCopyPlugin.py:209
+msgid "Linear"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6649 appEditors/exc_plugins/ExcCopyPlugin.py:211
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:191
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:256
+#: appEditors/geo_plugins/GeoCopyPlugin.py:211
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:43
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:162
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:99
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:43
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:159
+#: appPlugins/ToolExtract.py:1063 appPlugins/ToolExtract.py:1198
+#: appPlugins/ToolFiducials.py:1123 appPlugins/ToolPunchGerber.py:2076
+#: appPlugins/ToolPunchGerber.py:2232
+msgid "Circular"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6655
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:96
msgid "Nr of pads"
msgstr ""
-#: appEditors/AppGerberEditor.py:6649
+#: appEditors/AppGerberEditor.py:6657
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:98
msgid "Specify how many pads to be in the array."
msgstr ""
-#: appEditors/AppGerberEditor.py:7467
+#: appEditors/AppGerberEditor.py:6677 appEditors/exc_plugins/ExcCopyPlugin.py:236
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:226
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:290
+#: appEditors/geo_plugins/GeoCopyPlugin.py:236
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:134
+msgid ""
+"Direction on which the linear array is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the array inclination"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6683 appEditors/exc_plugins/ExcCopyPlugin.py:243
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:154
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:233
+#: appEditors/exc_plugins/ExcDrillPlugin.py:161
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:152
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:206
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:297
+#: appEditors/exc_plugins/ExcSlotPlugin.py:161 appEditors/exc_plugins/ExcSlotPlugin.py:215
+#: appEditors/geo_plugins/GeoCirclePlugin.py:203 appEditors/geo_plugins/GeoCopyPlugin.py:243
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:248 appGUI/GUIElements.py:5326
+#: appGUI/MainGUI.py:528 appGUI/MainGUI.py:744 appGUI/MainGUI.py:5001 appGUI/MainGUI.py:5269
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:99
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:210
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:269
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:140
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:166 appPlugins/ToolFilm.py:1496
+msgid "X"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6684 appEditors/exc_plugins/ExcCopyPlugin.py:244
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:162
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:234
+#: appEditors/exc_plugins/ExcDrillPlugin.py:169
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:160
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:207
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:298
+#: appEditors/exc_plugins/ExcSlotPlugin.py:169 appEditors/exc_plugins/ExcSlotPlugin.py:216
+#: appEditors/geo_plugins/GeoCirclePlugin.py:211 appEditors/geo_plugins/GeoCopyPlugin.py:244
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:256 appGUI/GUIElements.py:5333
+#: appGUI/MainGUI.py:531 appGUI/MainGUI.py:5002 appGUI/MainGUI.py:5270
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:211
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:270
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:141
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:167 appPlugins/ToolFilm.py:1497
+msgid "Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6685 appEditors/AppGerberEditor.py:6705
+#: appEditors/AppGerberEditor.py:6742 appEditors/AppGerberEditor.py:6852
+#: appEditors/exc_plugins/ExcCopyPlugin.py:245 appEditors/exc_plugins/ExcCopyPlugin.py:265
+#: appEditors/exc_plugins/ExcCopyPlugin.py:429
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:235
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:255
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:296
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:208
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:214
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:299
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:319
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:359
+#: appEditors/exc_plugins/ExcSlotPlugin.py:217 appEditors/exc_plugins/ExcSlotPlugin.py:223
+#: appEditors/geo_plugins/GeoCirclePlugin.py:248 appEditors/geo_plugins/GeoCopyPlugin.py:245
+#: appEditors/geo_plugins/GeoCopyPlugin.py:265 appEditors/geo_plugins/GeoCopyPlugin.py:429
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:670
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:101
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:120
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:212
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:217
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:271
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:292
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:142
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:160
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:123
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:102 appPlugins/ToolDistance.py:935
+#: appPlugins/ToolDistance.py:948 appPlugins/ToolFilm.py:1434
+#: appPlugins/ToolObjectDistance.py:555 appPlugins/ToolTransform.py:683
+msgid "Angle"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6691 appEditors/exc_plugins/ExcCopyPlugin.py:252
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:242
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:305
+#: appEditors/geo_plugins/GeoCopyPlugin.py:252
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:107
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:277
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:148
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:295 appPlugins/ToolCutOut.py:2746
+msgid "Pitch"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6693 appEditors/exc_plugins/ExcCopyPlugin.py:254
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:244
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:307
+#: appEditors/geo_plugins/GeoCopyPlugin.py:254
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:109
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:279
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:150
+msgid "Pitch = Distance between elements of the array."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6707 appEditors/exc_plugins/ExcCopyPlugin.py:267
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:257
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:321
+#: appEditors/geo_plugins/GeoCopyPlugin.py:267
+msgid ""
+"Angle at which the linear array is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360.00 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6731 appEditors/exc_plugins/ExcCopyPlugin.py:418
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:285
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:348
+#: appEditors/geo_plugins/GeoCopyPlugin.py:418
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:148
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:320
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:188
+msgid ""
+"Direction for circular array.\n"
+"Can be CW = clockwise or CCW = counter clockwise."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6735 appEditors/exc_plugins/ExcCopyPlugin.py:422
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:289
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:352
+#: appEditors/geo_plugins/GeoCopyPlugin.py:422
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:152
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:324
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:192
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:371
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:404
+msgid "CW"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6736 appEditors/exc_plugins/ExcCopyPlugin.py:423
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:290
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:353
+#: appEditors/geo_plugins/GeoCopyPlugin.py:423
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:153
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:325
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:193
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:372
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:405
+msgid "CCW"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6744 appEditors/exc_plugins/ExcCopyPlugin.py:430
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:297
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:360
+#: appEditors/geo_plugins/GeoCopyPlugin.py:430
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:122
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:161
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:294
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:333
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:162
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:201
+msgid "Angle at which each element in circular array is placed."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6778 appEditors/AppGerberEditor.py:7228
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:90
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:598 appGUI/MainGUI.py:772
+#: appPlugins/ToolTransform.py:81 appPlugins/ToolTransform.py:563
+msgid "Transformation"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6779 appEditors/AppGerberEditor.py:6868
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:599
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:686
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88 appPlugins/ToolTransform.py:564
+#: appPlugins/ToolTransform.py:674 appPlugins/ToolTransform.py:699
+msgid "Rotate"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6780 appEditors/geo_plugins/GeoTransformationPlugin.py:600
+#: appPlugins/ToolTransform.py:565
+msgid "Skew/Shear"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6782 appEditors/geo_plugins/GeoTransformationPlugin.py:602
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160 appPlugins/ToolDblSided.py:1008
+#: appPlugins/ToolFilm.py:1490 appPlugins/ToolTransform.py:567
+msgid "Mirror"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6812 appEditors/geo_plugins/GeoTransformationPlugin.py:630
+#: appGUI/GUIElements.py:4376 appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:89
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:147
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:94
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:42 appPlugins/ToolDblSided.py:887
+#: appPlugins/ToolDblSided.py:1078 appPlugins/ToolFilm.py:1389 appPlugins/ToolFilm.py:1460
+#: appPlugins/ToolMarkers.py:1348 appPlugins/ToolPanelize.py:1208
+#: appPlugins/ToolTransform.py:605
+msgid "Reference"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6814 appEditors/geo_plugins/GeoTransformationPlugin.py:632
+msgid ""
+"The reference point for Rotate, Skew, Scale, Mirror.\n"
+"Can be:\n"
+"- Origin -> it is the 0, 0 point\n"
+"- Selection -> the center of the bounding box of the selected objects\n"
+"- Point -> a custom point defined by X,Y coordinates\n"
+"- Min Selection -> the point (minx, miny) of the bounding box of the selection"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6822 appEditors/geo_plugins/GeoTransformationPlugin.py:640
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52 appPlugins/ToolTransform.py:615
+msgid "Origin"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6822 appEditors/AppGerberEditor.py:7237
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:103
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:640
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:266
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:120
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:313
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:310
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:257
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52 appPlugins/ToolFiducials.py:1149
+#: appPlugins/ToolFollow.py:727 appPlugins/ToolIsolation.py:3884
+#: appPlugins/ToolMarkers.py:1439 appPlugins/ToolNCC.py:4536 appPlugins/ToolPaint.py:3285
+#: appPlugins/ToolPunchGerber.py:2320 appPlugins/ToolTransform.py:615 defaults.py:630
+msgid "Selection"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6822 appEditors/geo_plugins/GeoTransformationPlugin.py:640
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:107
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:58 appPlugins/ToolDblSided.py:898
+#: appPlugins/ToolTransform.py:615
+msgid "Point"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6822 appEditors/geo_plugins/GeoTransformationPlugin.py:640
+msgid "Minimum"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6828 appEditors/AppGerberEditor.py:7124
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:132
+#: appEditors/exc_plugins/ExcDrillPlugin.py:139
+#: appEditors/exc_plugins/ExcResizePlugin.py:131
+#: appEditors/exc_plugins/ExcResizePlugin.py:150
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:130
+#: appEditors/exc_plugins/ExcSlotPlugin.py:139 appEditors/geo_plugins/GeoCirclePlugin.py:283
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:646
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:942
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:136
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:73
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:48
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:70
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:92
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:148
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:170
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:192
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:227
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:261
+#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:283
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:296 appMain.py:9175
+#: appPlugins/ToolExtract.py:1282 appPlugins/ToolExtract.py:1311
+#: appPlugins/ToolPunchGerber.py:2199 appPlugins/ToolPunchGerber.py:2307
+#: appPlugins/ToolRulesCheck.py:1480 appPlugins/ToolRulesCheck.py:1504
+#: appPlugins/ToolRulesCheck.py:1529 appPlugins/ToolRulesCheck.py:1554
+#: appPlugins/ToolRulesCheck.py:1591 appPlugins/ToolRulesCheck.py:1616
+#: appPlugins/ToolRulesCheck.py:1641 appPlugins/ToolRulesCheck.py:1679
+#: appPlugins/ToolRulesCheck.py:1716 appPlugins/ToolRulesCheck.py:1741
+#: appPlugins/ToolTransform.py:621 appPlugins/ToolTransform.py:986
+msgid "Value"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6830 appEditors/geo_plugins/GeoTransformationPlugin.py:648
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 appPlugins/ToolTransform.py:623
+msgid "A point of reference in format X,Y."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6839 appEditors/geo_plugins/GeoTransformationPlugin.py:657
+#: appPlugins/ToolTransform.py:632
+msgid "Add point coordinates from clipboard."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6854 appEditors/geo_plugins/GeoTransformationPlugin.py:672
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:104 appPlugins/ToolTransform.py:685
+msgid ""
+"Angle, in degrees.\n"
+"Float number between -360 and 359.\n"
+"Positive numbers for CW motion.\n"
+"Negative numbers for CCW motion."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6870 appEditors/geo_plugins/GeoTransformationPlugin.py:688
+#: appPlugins/ToolTransform.py:701
+msgid ""
+"Rotate the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6890 appEditors/AppGerberEditor.py:6952
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:708
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:770
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:125
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177 appPlugins/ToolTransform.py:724
+#: appPlugins/ToolTransform.py:794
+msgid "Link"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6892 appEditors/AppGerberEditor.py:6954
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:710
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:772
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:127
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:179 appPlugins/ToolTransform.py:726
+#: appPlugins/ToolTransform.py:796
+msgid "Link the Y entry to X entry and copy its content."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6897 appEditors/geo_plugins/GeoTransformationPlugin.py:715
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:143 appPlugins/ToolTransform.py:737
+msgid "X angle"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6899 appEditors/AppGerberEditor.py:6920
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:717
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:738 appPlugins/ToolTransform.py:739
+#: appPlugins/ToolTransform.py:760
+msgid ""
+"Angle for Skew action, in degrees.\n"
+"Float number between -360 and 360."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6907 appEditors/geo_plugins/GeoTransformationPlugin.py:725
+#: appPlugins/ToolTransform.py:747
+msgid "Skew X"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6909 appEditors/AppGerberEditor.py:6930
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:727
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:748 appPlugins/ToolTransform.py:749
+#: appPlugins/ToolTransform.py:770
+msgid ""
+"Skew/shear the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6918 appEditors/geo_plugins/GeoTransformationPlugin.py:736
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:157 appPlugins/ToolTransform.py:758
+msgid "Y angle"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6928 appEditors/geo_plugins/GeoTransformationPlugin.py:746
+#: appPlugins/ToolTransform.py:768
+msgid "Skew Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6959 appEditors/geo_plugins/GeoTransformationPlugin.py:777
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:194 appPlugins/ToolTransform.py:806
+msgid "X factor"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6961 appEditors/geo_plugins/GeoTransformationPlugin.py:779
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:196 appPlugins/ToolTransform.py:808
+msgid "Factor for scaling on X axis."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6968 appEditors/geo_plugins/GeoTransformationPlugin.py:786
+#: appPlugins/ToolTransform.py:815
+msgid "Scale X"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6970 appEditors/AppGerberEditor.py:6990
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:788
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:808 appPlugins/ToolTransform.py:817
+#: appPlugins/ToolTransform.py:837
+msgid ""
+"Scale the selected object(s).\n"
+"The point of reference depends on \n"
+"the Scale reference checkbox state."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6979 appEditors/geo_plugins/GeoTransformationPlugin.py:797
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:207 appPlugins/ToolTransform.py:826
+msgid "Y factor"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6981 appEditors/geo_plugins/GeoTransformationPlugin.py:799
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:209 appPlugins/ToolTransform.py:828
+msgid "Factor for scaling on Y axis."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:6988 appEditors/geo_plugins/GeoTransformationPlugin.py:806
+#: appPlugins/ToolTransform.py:835
+msgid "Scale Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7015 appEditors/geo_plugins/GeoTransformationPlugin.py:833
+#: appPlugins/ToolTransform.py:865
+msgid "Flip on X"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7017 appEditors/AppGerberEditor.py:7022
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:835
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:840 appPlugins/ToolTransform.py:867
+#: appPlugins/ToolTransform.py:872
+msgid "Flip the selected object(s) over the X axis."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7020 appEditors/geo_plugins/GeoTransformationPlugin.py:838
+#: appPlugins/ToolTransform.py:870
+msgid "Flip on Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7040 appEditors/geo_plugins/GeoTransformationPlugin.py:858
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:69
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:128
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:231 appPlugins/ToolFilm.py:1369
+#: appPlugins/ToolFilm.py:1440 appPlugins/ToolTransform.py:893
+msgid "X val"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7042 appEditors/geo_plugins/GeoTransformationPlugin.py:860
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:233 appPlugins/ToolTransform.py:895
+msgid "Distance to offset on X axis. In current units."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7049 appEditors/geo_plugins/GeoTransformationPlugin.py:867
+#: appPlugins/ToolTransform.py:902
+msgid "Offset X"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7051 appEditors/AppGerberEditor.py:7071
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:869
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:889 appPlugins/ToolTransform.py:904
+#: appPlugins/ToolTransform.py:924
+msgid ""
+"Offset the selected object(s).\n"
+"The point of reference is the middle of\n"
+"the bounding box for all selected objects.\n"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7060 appEditors/geo_plugins/GeoTransformationPlugin.py:878
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:79
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:137
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:244 appPlugins/ToolFilm.py:1379
+#: appPlugins/ToolFilm.py:1450 appPlugins/ToolTransform.py:913
+msgid "Y val"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7062 appEditors/geo_plugins/GeoTransformationPlugin.py:880
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:246 appPlugins/ToolTransform.py:915
+msgid "Distance to offset on Y axis. In current units."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7069 appEditors/geo_plugins/GeoTransformationPlugin.py:887
+#: appPlugins/ToolTransform.py:922
+msgid "Offset Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7089 appEditors/geo_plugins/GeoTransformationPlugin.py:907
+#: appGUI/ObjectUI.py:519 appGUI/ObjectUI.py:561
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:76
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:209
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:263 appPlugins/ToolFilm.py:1539
+#: appPlugins/ToolInvertGerber.py:278 appPlugins/ToolQRCode.py:900
+#: appPlugins/ToolTransform.py:945
+msgid "Rounded"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7091 appEditors/geo_plugins/GeoTransformationPlugin.py:909
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:265 appPlugins/ToolTransform.py:947
+msgid ""
+"If checked then the buffer will surround the buffered shape,\n"
+"every corner will be rounded.\n"
+"If not checked then the buffer will follow the exact geometry\n"
+"of the buffered shape."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7099 appEditors/geo_plugins/GeoTransformationPlugin.py:917
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:279 appPlugins/ToolDistance.py:181
+#: appPlugins/ToolDistance.py:810 appPlugins/ToolTransform.py:961
+msgid "Distance"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7101 appEditors/geo_plugins/GeoTransformationPlugin.py:919
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:281 appPlugins/ToolTransform.py:963
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased with the 'distance'."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7113 appEditors/geo_plugins/GeoTransformationPlugin.py:931
+#: appPlugins/ToolTransform.py:975
+msgid "Buffer D"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7115 appEditors/geo_plugins/GeoTransformationPlugin.py:933
+#: appPlugins/ToolTransform.py:977
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the distance."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7126 appEditors/geo_plugins/GeoTransformationPlugin.py:944
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:298 appPlugins/ToolTransform.py:988
+msgid ""
+"A positive value will create the effect of dilation,\n"
+"while a negative value will create the effect of erosion.\n"
+"Each geometry element of the object will be increased\n"
+"or decreased to fit the 'Value'. Value is a percentage\n"
+"of the initial dimension."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7139 appEditors/geo_plugins/GeoTransformationPlugin.py:957
+#: appPlugins/ToolTransform.py:1001
+msgid "Buffer F"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7141 appEditors/geo_plugins/GeoTransformationPlugin.py:959
+#: appPlugins/ToolTransform.py:1003
+msgid ""
+"Create the buffer effect on each geometry,\n"
+"element from the selected object, using the factor."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7201 appEditors/AppGerberEditor.py:7210
+#: appEditors/exc_plugins/ExcCopyPlugin.py:54 appEditors/exc_plugins/ExcCopyPlugin.py:63
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:49
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:58
+#: appEditors/exc_plugins/ExcDrillPlugin.py:54 appEditors/exc_plugins/ExcDrillPlugin.py:63
+#: appEditors/exc_plugins/ExcResizePlugin.py:54 appEditors/exc_plugins/ExcResizePlugin.py:63
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:51
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:60
+#: appEditors/exc_plugins/ExcSlotPlugin.py:54 appEditors/exc_plugins/ExcSlotPlugin.py:63
+#: appEditors/geo_plugins/GeoBufferPlugin.py:48 appEditors/geo_plugins/GeoBufferPlugin.py:57
+#: appEditors/geo_plugins/GeoCirclePlugin.py:57 appEditors/geo_plugins/GeoCopyPlugin.py:54
+#: appEditors/geo_plugins/GeoCopyPlugin.py:63 appEditors/geo_plugins/GeoPaintPlugin.py:44
+#: appEditors/geo_plugins/GeoPaintPlugin.py:53 appEditors/geo_plugins/GeoPathPlugin.py:54
+#: appEditors/geo_plugins/GeoPathPlugin.py:63
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:57
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:51
+#: appEditors/geo_plugins/GeoSimplificationPlugin.py:60
+#: appEditors/geo_plugins/GeoTextPlugin.py:51 appEditors/geo_plugins/GeoTextPlugin.py:60
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:63
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:72 appPlugins/ToolAlignObjects.py:85
+#: appPlugins/ToolAlignObjects.py:94 appPlugins/ToolCalculators.py:48
+#: appPlugins/ToolCalculators.py:57 appPlugins/ToolCopperThieving.py:91
+#: appPlugins/ToolCopperThieving.py:100 appPlugins/ToolCutOut.py:134
+#: appPlugins/ToolCutOut.py:143 appPlugins/ToolDblSided.py:59 appPlugins/ToolDblSided.py:68
+#: appPlugins/ToolDistance.py:102 appPlugins/ToolDistance.py:111
+#: appPlugins/ToolDistance.py:168 appPlugins/ToolDistance.py:177
+#: appPlugins/ToolDrilling.py:133 appPlugins/ToolDrilling.py:142
+#: appPlugins/ToolEtchCompensation.py:54 appPlugins/ToolEtchCompensation.py:63
+#: appPlugins/ToolExtract.py:90 appPlugins/ToolExtract.py:99 appPlugins/ToolFiducials.py:92
+#: appPlugins/ToolFiducials.py:101 appPlugins/ToolFilm.py:105 appPlugins/ToolFilm.py:114
+#: appPlugins/ToolFollow.py:78 appPlugins/ToolFollow.py:87 appPlugins/ToolImage.py:55
+#: appPlugins/ToolImage.py:64 appPlugins/ToolInvertGerber.py:54
+#: appPlugins/ToolInvertGerber.py:63 appPlugins/ToolIsolation.py:146
+#: appPlugins/ToolIsolation.py:155 appPlugins/ToolLevelling.py:131
+#: appPlugins/ToolLevelling.py:140 appPlugins/ToolMarkers.py:106
+#: appPlugins/ToolMarkers.py:115 appPlugins/ToolMilling.py:171 appPlugins/ToolMilling.py:180
+#: appPlugins/ToolNCC.py:147 appPlugins/ToolNCC.py:156 appPlugins/ToolObjectDistance.py:63
+#: appPlugins/ToolObjectDistance.py:72 appPlugins/ToolOptimal.py:66
+#: appPlugins/ToolOptimal.py:75 appPlugins/ToolPaint.py:154 appPlugins/ToolPaint.py:163
+#: appPlugins/ToolPanelize.py:60 appPlugins/ToolPanelize.py:69
+#: appPlugins/ToolPcbWizard.py:66 appPlugins/ToolPcbWizard.py:75
+#: appPlugins/ToolPunchGerber.py:115 appPlugins/ToolPunchGerber.py:124
+#: appPlugins/ToolQRCode.py:75 appPlugins/ToolQRCode.py:84 appPlugins/ToolReport.py:78
+#: appPlugins/ToolReport.py:87 appPlugins/ToolRulesCheck.py:69
+#: appPlugins/ToolRulesCheck.py:78 appPlugins/ToolSolderPaste.py:73
+#: appPlugins/ToolSolderPaste.py:82 appPlugins/ToolSub.py:115 appPlugins/ToolSub.py:124
+#: appPlugins/ToolTransform.py:45 appPlugins/ToolTransform.py:54
+msgid "Plugin"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7236 appEditors/geo_plugins/GeoTransformationPlugin.py:102
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:52
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:68 appPlugins/ToolDrilling.py:2922
+#: appPlugins/ToolMilling.py:4975 appPlugins/ToolPanelize.py:1228
+#: appPlugins/ToolTransform.py:615
+msgid "Object"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7312 appEditors/geo_plugins/GeoTransformationPlugin.py:163
+#: appPlugins/ToolTransform.py:175
+msgid "Incorrect format for Point value. Needs format X,Y"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7337 appEditors/geo_plugins/GeoTransformationPlugin.py:188
+#: appPlugins/ToolTransform.py:192
+msgid "Rotate transformation can not be done for a value of 0."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7395 appEditors/AppGerberEditor.py:7416
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:243
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:261 appPlugins/ToolTransform.py:250
+#: appPlugins/ToolTransform.py:271
+msgid "Scale transformation can not be done for a factor of 0 or 1."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7429 appEditors/AppGerberEditor.py:7438
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:274
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:283 appPlugins/ToolTransform.py:284
+#: appPlugins/ToolTransform.py:293
+msgid "Offset transformation can not be done for a value of 0."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7475
msgid "Appying Rotate"
msgstr ""
-#: appEditors/AppGerberEditor.py:7500
+#: appEditors/AppGerberEditor.py:7489 appEditors/AppGerberEditor.py:7531
+#: appEditors/AppGerberEditor.py:7571 appEditors/AppGerberEditor.py:7610
+#: appEditors/AppGerberEditor.py:7654 appEditors/AppGerberEditor.py:7690
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:328
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:361
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:395
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:429
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:462
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:483 appMain.py:6996 appMain.py:7042
+#: appPlugins/ToolTransform.py:343 appPlugins/ToolTransform.py:383
+#: appPlugins/ToolTransform.py:422 appPlugins/ToolTransform.py:457
+#: appPlugins/ToolTransform.py:494 appPlugins/ToolTransform.py:529
+msgid "Action was not executed"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7508
msgid "Applying Flip"
msgstr ""
-#: appEditors/AppGerberEditor.py:7543
+#: appEditors/AppGerberEditor.py:7520 appEditors/geo_plugins/GeoTransformationPlugin.py:354
+#: appMain.py:6994 appPlugins/ToolTransform.py:370
+msgid "Flip on Y axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7528 appEditors/geo_plugins/GeoTransformationPlugin.py:357
+#: appMain.py:7040 appPlugins/ToolTransform.py:379
+msgid "Flip on X axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7551
msgid "Applying Skew"
msgstr ""
-#: appEditors/AppGerberEditor.py:7584
+#: appEditors/AppGerberEditor.py:7567 appEditors/geo_plugins/GeoTransformationPlugin.py:390
+msgid "Skew on the X axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7569 appEditors/geo_plugins/GeoTransformationPlugin.py:392
+msgid "Skew on the Y axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7592
msgid "Applying Scale"
msgstr ""
-#: appEditors/AppGerberEditor.py:7620
+#: appEditors/AppGerberEditor.py:7605 appEditors/geo_plugins/GeoTransformationPlugin.py:425
+msgid "Scale on the X axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7607 appEditors/geo_plugins/GeoTransformationPlugin.py:427
+msgid "Scale on the Y axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7628
msgid "Applying Offset"
msgstr ""
-#: appEditors/AppGerberEditor.py:7656
+#: appEditors/AppGerberEditor.py:7649 appEditors/AppGerberEditor.py:7722
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:457
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:515 appPlugins/ToolMarkers.py:1366
+msgid "Offset on the X axis."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7651 appEditors/geo_plugins/GeoTransformationPlugin.py:459
+#: appPlugins/ToolMarkers.py:1379
+msgid "Offset on the Y axis."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7664
msgid "Applying Buffer"
msgstr ""
-#: appEditors/AppGerberEditor.py:7735
+#: appEditors/AppGerberEditor.py:7686 appEditors/geo_plugins/GeoTransformationPlugin.py:479
+#: appPlugins/ToolTransform.py:525
+msgid "Buffer done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7694 appEditors/geo_plugins/GeoTransformationPlugin.py:487
+msgid "Rotate ..."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7695 appEditors/AppGerberEditor.py:7747
+#: appEditors/AppGerberEditor.py:7763 appEditors/geo_plugins/GeoTransformationPlugin.py:488
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:540
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:556
+msgid "Enter an Angle Value (degrees)"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7704 appEditors/geo_plugins/GeoTransformationPlugin.py:497
+#: appPlugins/ToolTransform.py:341
+msgid "Rotate done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7707 appEditors/geo_plugins/GeoTransformationPlugin.py:500
+msgid "Rotate cancelled"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7712 appEditors/geo_plugins/GeoTransformationPlugin.py:505
+msgid "Offset on X axis ..."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7713 appEditors/AppGerberEditor.py:7731
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:506
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:524
+msgid "Enter a distance Value"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7725 appEditors/geo_plugins/GeoTransformationPlugin.py:518
+msgid "Offset X cancelled"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7730 appEditors/geo_plugins/GeoTransformationPlugin.py:523
+msgid "Offset on Y axis ..."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7740 appEditors/geo_plugins/GeoTransformationPlugin.py:533
+msgid "Offset on Y axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7743
msgid "Offset Y cancelled"
msgstr ""
-#: appEditors/AppGerberEditor.py:7751
+#: appEditors/AppGerberEditor.py:7746 appEditors/geo_plugins/GeoTransformationPlugin.py:539
+msgid "Skew on X axis ..."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7756 appEditors/geo_plugins/GeoTransformationPlugin.py:549
+msgid "Skew on X axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7759
msgid "Skew X cancelled"
msgstr ""
-#: appEditors/AppGerberEditor.py:7767
+#: appEditors/AppGerberEditor.py:7762 appEditors/geo_plugins/GeoTransformationPlugin.py:555
+msgid "Skew on Y axis ..."
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7772 appEditors/geo_plugins/GeoTransformationPlugin.py:565
+msgid "Skew on Y axis done"
+msgstr ""
+
+#: appEditors/AppGerberEditor.py:7775
msgid "Skew Y cancelled"
msgstr ""
-#: appEditors/AppTextEditor.py:87 appEditors/AppTextEditor.py:344 appGUI/GUIElements.py:4372
+#: appEditors/AppTextEditor.py:87 appEditors/AppTextEditor.py:358 appGUI/GUIElements.py:4490
msgid "Find"
msgstr ""
@@ -3732,12 +3733,12 @@ msgid "String to replace the one in the Find box throughout the text."
msgstr ""
#: appEditors/AppTextEditor.py:111 appEditors/appGCodeEditor.py:160
-#: appGUI/GUIElements.py:5236 appGUI/ObjectUI.py:1310
+#: appGUI/GUIElements.py:5354 appGUI/ObjectUI.py:1310
#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:59
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:309
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279 appPlugins/ToolExtract.py:1025
-#: appPlugins/ToolFollow.py:750 appPlugins/ToolIsolation.py:3832
-#: appPlugins/ToolPaint.py:3316 appPlugins/ToolPunchGerber.py:2056
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:323
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279 appPlugins/ToolExtract.py:1055
+#: appPlugins/ToolFollow.py:734 appPlugins/ToolIsolation.py:3894
+#: appPlugins/ToolPaint.py:3297 appPlugins/ToolPunchGerber.py:2069
msgid "All"
msgstr ""
@@ -3775,50 +3776,51 @@ msgstr ""
msgid "Will run the TCL commands found in the text file, one by one."
msgstr ""
-#: appEditors/AppTextEditor.py:224 appEditors/appGCodeEditor.py:704
+#: appEditors/AppTextEditor.py:238 appEditors/appGCodeEditor.py:707
msgid "Open file"
msgstr ""
-#: appEditors/AppTextEditor.py:255 appEditors/AppTextEditor.py:261
-#: appObjects/FlatCAMCNCJob.py:693 appObjects/FlatCAMCNCJob.py:699
-#: appPlugins/ToolLevelling.py:1485 appPlugins/ToolLevelling.py:1491
-#: appPlugins/ToolLevelling.py:1677 appPlugins/ToolLevelling.py:1683
-#: appPlugins/ToolSolderPaste.py:1146 appMain.py:8132 appMain.py:8138
+#: appEditors/AppTextEditor.py:269 appEditors/AppTextEditor.py:275 appMain.py:8152
+#: appMain.py:8158 appObjects/CNCJobObject.py:715 appObjects/CNCJobObject.py:721
+#: appPlugins/ToolLevelling.py:1466 appPlugins/ToolLevelling.py:1472
+#: appPlugins/ToolLevelling.py:1658 appPlugins/ToolLevelling.py:1664
+#: appPlugins/ToolSolderPaste.py:1180
msgid "Export Code ..."
msgstr ""
-#: appEditors/AppTextEditor.py:316 appObjects/FlatCAMCNCJob.py:748
-#: appObjects/FlatCAMCNCJob.py:1175 appPlugins/ToolLevelling.py:1509
-#: appPlugins/ToolLevelling.py:1701 appPlugins/ToolSolderPaste.py:1175
+#: appEditors/AppTextEditor.py:330 appObjects/CNCJobObject.py:758
+#: appObjects/CNCJobObject.py:1180 appPlugins/ToolLevelling.py:1490
+#: appPlugins/ToolLevelling.py:1682 appPlugins/ToolSolderPaste.py:1208
msgid "No such file or directory"
msgstr ""
-#: appEditors/AppTextEditor.py:328 appObjects/FlatCAMCNCJob.py:1189
+#: appEditors/AppTextEditor.py:342 appObjects/CNCJobObject.py:1194
+#: appPlugins/ToolSolderPaste.py:1219
msgid "Saved to"
msgstr ""
-#: appEditors/AppTextEditor.py:342
+#: appEditors/AppTextEditor.py:356
msgid "End of document."
msgstr ""
-#: appEditors/AppTextEditor.py:343
+#: appEditors/AppTextEditor.py:357
msgid "Start from beginning?"
msgstr ""
-#: appEditors/AppTextEditor.py:350 appGUI/GUIElements.py:2716 appGUI/GUIElements.py:2786
-#: appGUI/GUIElements.py:2847 appGUI/GUIElements.py:2912 appGUI/GUIElements.py:4306
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:417 appMain.py:4986 appMain.py:5154
-#: appMain.py:5245 appMain.py:9752 appMain.py:10106
+#: appEditors/AppTextEditor.py:364 appGUI/GUIElements.py:2768 appGUI/GUIElements.py:2838
+#: appGUI/GUIElements.py:2899 appGUI/GUIElements.py:2964 appGUI/GUIElements.py:4415
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:417 appMain.py:4999 appMain.py:5171
+#: appMain.py:5262 appMain.py:9781 appMain.py:10135 appMain.py:12006
msgid "Ok"
msgstr ""
-#: appEditors/appGCodeEditor.py:76 appGUI/GUIElements.py:4380 appGUI/MainGUI.py:169
-#: appGUI/MainGUI.py:351 appGUI/MainGUI.py:4901 appGUI/MainGUI.py:5162
-#: appGUI/MainGUI.py:5271 appGUI/MainGUI.py:5414
+#: appEditors/appGCodeEditor.py:76 appGUI/GUIElements.py:4498 appGUI/MainGUI.py:208
+#: appGUI/MainGUI.py:390 appGUI/MainGUI.py:5017 appGUI/MainGUI.py:5278
+#: appGUI/MainGUI.py:5387 appGUI/MainGUI.py:5530
msgid "Ctrl+S"
msgstr ""
-#: appEditors/appGCodeEditor.py:82 appMain.py:8295
+#: appEditors/appGCodeEditor.py:82 appMain.py:8316
msgid "Code Editor"
msgstr ""
@@ -3842,176 +3844,557 @@ msgstr ""
msgid "Start GCode"
msgstr ""
-#: appEditors/appGCodeEditor.py:679 appObjects/FlatCAMCNCJob.py:821
-#: appPlugins/ToolCalibration.py:482
+#: appEditors/appGCodeEditor.py:682 appObjects/CNCJobObject.py:831
msgid "Loaded Machine Code into Code Editor"
msgstr ""
-#: appEditors/appGCodeEditor.py:771 appGUI/ObjectUI.py:1330
-#: appPlugins/ToolSolderPaste.py:1061
+#: appEditors/appGCodeEditor.py:774 appGUI/ObjectUI.py:1330
+#: appPlugins/ToolSolderPaste.py:1112
msgid "GCode Editor"
msgstr ""
-#: appEditors/appGCodeEditor.py:809 appEditors/appGCodeEditor.py:820
+#: appEditors/appGCodeEditor.py:812 appEditors/appGCodeEditor.py:823
msgid "GCode"
msgstr ""
-#: appEditors/appGCodeEditor.py:820 appGUI/ObjectUI.py:741 appGUI/ObjectUI.py:1493
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:587 appObjects/FlatCAMObj.py:556
-#: appPlugins/ToolDrilling.py:2470 appPlugins/ToolMilling.py:4065
-#: appPlugins/ToolMilling.py:4325 appPlugins/ToolReport.py:194
+#: appEditors/appGCodeEditor.py:823 appGUI/ObjectUI.py:741 appGUI/ObjectUI.py:1500
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:587 appObjects/AppObjectTemplate.py:556
+#: appPlugins/ToolDrilling.py:2450 appPlugins/ToolMilling.py:4032
+#: appPlugins/ToolMilling.py:4292 appPlugins/ToolReport.py:181
msgid "Drills"
msgstr ""
-#: appEditors/appGCodeEditor.py:820 appGUI/ObjectUI.py:741 appGUI/ObjectUI.py:1493
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:176
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:588 appObjects/FlatCAMObj.py:558
-#: appPlugins/ToolDrilling.py:2470 appPlugins/ToolMilling.py:4065
-#: appPlugins/ToolMilling.py:4326 appPlugins/ToolReport.py:196
+#: appEditors/appGCodeEditor.py:823 appGUI/ObjectUI.py:741 appGUI/ObjectUI.py:1500
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:175
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:588 appObjects/AppObjectTemplate.py:558
+#: appPlugins/ToolDrilling.py:2450 appPlugins/ToolMilling.py:4032
+#: appPlugins/ToolMilling.py:4293 appPlugins/ToolReport.py:183
msgid "Slots"
msgstr ""
-#: appEditors/appGCodeEditor.py:840 appEditors/appGCodeEditor.py:862
+#: appEditors/appGCodeEditor.py:843 appEditors/appGCodeEditor.py:865
msgid "CNC Code Snippet"
msgstr ""
-#: appEditors/appGCodeEditor.py:842 appEditors/appGCodeEditor.py:864
+#: appEditors/appGCodeEditor.py:845 appEditors/appGCodeEditor.py:867
msgid "Code snippet defined in Preferences."
msgstr ""
-#: appEditors/appGCodeEditor.py:848 appEditors/appGCodeEditor.py:870
+#: appEditors/appGCodeEditor.py:851 appEditors/appGCodeEditor.py:873
msgid ""
"Type here any G-Code commands you would\n"
"like to insert at the cursor location."
msgstr ""
-#: appEditors/appGCodeEditor.py:854 appEditors/appGCodeEditor.py:876
+#: appEditors/appGCodeEditor.py:857 appEditors/appGCodeEditor.py:879
msgid "Insert Code"
msgstr ""
-#: appEditors/appGCodeEditor.py:857 appEditors/appGCodeEditor.py:879
+#: appEditors/appGCodeEditor.py:860 appEditors/appGCodeEditor.py:882
msgid "Insert the code above at the cursor location."
msgstr ""
-#: appGUI/GUIElements.py:427 appGUI/GUIElements.py:1182 appGUI/GUIElements.py:1586
+#: appEditors/exc_plugins/ExcCopyPlugin.py:152 appEditors/exc_plugins/ExcDrillPlugin.py:188
+#: appEditors/exc_plugins/ExcSlotPlugin.py:252 appEditors/geo_plugins/GeoCopyPlugin.py:152
+#: appEditors/geo_plugins/GeoPathPlugin.py:133
+msgid "Length of the current segment/move."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:167 appEditors/geo_plugins/GeoCopyPlugin.py:167
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:135
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:41 appPlugins/ToolImage.py:582
+#: appPlugins/ToolLevelling.py:1897 appPlugins/ToolMarkers.py:1450
+msgid "Mode"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:169 appEditors/geo_plugins/GeoCopyPlugin.py:169
+msgid "Single copy or special (array of copies)"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:172 appEditors/geo_plugins/GeoCopyPlugin.py:172
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:116 appPlugins/ToolCutOut.py:2281
+msgid "Single"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:173 appEditors/geo_plugins/GeoCopyPlugin.py:173
+msgid "Array"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:193
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:199
+#: appEditors/geo_plugins/GeoCopyPlugin.py:193
+msgid "Specify how many items to be in the array."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:204
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:185
+#: appEditors/geo_plugins/GeoCopyPlugin.py:204
+msgid ""
+"Select the type of array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:210 appEditors/geo_plugins/GeoCopyPlugin.py:210
+#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:99
+msgid "2D"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:293 appEditors/geo_plugins/GeoCopyPlugin.py:293
+msgid "Placement"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:295 appEditors/geo_plugins/GeoCopyPlugin.py:295
+msgid ""
+"Placement of array items:\n"
+"'Spacing' - define space between rows and columns \n"
+"'Offset' - each row (and column) will be placed at a multiple of a value, from origin"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:312 appEditors/geo_plugins/GeoCopyPlugin.py:312
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:81
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:86 appPlugins/ToolLevelling.py:1943
+#: appPlugins/ToolPanelize.py:1324
+msgid "Rows"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:314 appEditors/geo_plugins/GeoCopyPlugin.py:314
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:88 appPlugins/ToolPanelize.py:1326
+msgid "Number of rows"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:323 appEditors/geo_plugins/GeoCopyPlugin.py:323
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:71
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:74 appPlugins/ToolLevelling.py:1932
+#: appPlugins/ToolPanelize.py:1313
+msgid "Columns"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:325 appEditors/geo_plugins/GeoCopyPlugin.py:325
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:76 appPlugins/ToolPanelize.py:1315
+msgid "Number of columns"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:346 appEditors/geo_plugins/GeoCopyPlugin.py:346
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:61 appPlugins/ToolPanelize.py:1301
+msgid "Spacing rows"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:348 appEditors/geo_plugins/GeoCopyPlugin.py:348
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:63 appPlugins/ToolPanelize.py:1303
+msgid ""
+"Spacing between rows.\n"
+"In current units."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:359 appEditors/geo_plugins/GeoCopyPlugin.py:359
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:47 appPlugins/ToolPanelize.py:1288
+msgid "Spacing cols"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:361 appEditors/geo_plugins/GeoCopyPlugin.py:361
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:49 appPlugins/ToolPanelize.py:1290
+msgid ""
+"Spacing between columns.\n"
+"In current units."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcCopyPlugin.py:381 appEditors/exc_plugins/ExcCopyPlugin.py:394
+#: appEditors/geo_plugins/GeoCopyPlugin.py:381 appEditors/geo_plugins/GeoCopyPlugin.py:394
+msgid ""
+"'Offset' - each row (and column) will be placed at a multiple of a value, from origin"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:142
+#: appEditors/exc_plugins/ExcDrillPlugin.py:149
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:140
+#: appEditors/exc_plugins/ExcSlotPlugin.py:149 appEditors/geo_plugins/GeoCirclePlugin.py:190
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:223
+msgid "Position"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:308
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:371
+#: appEditors/geo_plugins/GeoCirclePlugin.py:219
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:291 appPlugins/ToolImage.py:899
+msgid "Radius"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcDrillArrayPlugin.py:309
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:372
+msgid "Array radius."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcResizePlugin.py:152
+msgid "Diameter to resize to."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcResizePlugin.py:167
+msgid "Resize a drill or a selection of drills."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:170
+#: appEditors/exc_plugins/ExcSlotPlugin.py:179
+msgid ""
+"Parameters for adding a slot (hole with oval shape)\n"
+"either single or as an part of an array."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:184
+#: appEditors/exc_plugins/ExcSlotPlugin.py:193
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:185
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:63
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:123
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:68
+#: appObjects/AppObjectTemplate.py:942 appPlugins/ToolFilm.py:1363
+#: appPlugins/ToolFilm.py:1434 appPlugins/ToolMarkers.py:1322 appPlugins/ToolReport.py:594
+msgid "Length"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:186
+#: appEditors/exc_plugins/ExcSlotPlugin.py:195
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
+msgid "Length. The length of the slot."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:200
+#: appEditors/exc_plugins/ExcSlotPlugin.py:209
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:203
+msgid ""
+"Direction on which the slot is oriented:\n"
+"- 'X' - horizontal axis \n"
+"- 'Y' - vertical axis or \n"
+"- 'Angle' - a custom angle for the slot inclination"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:216
+#: appEditors/exc_plugins/ExcSlotPlugin.py:225
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
+msgid ""
+"Angle at which the slot is placed.\n"
+"The precision is of max 2 decimals.\n"
+"Min value is: -360.00 degrees.\n"
+"Max value is: 360.00 degrees."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:234
+msgid "Array parameters."
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:250
+msgid ""
+"Select the type of slot array to create.\n"
+"It can be Linear X(Y) or Circular"
+msgstr ""
+
+#: appEditors/exc_plugins/ExcSlotArrayPlugin.py:263
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
+msgid "Specify how many slots to be in the array."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:131
+#: appEditors/geo_plugins/GeoBufferPlugin.py:277
+msgid ""
+"Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:141
+#: appEditors/geo_plugins/GeoBufferPlugin.py:218
+#: appEditors/geo_plugins/GeoBufferPlugin.py:286
+#: appEditors/geo_plugins/GeoPaintPlugin.py:133 appMain.py:5917
+msgid "Nothing selected."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:145
+#: appEditors/geo_plugins/GeoBufferPlugin.py:222
+#: appEditors/geo_plugins/GeoBufferPlugin.py:290
+msgid "Invalid distance."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:190
+#: appEditors/geo_plugins/GeoBufferPlugin.py:256
+#: appEditors/geo_plugins/GeoBufferPlugin.py:324
+msgid "Failed, the result is empty."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:211
+msgid "Negative buffer value is not accepted."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:384
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corner is rounded for exterior buffer.\n"
+" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
+" - 'Beveled': the corner is a line that directly connects the features meeting in the "
+"corner"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:400
+msgid "Buffer Interior"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:402
+msgid "Buffer Exterior"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoBufferPlugin.py:408
+msgid "Full Buffer"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoCirclePlugin.py:131
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:164
+#: appEditors/geo_plugins/GeoTextPlugin.py:273 appGUI/MainGUI.py:1697
+msgid "Apply"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoCirclePlugin.py:273
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:331
+msgid "Note"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoCirclePlugin.py:275
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:333
+msgid "Shift + click to select a shape for modification."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:59
+msgid "Paint Tool"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:126
+#, python-format
+msgid "Could not do Paint. Overlap value has to be less than 100%%."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:139
+msgid "Invalid value for"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:201 appPlugins/ToolMilling.py:3303
+#: appPlugins/ToolPaint.py:1986 appPlugins/ToolPaint.py:2196
+msgid ""
+"Could not do Paint. Try a different combination of parameters. Or a different method of "
+"Paint"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:244
+msgid "Diameter of the tool to be used in the operation."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoPaintPlugin.py:290
+msgid ""
+"Algorithm to paint the polygons:\n"
+"- Standard: Fixed step inwards.\n"
+"- Seed-based: Outwards from seed.\n"
+"- Line-based: Parallel lines."
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:235
+msgid "Anchor"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:237 appMain.py:5792
+msgid "T Left"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:238 appMain.py:5793
+msgid "T Right"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:239 appMain.py:5794
+msgid "B Left"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:240 appMain.py:5795
+msgid "B Right"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:241 appGUI/ObjectUI.py:1773
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:154
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:101 appMain.py:5562 appMain.py:5796
+#: appPlugins/ToolFilm.py:1396 appPlugins/ToolFilm.py:1467 appPlugins/ToolMarkers.py:1357
+msgid "Center"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:263
+msgid "Corner"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:277
+msgid ""
+"There are 3 types of corners:\n"
+" - 'Round': the corners are rounded\n"
+" - 'Square': the corners meet in a sharp angle\n"
+" - 'Beveled': the corners are a line that directly connects the features meeting in the "
+"corner"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoRectanglePlugin.py:317 appObjects/AppObjectTemplate.py:947
+#: appPlugins/ToolReport.py:599
+msgid "Width"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTextPlugin.py:66
+msgid "Text Tool"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTextPlugin.py:195 appEditors/geo_plugins/GeoTextPlugin.py:263
+#: appGUI/MainGUI.py:1826
+msgid "Text"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTextPlugin.py:227
+msgid "Font"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:313 appPlugins/ToolTransform.py:321
+msgid "Rotating"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:346 appPlugins/ToolTransform.py:353
+msgid "Flipping"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:381 appPlugins/ToolTransform.py:398
+msgid "Skewing"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:416 appPlugins/ToolTransform.py:432
+msgid "Scaling"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:447 appPlugins/ToolTransform.py:467
+msgid "Offsetting"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:472
+#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:56 appObjects/GerberObject.py:423
+#: appPlugins/ToolCopperThieving.py:608 appPlugins/ToolCopperThieving.py:803
+#: appPlugins/ToolCopperThieving.py:816 appPlugins/ToolIsolation.py:1602
+#: appPlugins/ToolNCC.py:1989 appPlugins/ToolNCC.py:2016 appPlugins/ToolNCC.py:2124
+#: appPlugins/ToolNCC.py:2137 appPlugins/ToolNCC.py:3038 appPlugins/ToolNCC.py:3143
+#: appPlugins/ToolNCC.py:3158 appPlugins/ToolNCC.py:3426 appPlugins/ToolNCC.py:3527
+#: appPlugins/ToolNCC.py:3542 appPlugins/ToolTransform.py:504 camlib.py:1166
+msgid "Buffering"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:536
+msgid "Offset on the Y axis canceled"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:552
+msgid "Skew on X axis canceled"
+msgstr ""
+
+#: appEditors/geo_plugins/GeoTransformationPlugin.py:568
+msgid "Skew on Y axis canceled"
+msgstr ""
+
+#: appGUI/GUIElements.py:427 appGUI/GUIElements.py:1203 appGUI/GUIElements.py:1447
msgid "Read Only"
msgstr ""
-#: appGUI/GUIElements.py:432 appGUI/GUIElements.py:1187 appGUI/GUIElements.py:1591
-#: appGUI/GUIElements.py:1849 appGUI/GUIElements.py:2143 appGUI/GUIElements.py:4338
+#: appGUI/GUIElements.py:432 appGUI/GUIElements.py:1208 appGUI/GUIElements.py:1452
+#: appGUI/GUIElements.py:1893 appGUI/GUIElements.py:2187 appGUI/GUIElements.py:4456
msgid "Undo"
msgstr ""
-#: appGUI/GUIElements.py:432 appGUI/GUIElements.py:1187 appGUI/GUIElements.py:1591
-#: appGUI/GUIElements.py:1849 appGUI/GUIElements.py:2143 appGUI/GUIElements.py:4338
+#: appGUI/GUIElements.py:432 appGUI/GUIElements.py:1208 appGUI/GUIElements.py:1452
+#: appGUI/GUIElements.py:1893 appGUI/GUIElements.py:2187 appGUI/GUIElements.py:4456
msgid "Ctrl+Z"
msgstr ""
-#: appGUI/GUIElements.py:439 appGUI/GUIElements.py:1194 appGUI/GUIElements.py:1598
-#: appGUI/GUIElements.py:1856 appGUI/GUIElements.py:2148 appGUI/GUIElements.py:4343
+#: appGUI/GUIElements.py:439 appGUI/GUIElements.py:1215 appGUI/GUIElements.py:1459
+#: appGUI/GUIElements.py:1900 appGUI/GUIElements.py:2192 appGUI/GUIElements.py:4461
msgid "Redo"
msgstr ""
-#: appGUI/GUIElements.py:439 appGUI/GUIElements.py:1194 appGUI/GUIElements.py:1598
-#: appGUI/GUIElements.py:1856 appGUI/GUIElements.py:2148 appGUI/GUIElements.py:4343
+#: appGUI/GUIElements.py:439 appGUI/GUIElements.py:1215 appGUI/GUIElements.py:1459
+#: appGUI/GUIElements.py:1900 appGUI/GUIElements.py:2192 appGUI/GUIElements.py:4461
msgid "Ctrl+Y"
msgstr ""
-#: appGUI/GUIElements.py:448 appGUI/GUIElements.py:1203 appGUI/GUIElements.py:1607
-#: appGUI/GUIElements.py:1865 appGUI/GUIElements.py:2155 appGUI/GUIElements.py:4350
-#: appGUI/MainGUI.py:1798 appGUI/ObjectUI.py:1312
+#: appGUI/GUIElements.py:448 appGUI/GUIElements.py:1224 appGUI/GUIElements.py:1468
+#: appGUI/GUIElements.py:1909 appGUI/GUIElements.py:2199 appGUI/GUIElements.py:4468
+#: appGUI/MainGUI.py:1846 appGUI/ObjectUI.py:1312
#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:61
msgid "Cut"
msgstr ""
-#: appGUI/GUIElements.py:448 appGUI/GUIElements.py:1203 appGUI/GUIElements.py:1607
-#: appGUI/GUIElements.py:1865 appGUI/GUIElements.py:2155 appGUI/GUIElements.py:4350
-#: appGUI/MainGUI.py:5163
+#: appGUI/GUIElements.py:448 appGUI/GUIElements.py:1224 appGUI/GUIElements.py:1468
+#: appGUI/GUIElements.py:1909 appGUI/GUIElements.py:2199 appGUI/GUIElements.py:4468
+#: appGUI/MainGUI.py:5279
msgid "Ctrl+X"
msgstr ""
-#: appGUI/GUIElements.py:455 appGUI/GUIElements.py:1210 appGUI/GUIElements.py:1614
-#: appGUI/GUIElements.py:1872 appGUI/GUIElements.py:2160 appGUI/GUIElements.py:4355
-#: appGUI/MainGUI.py:422 appGUI/MainGUI.py:765 appGUI/MainGUI.py:824 appGUI/MainGUI.py:905
-#: appGUI/MainGUI.py:1048 appGUI/MainGUI.py:1298 appGUI/MainGUI.py:1855
-#: appGUI/MainGUI.py:2420 appGUI/MainGUI.py:2662 appGUI/MainGUI.py:5397
-#: appObjects/FlatCAMExcellon.py:516 appPlugins/ToolDrilling.py:309
-#: appPlugins/ToolMilling.py:428 appPlugins/ToolMilling.py:439
-#: appPlugins/ToolPanelize.py:461 appPlugins/ToolPanelize.py:490
-#: appPlugins/ToolPanelize.py:616 appPlugins/ToolPanelize.py:627
-#: appPlugins/ToolPanelize.py:665 appPlugins/ToolPanelize.py:714
-#: appPlugins/ToolPanelize.py:928 appPlugins/ToolPanelize.py:967
-#: appPlugins/ToolPanelize.py:1015
-msgid "Copy"
-msgstr ""
-
-#: appGUI/GUIElements.py:455 appGUI/GUIElements.py:1210 appGUI/GUIElements.py:1614
-#: appGUI/GUIElements.py:1872 appGUI/GUIElements.py:2160 appGUI/GUIElements.py:4355
-#: appGUI/MainGUI.py:422 appGUI/MainGUI.py:4892
+#: appGUI/GUIElements.py:455 appGUI/GUIElements.py:1231 appGUI/GUIElements.py:1475
+#: appGUI/GUIElements.py:1916 appGUI/GUIElements.py:2204 appGUI/GUIElements.py:4473
+#: appGUI/MainGUI.py:461 appGUI/MainGUI.py:5008
msgid "Ctrl+C"
msgstr ""
-#: appGUI/GUIElements.py:462 appGUI/GUIElements.py:1217 appGUI/GUIElements.py:1621
-#: appGUI/GUIElements.py:1879 appGUI/GUIElements.py:2165
+#: appGUI/GUIElements.py:462 appGUI/GUIElements.py:1238 appGUI/GUIElements.py:1482
+#: appGUI/GUIElements.py:1923 appGUI/GUIElements.py:2209
msgid "Paste"
msgstr ""
-#: appGUI/GUIElements.py:462 appGUI/GUIElements.py:1217 appGUI/GUIElements.py:1621
-#: appGUI/GUIElements.py:1879 appGUI/GUIElements.py:2165
+#: appGUI/GUIElements.py:462 appGUI/GUIElements.py:1238 appGUI/GUIElements.py:1482
+#: appGUI/GUIElements.py:1923 appGUI/GUIElements.py:2209
msgid "Ctrl+V"
msgstr ""
-#: appGUI/GUIElements.py:469 appGUI/GUIElements.py:1224 appGUI/GUIElements.py:1628
-#: appGUI/GUIElements.py:1884 appGUI/GUIElements.py:2170 appGUI/GUIElements.py:4360
-#: appGUI/MainGUI.py:4962 appGUI/MainGUI.py:4963 appGUI/MainGUI.py:5167
-#: appGUI/MainGUI.py:5267 appGUI/MainGUI.py:5268 appGUI/MainGUI.py:5408
-#: appGUI/MainGUI.py:5409
+#: appGUI/GUIElements.py:469 appGUI/GUIElements.py:1245 appGUI/GUIElements.py:1489
+#: appGUI/GUIElements.py:1928 appGUI/GUIElements.py:2214 appGUI/GUIElements.py:4478
+#: appGUI/MainGUI.py:5078 appGUI/MainGUI.py:5079 appGUI/MainGUI.py:5283
+#: appGUI/MainGUI.py:5383 appGUI/MainGUI.py:5384 appGUI/MainGUI.py:5524
+#: appGUI/MainGUI.py:5525
msgid "Del"
msgstr ""
-#: appGUI/GUIElements.py:478 appGUI/GUIElements.py:1233 appGUI/GUIElements.py:1637
-#: appGUI/GUIElements.py:1891 appGUI/GUIElements.py:2177 appGUI/GUIElements.py:4367
-#: appGUI/MainGUI.py:459 appGUI/MainGUI.py:594 appGUI/MainGUI.py:4891
-#: appObjects/ObjectCollection.py:1170 appObjects/ObjectCollection.py:1217
-#: appPlugins/ToolIsolation.py:3872 appPlugins/ToolPunchGerber.py:2334
-#: appPlugins/ToolRulesCheck.py:1200
+#: appGUI/GUIElements.py:478 appGUI/GUIElements.py:1254 appGUI/GUIElements.py:1498
+#: appGUI/GUIElements.py:1935 appGUI/GUIElements.py:2221 appGUI/GUIElements.py:4485
+#: appGUI/MainGUI.py:498 appGUI/MainGUI.py:633 appGUI/MainGUI.py:5007
+#: appObjects/ObjectCollection.py:1200 appObjects/ObjectCollection.py:1247
+#: appPlugins/ToolIsolation.py:3934 appPlugins/ToolPunchGerber.py:2347
+#: appPlugins/ToolRulesCheck.py:1185
msgid "Select All"
msgstr ""
-#: appGUI/GUIElements.py:478 appGUI/GUIElements.py:1233 appGUI/GUIElements.py:1637
-#: appGUI/GUIElements.py:1891 appGUI/GUIElements.py:2177 appGUI/GUIElements.py:4367
-#: appGUI/MainGUI.py:459 appGUI/MainGUI.py:4891
+#: appGUI/GUIElements.py:478 appGUI/GUIElements.py:1254 appGUI/GUIElements.py:1498
+#: appGUI/GUIElements.py:1935 appGUI/GUIElements.py:2221 appGUI/GUIElements.py:4485
+#: appGUI/MainGUI.py:498 appGUI/MainGUI.py:5007
msgid "Ctrl+A"
msgstr ""
-#: appGUI/GUIElements.py:1240 appGUI/GUIElements.py:1644
+#: appGUI/GUIElements.py:1261 appGUI/GUIElements.py:1505
msgid "Step Up"
msgstr ""
-#: appGUI/GUIElements.py:1247 appGUI/GUIElements.py:1651
+#: appGUI/GUIElements.py:1268 appGUI/GUIElements.py:1512
msgid "Step Down"
msgstr ""
-#: appGUI/GUIElements.py:4269
+#: appGUI/GUIElements.py:4378
msgid ""
"The reference can be:\n"
"- Absolute -> the reference point is point (0,0)\n"
"- Relative -> the reference point is the mouse position before Jump"
msgstr ""
-#: appGUI/GUIElements.py:4274
+#: appGUI/GUIElements.py:4383
msgid "Abs"
msgstr ""
-#: appGUI/GUIElements.py:4275
+#: appGUI/GUIElements.py:4384
msgid "Relative"
msgstr ""
-#: appGUI/GUIElements.py:4286
+#: appGUI/GUIElements.py:4395
msgid "Location"
msgstr ""
-#: appGUI/GUIElements.py:4288
+#: appGUI/GUIElements.py:4397
msgid ""
"The Location value is a tuple (x,y).\n"
"If the reference is Absolute then the Jump will be at the position (x,y).\n"
@@ -4020,473 +4403,467 @@ msgid ""
"WARNING: comma is a separator between values."
msgstr ""
-#: appGUI/GUIElements.py:4372
+#: appGUI/GUIElements.py:4490
msgid "Ctrl+F"
msgstr ""
-#: appGUI/GUIElements.py:4380
+#: appGUI/GUIElements.py:4498
msgid "Save Log"
msgstr ""
-#: appGUI/GUIElements.py:4386
+#: appGUI/GUIElements.py:4504
msgid "Clear All"
msgstr ""
-#: appGUI/GUIElements.py:4386
+#: appGUI/GUIElements.py:4504
msgid "Shift+Del"
msgstr ""
-#: appGUI/GUIElements.py:4505 appPlugins/ToolShell.py:327
+#: appGUI/GUIElements.py:4623 appPlugins/ToolShell.py:326
msgid "Type >help< to get started"
msgstr ""
-#: appGUI/GUIElements.py:5133 appGUI/GUIElements.py:5150
+#: appGUI/GUIElements.py:5251 appGUI/GUIElements.py:5268
msgid "Jog the Y axis."
msgstr ""
-#: appGUI/GUIElements.py:5141 appGUI/MainGUI.py:440 appGUI/MainGUI.py:1059
-#: appGUI/MainGUI.py:2431
+#: appGUI/GUIElements.py:5259 appGUI/MainGUI.py:479 appGUI/MainGUI.py:1102
+#: appGUI/MainGUI.py:2481
msgid "Move to Origin"
msgstr ""
-#: appGUI/GUIElements.py:5158 appGUI/GUIElements.py:5166
+#: appGUI/GUIElements.py:5276 appGUI/GUIElements.py:5284
msgid "Jog the X axis."
msgstr ""
-#: appGUI/GUIElements.py:5176 appGUI/GUIElements.py:5186
+#: appGUI/GUIElements.py:5294 appGUI/GUIElements.py:5304
msgid "Jog the Z axis."
msgstr ""
-#: appGUI/GUIElements.py:5210
+#: appGUI/GUIElements.py:5328
msgid "Zero the CNC X axes at current position."
msgstr ""
-#: appGUI/GUIElements.py:5218
+#: appGUI/GUIElements.py:5336
msgid "Zero the CNC Y axes at current position."
msgstr ""
-#: appGUI/GUIElements.py:5223
+#: appGUI/GUIElements.py:5341
msgid "Z"
msgstr ""
-#: appGUI/GUIElements.py:5226
+#: appGUI/GUIElements.py:5344
msgid "Zero the CNC Z axes at current position."
msgstr ""
-#: appGUI/GUIElements.py:5230
+#: appGUI/GUIElements.py:5348
msgid "Do Home"
msgstr ""
-#: appGUI/GUIElements.py:5232
+#: appGUI/GUIElements.py:5350
msgid "Perform a homing cycle on all axis."
msgstr ""
-#: appGUI/GUIElements.py:5241
+#: appGUI/GUIElements.py:5359
msgid "Zero all CNC axes at current position."
msgstr ""
-#: appGUI/GUIElements.py:5397 appGUI/GUIElements.py:5406
+#: appGUI/GUIElements.py:5515 appGUI/GUIElements.py:5524
msgid "Idle."
msgstr ""
-#: appGUI/GUIElements.py:5449
+#: appGUI/GUIElements.py:5567
msgid "Application started ..."
msgstr ""
-#: appGUI/GUIElements.py:5450
+#: appGUI/GUIElements.py:5568
msgid "Hello!"
msgstr ""
-#: appGUI/GUIElements.py:5514
+#: appGUI/GUIElements.py:5675
msgid "Run Script ..."
msgstr ""
-#: appGUI/GUIElements.py:5516 appGUI/MainGUI.py:204
+#: appGUI/GUIElements.py:5677 appGUI/MainGUI.py:243
msgid ""
"Will run the opened Tcl Script thus\n"
"enabling the automation of certain\n"
"functions of FlatCAM."
msgstr ""
-#: appGUI/GUIElements.py:5524
+#: appGUI/GUIElements.py:5685
msgid "Toggle GUI ..."
msgstr ""
-#: appGUI/GUIElements.py:5526
+#: appGUI/GUIElements.py:5687
msgid "Will show/hide the GUI."
msgstr ""
-#: appGUI/GUIElements.py:5533 appGUI/MainGUI.py:126 appPlugins/ToolPcbWizard.py:427
-#: appPlugins/ToolPcbWizard.py:435
+#: appGUI/GUIElements.py:5694 appGUI/MainGUI.py:165 appPlugins/ToolPcbWizard.py:416
+#: appPlugins/ToolPcbWizard.py:424
msgid "Open"
msgstr ""
-#: appGUI/GUIElements.py:5537 appGUI/MainGUI.py:131 appGUI/MainGUI.py:1022
-#: appGUI/MainGUI.py:2394 appGUI/MainGUI.py:4898 appMain.py:9651 appMain.py:9654
+#: appGUI/GUIElements.py:5698 appGUI/MainGUI.py:170 appGUI/MainGUI.py:1065
+#: appGUI/MainGUI.py:2444 appGUI/MainGUI.py:5014 appMain.py:9680 appMain.py:9683
msgid "Open Project"
msgstr ""
-#: appGUI/GUIElements.py:5543 appGUI/MainGUI.py:138 appGUI/MainGUI.py:1017
-#: appGUI/MainGUI.py:2389 appMain.py:9534 appMain.py:9539
+#: appGUI/GUIElements.py:5704 appGUI/MainGUI.py:177 appGUI/MainGUI.py:1060
+#: appGUI/MainGUI.py:2439 appMain.py:9563 appMain.py:9568
msgid "Open Gerber"
msgstr ""
-#: appGUI/GUIElements.py:5543 appGUI/MainGUI.py:138 appGUI/MainGUI.py:4895
+#: appGUI/GUIElements.py:5704 appGUI/MainGUI.py:177 appGUI/MainGUI.py:5011
msgid "Ctrl+G"
msgstr ""
-#: appGUI/GUIElements.py:5548 appGUI/MainGUI.py:143 appGUI/MainGUI.py:1019
-#: appGUI/MainGUI.py:2391 appMain.py:9573 appMain.py:9578
+#: appGUI/GUIElements.py:5709 appGUI/MainGUI.py:182 appGUI/MainGUI.py:1062
+#: appGUI/MainGUI.py:2441 appMain.py:9602 appMain.py:9607
msgid "Open Excellon"
msgstr ""
-#: appGUI/GUIElements.py:5548 appGUI/MainGUI.py:143 appGUI/MainGUI.py:816
-#: appGUI/MainGUI.py:4894 appGUI/MainGUI.py:5413
+#: appGUI/GUIElements.py:5709 appGUI/MainGUI.py:182 appGUI/MainGUI.py:859
+#: appGUI/MainGUI.py:5010 appGUI/MainGUI.py:5529
msgid "Ctrl+E"
msgstr ""
-#: appGUI/GUIElements.py:5553 appGUI/MainGUI.py:148 appMain.py:9615 appMain.py:9620
+#: appGUI/GUIElements.py:5714 appGUI/MainGUI.py:187 appMain.py:9644 appMain.py:9649
msgid "Open G-Code"
msgstr ""
-#: appGUI/GUIElements.py:5563 appGUI/MainGUI.py:335
+#: appGUI/GUIElements.py:5724 appGUI/MainGUI.py:374
msgid "Exit"
msgstr ""
-#: appGUI/MainGUI.py:75 appGUI/MainGUI.py:77 appGUI/MainGUI.py:1689
+#: appGUI/MainGUI.py:114 appGUI/MainGUI.py:116 appGUI/MainGUI.py:1735
msgid "Toggle Panel"
msgstr ""
-#: appGUI/MainGUI.py:87
+#: appGUI/MainGUI.py:126
msgid "File"
msgstr ""
-#: appGUI/MainGUI.py:92 appGUI/MainGUI.py:4897
+#: appGUI/MainGUI.py:131 appGUI/MainGUI.py:5013
msgid "New Project"
msgstr ""
-#: appGUI/MainGUI.py:92 appGUI/MainGUI.py:4897
+#: appGUI/MainGUI.py:131 appGUI/MainGUI.py:5013
msgid "Ctrl+N"
msgstr ""
-#: appGUI/MainGUI.py:94
+#: appGUI/MainGUI.py:133
msgid "Will create a new, blank project"
msgstr ""
-#: appGUI/MainGUI.py:99 appGUI/MainGUI.py:1700 appPlugins/ToolLevelling.py:2092
+#: appGUI/MainGUI.py:138 appGUI/MainGUI.py:1746 appPlugins/ToolLevelling.py:2073
msgid "New"
msgstr ""
-#: appGUI/MainGUI.py:103 appGUI/MainGUI.py:1546 appGUI/MainGUI.py:1702
+#: appGUI/MainGUI.py:142 appGUI/MainGUI.py:1592 appGUI/MainGUI.py:1748
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:76
-#: appObjects/ObjectCollection.py:243 appPlugins/ToolCalibration.py:206
-#: appPlugins/ToolCalibration.py:1351 appPlugins/ToolCalibration.py:1368
-#: appPlugins/ToolCopperThieving.py:212 appPlugins/ToolCopperThieving.py:1398
-#: appPlugins/ToolCopperThieving.py:1409 appPlugins/ToolCutOut.py:2308
-#: appPlugins/ToolCutOut.py:2730 appPlugins/ToolDblSided.py:755
-#: appPlugins/ToolDblSided.py:970 appPlugins/ToolFilm.py:1292 appPlugins/ToolFilm.py:1315
-#: appPlugins/ToolImage.py:182 appPlugins/ToolImage.py:333 appPlugins/ToolIsolation.py:3792
-#: appPlugins/ToolIsolation.py:3843 appPlugins/ToolMarkers.py:1489
-#: appPlugins/ToolMilling.py:2787 appPlugins/ToolMilling.py:2952
-#: appPlugins/ToolMilling.py:4003 appPlugins/ToolNCC.py:4116 appPlugins/ToolNCC.py:4580
-#: appPlugins/ToolPaint.py:3330 appPlugins/ToolPanelize.py:150
-#: appPlugins/ToolPanelize.py:258 appPlugins/ToolPanelize.py:1199
-#: appPlugins/ToolPanelize.py:1250 appPlugins/ToolSolderPaste.py:1582
-#: appPlugins/ToolSub.py:906 appPlugins/ToolTransform.py:160 appPlugins/ToolTransform.py:654
+#: appObjects/ObjectCollection.py:266 appPlugins/ToolCopperThieving.py:195
+#: appPlugins/ToolCopperThieving.py:1380 appPlugins/ToolCopperThieving.py:1391
+#: appPlugins/ToolCutOut.py:2290 appPlugins/ToolCutOut.py:2712
+#: appPlugins/ToolDblSided.py:741 appPlugins/ToolDblSided.py:956 appPlugins/ToolFilm.py:1284
+#: appPlugins/ToolFilm.py:1307 appPlugins/ToolImage.py:221 appPlugins/ToolImage.py:251
+#: appPlugins/ToolImage.py:550 appPlugins/ToolIsolation.py:3854
+#: appPlugins/ToolIsolation.py:3905 appPlugins/ToolMarkers.py:1581
+#: appPlugins/ToolMilling.py:2751 appPlugins/ToolMilling.py:2916
+#: appPlugins/ToolMilling.py:3970 appPlugins/ToolNCC.py:4089 appPlugins/ToolNCC.py:4553
+#: appPlugins/ToolPaint.py:3311 appPlugins/ToolPanelize.py:134
+#: appPlugins/ToolPanelize.py:242 appPlugins/ToolPanelize.py:1183
+#: appPlugins/ToolPanelize.py:1234 appPlugins/ToolSolderPaste.py:1651
+#: appPlugins/ToolSub.py:895 appPlugins/ToolTransform.py:151 appPlugins/ToolTransform.py:645
msgid "Geometry"
msgstr ""
-#: appGUI/MainGUI.py:103 appGUI/MainGUI.py:678 appGUI/MainGUI.py:793 appGUI/MainGUI.py:4877
-#: appGUI/MainGUI.py:5146 appGUI/MainGUI.py:5402
+#: appGUI/MainGUI.py:142 appGUI/MainGUI.py:717 appGUI/MainGUI.py:836 appGUI/MainGUI.py:4993
+#: appGUI/MainGUI.py:5262 appGUI/MainGUI.py:5518
msgid "N"
msgstr ""
-#: appGUI/MainGUI.py:105
+#: appGUI/MainGUI.py:144
msgid "Will create a new, empty Geometry Object."
msgstr ""
-#: appGUI/MainGUI.py:108 appGUI/MainGUI.py:1524
+#: appGUI/MainGUI.py:147 appGUI/MainGUI.py:1570
#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:94
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:74
-#: appObjects/ObjectCollection.py:241 appPlugins/ToolAlignObjects.py:448
-#: appPlugins/ToolAlignObjects.py:487 appPlugins/ToolCalibration.py:198
-#: appPlugins/ToolCalibration.py:206 appPlugins/ToolCalibration.py:916
-#: appPlugins/ToolCalibration.py:1351 appPlugins/ToolCalibration.py:1368
-#: appPlugins/ToolCopperThieving.py:212 appPlugins/ToolCopperThieving.py:1398
-#: appPlugins/ToolCopperThieving.py:1409 appPlugins/ToolCutOut.py:2307
-#: appPlugins/ToolDblSided.py:755 appPlugins/ToolDblSided.py:968 appPlugins/ToolFilm.py:1291
-#: appPlugins/ToolFilm.py:1314 appPlugins/ToolImage.py:160 appPlugins/ToolImage.py:184
-#: appPlugins/ToolImage.py:333 appPlugins/ToolIsolation.py:3793
-#: appPlugins/ToolIsolation.py:3843 appPlugins/ToolMarkers.py:1488
-#: appPlugins/ToolNCC.py:4117 appPlugins/ToolNCC.py:4580 appPlugins/ToolPaint.py:3330
-#: appPlugins/ToolPanelize.py:144 appPlugins/ToolPanelize.py:258
-#: appPlugins/ToolPanelize.py:1199 appPlugins/ToolPanelize.py:1250
-#: appPlugins/ToolPanelize.py:1361 appPlugins/ToolRulesCheck.py:1210
-#: appPlugins/ToolSub.py:841 appPlugins/ToolTransform.py:160 appPlugins/ToolTransform.py:652
-#: defaults.py:623
+#: appObjects/ObjectCollection.py:264 appPlugins/ToolAlignObjects.py:435
+#: appPlugins/ToolAlignObjects.py:474 appPlugins/ToolCopperThieving.py:195
+#: appPlugins/ToolCopperThieving.py:1380 appPlugins/ToolCopperThieving.py:1391
+#: appPlugins/ToolCutOut.py:2289 appPlugins/ToolDblSided.py:741
+#: appPlugins/ToolDblSided.py:954 appPlugins/ToolFilm.py:1283 appPlugins/ToolFilm.py:1306
+#: appPlugins/ToolImage.py:253 appPlugins/ToolImage.py:550 appPlugins/ToolIsolation.py:3855
+#: appPlugins/ToolIsolation.py:3905 appPlugins/ToolMarkers.py:1580
+#: appPlugins/ToolNCC.py:4090 appPlugins/ToolNCC.py:4553 appPlugins/ToolPaint.py:3311
+#: appPlugins/ToolPanelize.py:128 appPlugins/ToolPanelize.py:242
+#: appPlugins/ToolPanelize.py:1183 appPlugins/ToolPanelize.py:1234
+#: appPlugins/ToolPanelize.py:1345 appPlugins/ToolRulesCheck.py:1195
+#: appPlugins/ToolSub.py:830 appPlugins/ToolTransform.py:151 appPlugins/ToolTransform.py:643
+#: defaults.py:631
msgid "Gerber"
msgstr ""
-#: appGUI/MainGUI.py:108 appGUI/MainGUI.py:721 appGUI/MainGUI.py:807 appGUI/MainGUI.py:4871
-#: appGUI/MainGUI.py:5137 appGUI/MainGUI.py:5396
+#: appGUI/MainGUI.py:147 appGUI/MainGUI.py:760 appGUI/MainGUI.py:850 appGUI/MainGUI.py:4987
+#: appGUI/MainGUI.py:5253 appGUI/MainGUI.py:5512
msgid "B"
msgstr ""
-#: appGUI/MainGUI.py:110
+#: appGUI/MainGUI.py:149
msgid "Will create a new, empty Gerber Object."
msgstr ""
-#: appGUI/MainGUI.py:113 appGUI/MainGUI.py:1535 appGUI/MainGUI.py:1706
+#: appGUI/MainGUI.py:152 appGUI/MainGUI.py:1581 appGUI/MainGUI.py:1752
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:98
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:75
-#: appObjects/ObjectCollection.py:242 appPlugins/ToolAlignObjects.py:449
-#: appPlugins/ToolAlignObjects.py:488 appPlugins/ToolCalibration.py:198
-#: appPlugins/ToolCalibration.py:206 appPlugins/ToolCalibration.py:917
-#: appPlugins/ToolCalibration.py:1351 appPlugins/ToolCalibration.py:1368
-#: appPlugins/ToolCopperThieving.py:212 appPlugins/ToolCopperThieving.py:1398
-#: appPlugins/ToolCopperThieving.py:1409 appPlugins/ToolDblSided.py:755
-#: appPlugins/ToolDblSided.py:969 appPlugins/ToolDblSided.py:997 appPlugins/ToolFilm.py:1645
-#: appPlugins/ToolIsolation.py:3843 appPlugins/ToolMilling.py:4004
-#: appPlugins/ToolNCC.py:4580 appPlugins/ToolPaint.py:3330 appPlugins/ToolPanelize.py:147
-#: appPlugins/ToolPanelize.py:258 appPlugins/ToolPanelize.py:1199
-#: appPlugins/ToolPunchGerber.py:2149 appPlugins/ToolPunchGerber.py:2163
-#: appPlugins/ToolRulesCheck.py:1217 appPlugins/ToolRulesCheck.py:1415
-#: appPlugins/ToolTransform.py:160 appPlugins/ToolTransform.py:653
+#: appObjects/ObjectCollection.py:265 appPlugins/ToolAlignObjects.py:436
+#: appPlugins/ToolAlignObjects.py:475 appPlugins/ToolCopperThieving.py:195
+#: appPlugins/ToolCopperThieving.py:1380 appPlugins/ToolCopperThieving.py:1391
+#: appPlugins/ToolDblSided.py:741 appPlugins/ToolDblSided.py:955
+#: appPlugins/ToolDblSided.py:983 appPlugins/ToolFilm.py:1622
+#: appPlugins/ToolIsolation.py:3905 appPlugins/ToolMilling.py:3971
+#: appPlugins/ToolNCC.py:4553 appPlugins/ToolPaint.py:3311 appPlugins/ToolPanelize.py:131
+#: appPlugins/ToolPanelize.py:242 appPlugins/ToolPanelize.py:1183
+#: appPlugins/ToolPunchGerber.py:2162 appPlugins/ToolPunchGerber.py:2176
+#: appPlugins/ToolRulesCheck.py:1202 appPlugins/ToolRulesCheck.py:1400
+#: appPlugins/ToolTransform.py:151 appPlugins/ToolTransform.py:644
msgid "Excellon"
msgstr ""
-#: appGUI/MainGUI.py:113 appGUI/MainGUI.py:4875
+#: appGUI/MainGUI.py:152 appGUI/MainGUI.py:4991
msgid "L"
msgstr ""
-#: appGUI/MainGUI.py:115
+#: appGUI/MainGUI.py:154
msgid "Will create a new, empty Excellon Object."
msgstr ""
-#: appGUI/MainGUI.py:120 appObjects/ObjectCollection.py:246
+#: appGUI/MainGUI.py:159 appObjects/ObjectCollection.py:269
msgid "Document"
msgstr ""
-#: appGUI/MainGUI.py:120 appGUI/MainGUI.py:748 appGUI/MainGUI.py:804 appGUI/MainGUI.py:5139
-#: appGUI/MainGUI.py:5259 appGUI/MainGUI.py:5398
+#: appGUI/MainGUI.py:159 appGUI/MainGUI.py:791 appGUI/MainGUI.py:847 appGUI/MainGUI.py:5255
+#: appGUI/MainGUI.py:5375 appGUI/MainGUI.py:5514
msgid "D"
msgstr ""
-#: appGUI/MainGUI.py:122
+#: appGUI/MainGUI.py:161
msgid "Will create a new, empty Document Object."
msgstr ""
-#: appGUI/MainGUI.py:131 appGUI/MainGUI.py:4898
+#: appGUI/MainGUI.py:170 appGUI/MainGUI.py:5014
msgid "Ctrl+O"
msgstr ""
-#: appGUI/MainGUI.py:155
+#: appGUI/MainGUI.py:194
msgid "Open Config"
msgstr ""
-#: appGUI/MainGUI.py:160
+#: appGUI/MainGUI.py:199
msgid "Recent projects"
msgstr ""
-#: appGUI/MainGUI.py:162
+#: appGUI/MainGUI.py:201
msgid "Recent files"
msgstr ""
-#: appGUI/MainGUI.py:165 appGUI/MainGUI.py:909 appGUI/MainGUI.py:1659
-#: appGUI/ObjectUI.py:1544 appObjects/ObjectCollection.py:390
+#: appGUI/MainGUI.py:204 appGUI/MainGUI.py:952 appGUI/MainGUI.py:1705
+#: appGUI/ObjectUI.py:1551 appObjects/ObjectCollection.py:413
msgid "Save"
msgstr ""
-#: appGUI/MainGUI.py:169 appGUI/MainGUI.py:2396 appGUI/MainGUI.py:4901
+#: appGUI/MainGUI.py:208 appGUI/MainGUI.py:2446 appGUI/MainGUI.py:5017
msgid "Save Project"
msgstr ""
-#: appGUI/MainGUI.py:175 appGUI/MainGUI.py:4953
+#: appGUI/MainGUI.py:214 appGUI/MainGUI.py:5069
msgid "Save Project As"
msgstr ""
-#: appGUI/MainGUI.py:175 appGUI/MainGUI.py:4953
+#: appGUI/MainGUI.py:214 appGUI/MainGUI.py:5069
msgid "Ctrl+Shift+S"
msgstr ""
-#: appGUI/MainGUI.py:190
+#: appGUI/MainGUI.py:229
msgid "Scripting"
msgstr ""
-#: appGUI/MainGUI.py:194 appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2460
+#: appGUI/MainGUI.py:233 appGUI/MainGUI.py:1133 appGUI/MainGUI.py:2510
msgid "New Script"
msgstr ""
-#: appGUI/MainGUI.py:196 appGUI/MainGUI.py:1092 appGUI/MainGUI.py:2462
+#: appGUI/MainGUI.py:235 appGUI/MainGUI.py:1135 appGUI/MainGUI.py:2512
msgid "Open Script"
msgstr ""
-#: appGUI/MainGUI.py:199
+#: appGUI/MainGUI.py:238
msgid "Open Example"
msgstr ""
-#: appGUI/MainGUI.py:202 appGUI/MainGUI.py:1094 appGUI/MainGUI.py:2464
+#: appGUI/MainGUI.py:241 appGUI/MainGUI.py:1137 appGUI/MainGUI.py:2514
msgid "Run Script"
msgstr ""
-#: appGUI/MainGUI.py:202 appGUI/MainGUI.py:4914
+#: appGUI/MainGUI.py:241 appGUI/MainGUI.py:5030
msgid "Shift+S"
msgstr ""
-#: appGUI/MainGUI.py:219
+#: appGUI/MainGUI.py:258
msgid "Import"
msgstr ""
-#: appGUI/MainGUI.py:222
+#: appGUI/MainGUI.py:261
msgid "SVG as Geometry Object"
msgstr ""
-#: appGUI/MainGUI.py:226
+#: appGUI/MainGUI.py:265
msgid "SVG as Gerber Object"
msgstr ""
-#: appGUI/MainGUI.py:232
+#: appGUI/MainGUI.py:271
msgid "DXF as Geometry Object"
msgstr ""
-#: appGUI/MainGUI.py:236
+#: appGUI/MainGUI.py:275
msgid "DXF as Gerber Object"
msgstr ""
-#: appGUI/MainGUI.py:241
+#: appGUI/MainGUI.py:280
msgid "HPGL2 as Geometry Object"
msgstr ""
-#: appGUI/MainGUI.py:247 appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:19
+#: appGUI/MainGUI.py:286 appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:19
#: appGUI/preferences/geometry/GeometryExpPrefGroupUI.py:19
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:20 appPlugins/ToolFilm.py:1680
+#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:20 appPlugins/ToolFilm.py:1657
msgid "Export"
msgstr ""
-#: appGUI/MainGUI.py:252 appPlugins/ToolQRCode.py:654 appPlugins/ToolQRCode.py:659
-#: appMain.py:9762 appMain.py:9767
+#: appGUI/MainGUI.py:291 appMain.py:9791 appMain.py:9796 appPlugins/ToolQRCode.py:642
+#: appPlugins/ToolQRCode.py:647
msgid "Export SVG"
msgstr ""
-#: appGUI/MainGUI.py:257 appMain.py:10116 appMain.py:10121
+#: appGUI/MainGUI.py:296 appMain.py:10145 appMain.py:10150
msgid "Export DXF"
msgstr ""
-#: appGUI/MainGUI.py:264 appPlugins/ToolQRCode.py:605 appPlugins/ToolQRCode.py:610
+#: appGUI/MainGUI.py:303 appPlugins/ToolQRCode.py:593 appPlugins/ToolQRCode.py:598
msgid "Export PNG"
msgstr ""
-#: appGUI/MainGUI.py:266
+#: appGUI/MainGUI.py:305
msgid ""
"Will export an image in PNG format,\n"
"the saved image will contain the visual \n"
"information currently in FlatCAM Plot Area."
msgstr ""
-#: appGUI/MainGUI.py:276 appMain.py:10013 appMain.py:10018
+#: appGUI/MainGUI.py:315 appMain.py:10042 appMain.py:10047
msgid "Export Excellon"
msgstr ""
-#: appGUI/MainGUI.py:278
+#: appGUI/MainGUI.py:317
msgid ""
"Will export an Excellon Object as Excellon file,\n"
"the coordinates format, the file units and zeros\n"
"are set in Preferences -> Excellon Export."
msgstr ""
-#: appGUI/MainGUI.py:286 appMain.py:10058 appMain.py:10063
+#: appGUI/MainGUI.py:325 appMain.py:10087 appMain.py:10092
msgid "Export Gerber"
msgstr ""
-#: appGUI/MainGUI.py:288
+#: appGUI/MainGUI.py:327
msgid ""
"Will export an Gerber Object as Gerber file,\n"
"the coordinates format, the file units and zeros\n"
"are set in Preferences -> Gerber Export."
msgstr ""
-#: appGUI/MainGUI.py:298
+#: appGUI/MainGUI.py:337
msgid "Backup"
msgstr ""
-#: appGUI/MainGUI.py:303
+#: appGUI/MainGUI.py:342
msgid "Import Preferences from file"
msgstr ""
-#: appGUI/MainGUI.py:310
+#: appGUI/MainGUI.py:349
msgid "Export Preferences to file"
msgstr ""
-#: appGUI/MainGUI.py:319 appGUI/preferences/PreferencesUIManager.py:1301
+#: appGUI/MainGUI.py:358 appGUI/preferences/PreferencesUIManager.py:1383
msgid "Save Preferences"
msgstr ""
-#: appGUI/MainGUI.py:326 appGUI/MainGUI.py:4899
+#: appGUI/MainGUI.py:365 appGUI/MainGUI.py:5015
msgid "Print (PDF)"
msgstr ""
-#: appGUI/MainGUI.py:326 appGUI/MainGUI.py:4899
+#: appGUI/MainGUI.py:365 appGUI/MainGUI.py:5015
msgid "Ctrl+P"
msgstr ""
-#: appGUI/MainGUI.py:343 appGUI/MainGUI.py:903 appGUI/MainGUI.py:1859
+#: appGUI/MainGUI.py:382 appGUI/MainGUI.py:946 appGUI/MainGUI.py:1907
msgid "Edit"
msgstr ""
-#: appGUI/MainGUI.py:348
+#: appGUI/MainGUI.py:387
msgid "Edit Object"
msgstr ""
-#: appGUI/MainGUI.py:348 appGUI/MainGUI.py:693 appGUI/MainGUI.py:801 appGUI/MainGUI.py:4872
-#: appGUI/MainGUI.py:5140 appGUI/MainGUI.py:5399
+#: appGUI/MainGUI.py:387 appGUI/MainGUI.py:732 appGUI/MainGUI.py:844 appGUI/MainGUI.py:4988
+#: appGUI/MainGUI.py:5256 appGUI/MainGUI.py:5515
msgid "E"
msgstr ""
-#: appGUI/MainGUI.py:361
+#: appGUI/MainGUI.py:400
msgid "Conversion"
msgstr ""
-#: appGUI/MainGUI.py:365
+#: appGUI/MainGUI.py:404
msgid "Convert Single to MultiGeo"
msgstr ""
-#: appGUI/MainGUI.py:367
+#: appGUI/MainGUI.py:406
msgid ""
"Will convert a Geometry object from single_geometry type\n"
"to a multi_geometry type."
msgstr ""
-#: appGUI/MainGUI.py:372
+#: appGUI/MainGUI.py:411
msgid "Convert Multi to SingleGeo"
msgstr ""
-#: appGUI/MainGUI.py:374
+#: appGUI/MainGUI.py:413
msgid ""
"Will convert a Geometry object from multi_geometry type\n"
"to a single_geometry type."
msgstr ""
-#: appGUI/MainGUI.py:381
+#: appGUI/MainGUI.py:420
msgid "Convert Any to Geo"
msgstr ""
-#: appGUI/MainGUI.py:384
+#: appGUI/MainGUI.py:423
msgid "Convert Any to Gerber"
msgstr ""
-#: appGUI/MainGUI.py:387
+#: appGUI/MainGUI.py:426
msgid "Convert Any to Excellon"
msgstr ""
-#: appGUI/MainGUI.py:392
+#: appGUI/MainGUI.py:431
msgid "Join Objects"
msgstr ""
-#: appGUI/MainGUI.py:395
+#: appGUI/MainGUI.py:434
msgid "Join Geo/Gerber/Exc -> Geo"
msgstr ""
-#: appGUI/MainGUI.py:397
+#: appGUI/MainGUI.py:436
msgid ""
"Merge a selection of objects, which can be of type:\n"
"- Gerber\n"
@@ -4495,1664 +4872,1635 @@ msgid ""
"into a new combo Geometry object."
msgstr ""
-#: appGUI/MainGUI.py:405
+#: appGUI/MainGUI.py:444
msgid "Join Excellon(s) -> Excellon"
msgstr ""
-#: appGUI/MainGUI.py:407
+#: appGUI/MainGUI.py:446
msgid "Merge a selection of Excellon objects into a new combo Excellon object."
msgstr ""
-#: appGUI/MainGUI.py:411
+#: appGUI/MainGUI.py:450
msgid "Join Gerber(s) -> Gerber"
msgstr ""
-#: appGUI/MainGUI.py:413
+#: appGUI/MainGUI.py:452
msgid "Merge a selection of Gerber objects into a new combo Gerber object."
msgstr ""
-#: appGUI/MainGUI.py:428 appGUI/MainGUI.py:713 appGUI/MainGUI.py:768 appGUI/MainGUI.py:827
+#: appGUI/MainGUI.py:467 appGUI/MainGUI.py:752 appGUI/MainGUI.py:811 appGUI/MainGUI.py:870
msgid "DEL"
msgstr ""
-#: appGUI/MainGUI.py:434 appGUI/MainGUI.py:1866
+#: appGUI/MainGUI.py:473 appGUI/MainGUI.py:1914
msgid "Num Move"
msgstr ""
-#: appGUI/MainGUI.py:437 appGUI/MainGUI.py:1057 appGUI/MainGUI.py:2429
-#: appGUI/MainGUI.py:4878
+#: appGUI/MainGUI.py:476 appGUI/MainGUI.py:1100 appGUI/MainGUI.py:2479
+#: appGUI/MainGUI.py:4994
msgid "Set Origin"
msgstr ""
-#: appGUI/MainGUI.py:437 appGUI/MainGUI.py:666 appGUI/MainGUI.py:4878 appGUI/MainGUI.py:5147
+#: appGUI/MainGUI.py:476 appGUI/MainGUI.py:705 appGUI/MainGUI.py:4994 appGUI/MainGUI.py:5263
msgid "O"
msgstr ""
-#: appGUI/MainGUI.py:440
+#: appGUI/MainGUI.py:479
msgid "Shift+O"
msgstr ""
-#: appGUI/MainGUI.py:443 appGUI/MainGUI.py:1061 appGUI/MainGUI.py:2433 appMain.py:5547
-#: appMain.py:5561
+#: appGUI/MainGUI.py:482 appGUI/MainGUI.py:1104 appGUI/MainGUI.py:2483 appMain.py:5564
+#: appMain.py:5578
msgid "Custom Origin"
msgstr ""
-#: appGUI/MainGUI.py:447 appGUI/MainGUI.py:1064 appGUI/MainGUI.py:2436
+#: appGUI/MainGUI.py:486 appGUI/MainGUI.py:1107 appGUI/MainGUI.py:2486
msgid "Jump to Location"
msgstr ""
-#: appGUI/MainGUI.py:447 appGUI/MainGUI.py:4874 appGUI/MainGUI.py:5142
-#: appGUI/MainGUI.py:5260 appGUI/MainGUI.py:5400
+#: appGUI/MainGUI.py:486 appGUI/MainGUI.py:4990 appGUI/MainGUI.py:5258
+#: appGUI/MainGUI.py:5376 appGUI/MainGUI.py:5516
msgid "J"
msgstr ""
-#: appGUI/MainGUI.py:450 appGUI/MainGUI.py:1066 appGUI/MainGUI.py:2438
-#: appGUI/MainGUI.py:4910
+#: appGUI/MainGUI.py:489 appGUI/MainGUI.py:1109 appGUI/MainGUI.py:2488
+#: appGUI/MainGUI.py:5026
msgid "Locate in Object"
msgstr ""
-#: appGUI/MainGUI.py:450 appGUI/MainGUI.py:4910
+#: appGUI/MainGUI.py:489 appGUI/MainGUI.py:5026
msgid "Shift+J"
msgstr ""
-#: appGUI/MainGUI.py:456 appMain.py:4976
+#: appGUI/MainGUI.py:495 appMain.py:4989
msgid "Toggle Units"
msgstr ""
-#: appGUI/MainGUI.py:456 appGUI/MainGUI.py:753 appGUI/MainGUI.py:4879 appGUI/MainGUI.py:5262
+#: appGUI/MainGUI.py:495 appGUI/MainGUI.py:796 appGUI/MainGUI.py:4995 appGUI/MainGUI.py:5378
msgid "Q"
msgstr ""
-#: appGUI/MainGUI.py:465 appGUI/MainGUI.py:1359
-#: appGUI/preferences/PreferencesUIManager.py:1042
-#: appGUI/preferences/PreferencesUIManager.py:1140
-#: appGUI/preferences/PreferencesUIManager.py:1251
-#: appGUI/preferences/PreferencesUIManager.py:1339 appMain.py:6518 appMain.py:6523
-#: appMain.py:6543
+#: appGUI/MainGUI.py:504 appGUI/MainGUI.py:1404
+#: appGUI/preferences/PreferencesUIManager.py:1111
+#: appGUI/preferences/PreferencesUIManager.py:1222
+#: appGUI/preferences/PreferencesUIManager.py:1333
+#: appGUI/preferences/PreferencesUIManager.py:1421 appMain.py:6535 appMain.py:6540
+#: appMain.py:6560
msgid "Preferences"
msgstr ""
-#: appGUI/MainGUI.py:465 appGUI/MainGUI.py:4912
+#: appGUI/MainGUI.py:504 appGUI/MainGUI.py:5028
msgid "Shift+P"
msgstr ""
-#: appGUI/MainGUI.py:471 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:21
+#: appGUI/MainGUI.py:510 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:21
#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:20
#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:21
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:23 appObjects/FlatCAMObj.py:545
-#: appPlugins/ToolReport.py:183
+#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:23 appObjects/AppObjectTemplate.py:545
+#: appPlugins/ToolImage.py:701 appPlugins/ToolReport.py:170
msgid "Options"
msgstr ""
-#: appGUI/MainGUI.py:474
+#: appGUI/MainGUI.py:513
msgid "Rotate Selection"
msgstr ""
-#: appGUI/MainGUI.py:474
+#: appGUI/MainGUI.py:513
msgid "Shift+(R)"
msgstr ""
-#: appGUI/MainGUI.py:480 appGUI/MainGUI.py:4916
+#: appGUI/MainGUI.py:519 appGUI/MainGUI.py:5032
msgid "Skew on X axis"
msgstr ""
-#: appGUI/MainGUI.py:480 appGUI/MainGUI.py:4916 appGUI/MainGUI.py:5156
+#: appGUI/MainGUI.py:519 appGUI/MainGUI.py:5032 appGUI/MainGUI.py:5272
msgid "Shift+X"
msgstr ""
-#: appGUI/MainGUI.py:483 appGUI/MainGUI.py:4917
+#: appGUI/MainGUI.py:522 appGUI/MainGUI.py:5033
msgid "Skew on Y axis"
msgstr ""
-#: appGUI/MainGUI.py:483 appGUI/MainGUI.py:4917 appGUI/MainGUI.py:5157
+#: appGUI/MainGUI.py:522 appGUI/MainGUI.py:5033 appGUI/MainGUI.py:5273
msgid "Shift+Y"
msgstr ""
-#: appGUI/MainGUI.py:489
+#: appGUI/MainGUI.py:528
msgid "Flip on X axis"
msgstr ""
-#: appGUI/MainGUI.py:492
+#: appGUI/MainGUI.py:531
msgid "Flip on Y axis"
msgstr ""
-#: appGUI/MainGUI.py:498
+#: appGUI/MainGUI.py:537
msgid "View source"
msgstr ""
-#: appGUI/MainGUI.py:498 appGUI/MainGUI.py:4938
+#: appGUI/MainGUI.py:537 appGUI/MainGUI.py:5054
msgid "Alt+S"
msgstr ""
-#: appGUI/MainGUI.py:501 appGUI/MainGUI.py:4893
+#: appGUI/MainGUI.py:540 appGUI/MainGUI.py:5009
msgid "Ctrl+D"
msgstr ""
-#: appGUI/MainGUI.py:507
+#: appGUI/MainGUI.py:546
msgid "Experimental"
msgstr ""
-#: appGUI/MainGUI.py:511 appMain.py:6701
+#: appGUI/MainGUI.py:550 appMain.py:6718
msgid "3D Area"
msgstr ""
-#: appGUI/MainGUI.py:518 appGUI/MainGUI.py:1685
+#: appGUI/MainGUI.py:557 appGUI/MainGUI.py:1731
msgid "View"
msgstr ""
-#: appGUI/MainGUI.py:521 appGUI/MainGUI.py:4943
+#: appGUI/MainGUI.py:560 appGUI/MainGUI.py:5059
msgid "Enable all"
msgstr ""
-#: appGUI/MainGUI.py:521 appGUI/MainGUI.py:4943
+#: appGUI/MainGUI.py:560 appGUI/MainGUI.py:5059
msgid "Alt+1"
msgstr ""
-#: appGUI/MainGUI.py:524 appGUI/MainGUI.py:4944
+#: appGUI/MainGUI.py:563 appGUI/MainGUI.py:5060
msgid "Disable all"
msgstr ""
-#: appGUI/MainGUI.py:524 appGUI/MainGUI.py:4944
+#: appGUI/MainGUI.py:563 appGUI/MainGUI.py:5060
msgid "Alt+2"
msgstr ""
-#: appGUI/MainGUI.py:527
+#: appGUI/MainGUI.py:566
msgid "Enable non-selected"
msgstr ""
-#: appGUI/MainGUI.py:527 appGUI/MainGUI.py:4945
+#: appGUI/MainGUI.py:566 appGUI/MainGUI.py:5061
msgid "Alt+3"
msgstr ""
-#: appGUI/MainGUI.py:530
+#: appGUI/MainGUI.py:569
msgid "Disable non-selected"
msgstr ""
-#: appGUI/MainGUI.py:530 appGUI/MainGUI.py:4946
+#: appGUI/MainGUI.py:569 appGUI/MainGUI.py:5062
msgid "Alt+4"
msgstr ""
-#: appGUI/MainGUI.py:536 appGUI/MainGUI.py:1080 appGUI/MainGUI.py:1692
-#: appGUI/MainGUI.py:2452 appGUI/MainGUI.py:4884
+#: appGUI/MainGUI.py:575 appGUI/MainGUI.py:1123 appGUI/MainGUI.py:1738
+#: appGUI/MainGUI.py:2502 appGUI/MainGUI.py:5000
msgid "Zoom Fit"
msgstr ""
-#: appGUI/MainGUI.py:536 appGUI/MainGUI.py:4884
+#: appGUI/MainGUI.py:575 appGUI/MainGUI.py:5000
msgid "V"
msgstr ""
-#: appGUI/MainGUI.py:539 appGUI/MainGUI.py:1076 appGUI/MainGUI.py:2448
-#: appGUI/MainGUI.py:4888
+#: appGUI/MainGUI.py:578 appGUI/MainGUI.py:1119 appGUI/MainGUI.py:2498
+#: appGUI/MainGUI.py:5004
msgid "Zoom In"
msgstr ""
-#: appGUI/MainGUI.py:539 appGUI/MainGUI.py:4888
+#: appGUI/MainGUI.py:578 appGUI/MainGUI.py:5004
msgid "="
msgstr ""
-#: appGUI/MainGUI.py:542 appGUI/MainGUI.py:1078 appGUI/MainGUI.py:2450
-#: appGUI/MainGUI.py:4887
+#: appGUI/MainGUI.py:581 appGUI/MainGUI.py:1121 appGUI/MainGUI.py:2500
+#: appGUI/MainGUI.py:5003
msgid "Zoom Out"
msgstr ""
-#: appGUI/MainGUI.py:542 appGUI/MainGUI.py:4887
+#: appGUI/MainGUI.py:581 appGUI/MainGUI.py:5003
msgid "-"
msgstr ""
-#: appGUI/MainGUI.py:548
+#: appGUI/MainGUI.py:587
msgid "Redraw All"
msgstr ""
-#: appGUI/MainGUI.py:548 appGUI/MainGUI.py:4961
+#: appGUI/MainGUI.py:587 appGUI/MainGUI.py:5077
msgid "F5"
msgstr ""
-#: appGUI/MainGUI.py:553 appGUI/MainGUI.py:4907
+#: appGUI/MainGUI.py:592 appGUI/MainGUI.py:5023
msgid "Toggle Code Editor"
msgstr ""
-#: appGUI/MainGUI.py:553 appGUI/MainGUI.py:4907
+#: appGUI/MainGUI.py:592 appGUI/MainGUI.py:5023
msgid "Shift+E"
msgstr ""
-#: appGUI/MainGUI.py:557
+#: appGUI/MainGUI.py:596
msgid "Toggle FullScreen"
msgstr ""
-#: appGUI/MainGUI.py:557 appGUI/MainGUI.py:4947
+#: appGUI/MainGUI.py:596 appGUI/MainGUI.py:5063
msgid "Alt+F10"
msgstr ""
-#: appGUI/MainGUI.py:560 appGUI/MainGUI.py:4902
+#: appGUI/MainGUI.py:599 appGUI/MainGUI.py:5018
msgid "Toggle Plot Area"
msgstr ""
-#: appGUI/MainGUI.py:560 appGUI/MainGUI.py:4902
+#: appGUI/MainGUI.py:599 appGUI/MainGUI.py:5018
msgid "Ctrl+F10"
msgstr ""
-#: appGUI/MainGUI.py:563
+#: appGUI/MainGUI.py:602
msgid "Toggle Project/Properties/Tool"
msgstr ""
-#: appGUI/MainGUI.py:563 appGUI/MainGUI.py:4964
+#: appGUI/MainGUI.py:602 appGUI/MainGUI.py:5080
msgid "`"
msgstr ""
-#: appGUI/MainGUI.py:568
+#: appGUI/MainGUI.py:607
msgid "Toggle Grid Snap"
msgstr ""
-#: appGUI/MainGUI.py:568 appGUI/MainGUI.py:4873
+#: appGUI/MainGUI.py:607 appGUI/MainGUI.py:4989
msgid "G"
msgstr ""
-#: appGUI/MainGUI.py:571 appGUI/MainGUI.py:4908
+#: appGUI/MainGUI.py:610 appGUI/MainGUI.py:5024
msgid "Toggle Grid Lines"
msgstr ""
-#: appGUI/MainGUI.py:571 appGUI/MainGUI.py:4908
+#: appGUI/MainGUI.py:610 appGUI/MainGUI.py:5024
msgid "Shift+G"
msgstr ""
-#: appGUI/MainGUI.py:574
+#: appGUI/MainGUI.py:613
msgid "Toggle Axis"
msgstr ""
-#: appGUI/MainGUI.py:574 appGUI/MainGUI.py:4905
+#: appGUI/MainGUI.py:613 appGUI/MainGUI.py:5021
msgid "Shift+A"
msgstr ""
-#: appGUI/MainGUI.py:577
+#: appGUI/MainGUI.py:616
msgid "Toggle Workspace"
msgstr ""
-#: appGUI/MainGUI.py:577 appGUI/MainGUI.py:4915
+#: appGUI/MainGUI.py:616 appGUI/MainGUI.py:5031
msgid "Shift+W"
msgstr ""
-#: appGUI/MainGUI.py:580 appGUI/MainGUI.py:4909
+#: appGUI/MainGUI.py:619 appGUI/MainGUI.py:5025
msgid "Toggle HUD"
msgstr ""
-#: appGUI/MainGUI.py:580 appGUI/MainGUI.py:4909
+#: appGUI/MainGUI.py:619 appGUI/MainGUI.py:5025
msgid "Shift+H"
msgstr ""
-#: appGUI/MainGUI.py:585
-msgid "Log"
+#: appGUI/MainGUI.py:624
+msgid "Error Log"
msgstr ""
-#: appGUI/MainGUI.py:590
+#: appGUI/MainGUI.py:629
msgid "Objects"
msgstr ""
-#: appGUI/MainGUI.py:597 appObjects/ObjectCollection.py:1174
-#: appObjects/ObjectCollection.py:1221 appPlugins/ToolIsolation.py:3878
-#: appPlugins/ToolPunchGerber.py:2340
+#: appGUI/MainGUI.py:636 appObjects/ObjectCollection.py:1204
+#: appObjects/ObjectCollection.py:1251 appPlugins/ToolIsolation.py:3940
+#: appPlugins/ToolPunchGerber.py:2353
msgid "Deselect All"
msgstr ""
-#: appGUI/MainGUI.py:602 appGUI/ObjectUI.py:374 appGUI/ObjectUI.py:780
-#: appGUI/ObjectUI.py:1106 appGUI/ObjectUI.py:1513
+#: appGUI/MainGUI.py:641 appGUI/ObjectUI.py:374 appGUI/ObjectUI.py:780
+#: appGUI/ObjectUI.py:1106 appGUI/ObjectUI.py:1520
msgid "Plugins"
msgstr ""
-#: appGUI/MainGUI.py:606 appGUI/MainGUI.py:1088 appGUI/MainGUI.py:2458
+#: appGUI/MainGUI.py:645 appGUI/MainGUI.py:1131 appGUI/MainGUI.py:2508
msgid "Command Line"
msgstr ""
-#: appGUI/MainGUI.py:606 appGUI/MainGUI.py:696 appGUI/MainGUI.py:810 appGUI/MainGUI.py:4882
-#: appGUI/MainGUI.py:5150 appGUI/MainGUI.py:5405
+#: appGUI/MainGUI.py:645 appGUI/MainGUI.py:735 appGUI/MainGUI.py:853 appGUI/MainGUI.py:4998
+#: appGUI/MainGUI.py:5266 appGUI/MainGUI.py:5521
msgid "S"
msgstr ""
-#: appGUI/MainGUI.py:611
+#: appGUI/MainGUI.py:650
msgid "Help"
msgstr ""
-#: appGUI/MainGUI.py:614
+#: appGUI/MainGUI.py:653
msgid "Online Help"
msgstr ""
-#: appGUI/MainGUI.py:614 appGUI/MainGUI.py:4958
+#: appGUI/MainGUI.py:653 appGUI/MainGUI.py:5074
msgid "F1"
msgstr ""
-#: appGUI/MainGUI.py:621 appMain.py:3946 appMain.py:3955
+#: appGUI/MainGUI.py:660 appMain.py:3963 appMain.py:3972
msgid "Bookmarks Manager"
msgstr ""
-#: appGUI/MainGUI.py:626
+#: appGUI/MainGUI.py:665
msgid "Report a bug"
msgstr ""
-#: appGUI/MainGUI.py:630
+#: appGUI/MainGUI.py:669
msgid "Excellon Specification"
msgstr ""
-#: appGUI/MainGUI.py:633
+#: appGUI/MainGUI.py:672
msgid "Gerber Specification"
msgstr ""
-#: appGUI/MainGUI.py:639
+#: appGUI/MainGUI.py:678
msgid "Shortcuts List"
msgstr ""
-#: appGUI/MainGUI.py:639 appGUI/MainGUI.py:4867
+#: appGUI/MainGUI.py:678 appGUI/MainGUI.py:4983
msgid "F3"
msgstr ""
-#: appGUI/MainGUI.py:642
+#: appGUI/MainGUI.py:681
msgid "YouTube Channel"
msgstr ""
-#: appGUI/MainGUI.py:642 appGUI/MainGUI.py:4960
+#: appGUI/MainGUI.py:681 appGUI/MainGUI.py:5076
msgid "F4"
msgstr ""
-#: appGUI/MainGUI.py:648
+#: appGUI/MainGUI.py:687
msgid "Donate"
msgstr ""
-#: appGUI/MainGUI.py:652 appMain.py:3723
+#: appGUI/MainGUI.py:691 appMain.py:3740
msgid "How To"
msgstr ""
-#: appGUI/MainGUI.py:656 appMain.py:3214
+#: appGUI/MainGUI.py:695 appMain.py:3217
msgid "About"
msgstr ""
-#: appGUI/MainGUI.py:661 appGUI/MainGUI.py:1765
+#: appGUI/MainGUI.py:700 appGUI/MainGUI.py:1811
msgid "Geo Editor"
msgstr ""
-#: appGUI/MainGUI.py:666 appGUI/MainGUI.py:1208 appGUI/MainGUI.py:2578
+#: appGUI/MainGUI.py:705 appGUI/MainGUI.py:1251 appGUI/MainGUI.py:2628
msgid "Add Circle"
msgstr ""
-#: appGUI/MainGUI.py:670 appGUI/MainGUI.py:1210 appGUI/MainGUI.py:2580
+#: appGUI/MainGUI.py:709 appGUI/MainGUI.py:1253 appGUI/MainGUI.py:2630
msgid "Add Arc"
msgstr ""
-#: appGUI/MainGUI.py:670 appGUI/MainGUI.py:745 appGUI/MainGUI.py:787 appGUI/MainGUI.py:5136
-#: appGUI/MainGUI.py:5257 appGUI/MainGUI.py:5395
+#: appGUI/MainGUI.py:709 appGUI/MainGUI.py:788 appGUI/MainGUI.py:830 appGUI/MainGUI.py:5252
+#: appGUI/MainGUI.py:5373 appGUI/MainGUI.py:5511
msgid "A"
msgstr ""
-#: appGUI/MainGUI.py:674 appGUI/MainGUI.py:1212 appGUI/MainGUI.py:2582
+#: appGUI/MainGUI.py:713 appGUI/MainGUI.py:1255 appGUI/MainGUI.py:2632
msgid "Add Rectangle"
msgstr ""
-#: appGUI/MainGUI.py:674 appGUI/MainGUI.py:761 appGUI/MainGUI.py:4881 appGUI/MainGUI.py:5149
-#: appGUI/MainGUI.py:5263 appGUI/MainGUI.py:5404
+#: appGUI/MainGUI.py:713 appGUI/MainGUI.py:804 appGUI/MainGUI.py:4997 appGUI/MainGUI.py:5265
+#: appGUI/MainGUI.py:5379 appGUI/MainGUI.py:5520
msgid "R"
msgstr ""
-#: appGUI/MainGUI.py:678 appGUI/MainGUI.py:1218 appGUI/MainGUI.py:2588
+#: appGUI/MainGUI.py:717 appGUI/MainGUI.py:1261 appGUI/MainGUI.py:2638
msgid "Add Polygon"
msgstr ""
-#: appGUI/MainGUI.py:682 appGUI/MainGUI.py:1216 appGUI/MainGUI.py:2586
+#: appGUI/MainGUI.py:721 appGUI/MainGUI.py:1259 appGUI/MainGUI.py:2636
msgid "Add Path"
msgstr ""
-#: appGUI/MainGUI.py:682 appGUI/MainGUI.py:784 appGUI/MainGUI.py:4880 appGUI/MainGUI.py:5148
-#: appGUI/MainGUI.py:5403 appGUI/ObjectUI.py:1483 appGUI/ObjectUI.py:1494
+#: appGUI/MainGUI.py:721 appGUI/MainGUI.py:827 appGUI/MainGUI.py:4996 appGUI/MainGUI.py:5264
+#: appGUI/MainGUI.py:5519 appGUI/ObjectUI.py:1490 appGUI/ObjectUI.py:1501
msgid "P"
msgstr ""
-#: appGUI/MainGUI.py:686 appGUI/MainGUI.py:1221 appGUI/MainGUI.py:2591
+#: appGUI/MainGUI.py:725 appGUI/MainGUI.py:1264 appGUI/MainGUI.py:2641
msgid "Add Text"
msgstr ""
-#: appGUI/MainGUI.py:686 appGUI/MainGUI.py:790 appGUI/MainGUI.py:4883 appGUI/MainGUI.py:5151
-#: appGUI/MainGUI.py:5264 appGUI/MainGUI.py:5406 appGUI/MainGUI.py:5407
+#: appGUI/MainGUI.py:725 appGUI/MainGUI.py:833 appGUI/MainGUI.py:4999 appGUI/MainGUI.py:5267
+#: appGUI/MainGUI.py:5380 appGUI/MainGUI.py:5522 appGUI/MainGUI.py:5523
msgid "T"
msgstr ""
-#: appGUI/MainGUI.py:690 appGUI/MainGUI.py:1231 appGUI/MainGUI.py:2601
+#: appGUI/MainGUI.py:729 appGUI/MainGUI.py:1276 appGUI/MainGUI.py:2651
msgid "Polygon Union"
msgstr ""
-#: appGUI/MainGUI.py:690 appGUI/MainGUI.py:5152
+#: appGUI/MainGUI.py:729 appGUI/MainGUI.py:5268
msgid "U"
msgstr ""
-#: appGUI/MainGUI.py:693 appGUI/MainGUI.py:1236 appGUI/MainGUI.py:2606
+#: appGUI/MainGUI.py:732 appGUI/MainGUI.py:1281 appGUI/MainGUI.py:2656
msgid "Polygon Intersection"
msgstr ""
-#: appGUI/MainGUI.py:696 appGUI/MainGUI.py:2608
+#: appGUI/MainGUI.py:735 appGUI/MainGUI.py:2658
msgid "Polygon Subtraction"
msgstr ""
-#: appGUI/MainGUI.py:700 appGUI/MainGUI.py:1796 appGUI/MainGUI.py:2610
+#: appGUI/MainGUI.py:739 appGUI/MainGUI.py:1844 appGUI/MainGUI.py:2660
msgid "Alt Subtraction"
msgstr ""
-#: appGUI/MainGUI.py:705 appGUI/MainGUI.py:1250 appGUI/MainGUI.py:2614
+#: appGUI/MainGUI.py:744 appGUI/MainGUI.py:1295 appGUI/MainGUI.py:2664
msgid "Cut Path"
msgstr ""
-#: appGUI/MainGUI.py:710
+#: appGUI/MainGUI.py:749
msgid "Copy Geom"
msgstr ""
-#: appGUI/MainGUI.py:710 appGUI/MainGUI.py:765 appGUI/MainGUI.py:824 appGUI/MainGUI.py:5138
-#: appGUI/MainGUI.py:5258 appGUI/MainGUI.py:5397
+#: appGUI/MainGUI.py:749 appGUI/MainGUI.py:808 appGUI/MainGUI.py:867 appGUI/MainGUI.py:5254
+#: appGUI/MainGUI.py:5374 appGUI/MainGUI.py:5513
msgid "C"
msgstr ""
-#: appGUI/MainGUI.py:713 appGUI/MainGUI.py:1255 appGUI/MainGUI.py:2618
-#: appGUI/MainGUI.py:5167
-msgid "Delete Shape"
-msgstr ""
-
-#: appGUI/MainGUI.py:718 appGUI/MainGUI.py:832 appGUI/MainGUI.py:1305 appGUI/MainGUI.py:1804
-#: appGUI/MainGUI.py:1870 appGUI/MainGUI.py:2669 appGUI/MainGUI.py:5401
-#: appPlugins/ToolMove.py:27
-msgid "Move"
-msgstr ""
-
-#: appGUI/MainGUI.py:718 appGUI/MainGUI.py:774 appGUI/MainGUI.py:832 appGUI/MainGUI.py:4876
-#: appGUI/MainGUI.py:5144 appGUI/MainGUI.py:5145 appGUI/MainGUI.py:5261
-#: appGUI/MainGUI.py:5401
+#: appGUI/MainGUI.py:757 appGUI/MainGUI.py:817 appGUI/MainGUI.py:875 appGUI/MainGUI.py:4992
+#: appGUI/MainGUI.py:5260 appGUI/MainGUI.py:5261 appGUI/MainGUI.py:5377
+#: appGUI/MainGUI.py:5517
msgid "M"
msgstr ""
-#: appGUI/MainGUI.py:725 appGUI/MainGUI.py:5141
+#: appGUI/MainGUI.py:768 appGUI/MainGUI.py:5257
msgid "I"
msgstr ""
-#: appGUI/MainGUI.py:729 appGUI/MainGUI.py:819 appGUI/MainGUI.py:4937 appGUI/MainGUI.py:5158
-#: appGUI/MainGUI.py:5417
+#: appGUI/MainGUI.py:772 appGUI/MainGUI.py:862 appGUI/MainGUI.py:5053 appGUI/MainGUI.py:5274
+#: appGUI/MainGUI.py:5533
msgid "Alt+R"
msgstr ""
-#: appGUI/MainGUI.py:734 appGUI/MainGUI.py:5143
+#: appGUI/MainGUI.py:777 appGUI/MainGUI.py:5259
msgid "Toggle Corner Snap"
msgstr ""
-#: appGUI/MainGUI.py:734 appGUI/MainGUI.py:5143
+#: appGUI/MainGUI.py:777 appGUI/MainGUI.py:5259
msgid "K"
msgstr ""
-#: appGUI/MainGUI.py:748 appGUI/MainGUI.py:1182 appGUI/MainGUI.py:1842
-#: appGUI/MainGUI.py:2552 appGUI/MainGUI.py:5259
+#: appGUI/MainGUI.py:788 appGUI/MainGUI.py:1227 appGUI/MainGUI.py:1892
+#: appGUI/MainGUI.py:2604 appGUI/MainGUI.py:5373
+msgid "Add Drill Array"
+msgstr ""
+
+#: appGUI/MainGUI.py:791 appGUI/MainGUI.py:1225 appGUI/MainGUI.py:1890
+#: appGUI/MainGUI.py:2602 appGUI/MainGUI.py:5375
msgid "Add Drill"
msgstr ""
-#: appGUI/MainGUI.py:753 appGUI/MainGUI.py:1188 appGUI/MainGUI.py:1849
-#: appGUI/MainGUI.py:2560 appGUI/MainGUI.py:5262
+#: appGUI/MainGUI.py:796 appGUI/MainGUI.py:1231 appGUI/MainGUI.py:1897
+#: appGUI/MainGUI.py:2610 appGUI/MainGUI.py:5378
msgid "Add Slot Array"
msgstr ""
-#: appGUI/MainGUI.py:756 appGUI/MainGUI.py:1186 appGUI/MainGUI.py:1847
-#: appGUI/MainGUI.py:2558 appGUI/MainGUI.py:5265
+#: appGUI/MainGUI.py:799 appGUI/MainGUI.py:1229 appGUI/MainGUI.py:1895
+#: appGUI/MainGUI.py:2608 appGUI/MainGUI.py:5381
msgid "Add Slot"
msgstr ""
-#: appGUI/MainGUI.py:756 appGUI/MainGUI.py:5265
+#: appGUI/MainGUI.py:799 appGUI/MainGUI.py:5381
msgid "W"
msgstr ""
-#: appGUI/MainGUI.py:761
-msgid "Resize Drill(S)"
-msgstr ""
-
-#: appGUI/MainGUI.py:774 appGUI/MainGUI.py:1200 appGUI/MainGUI.py:2570
-#: appGUI/MainGUI.py:5261
-msgid "Move Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:784 appGUI/MainGUI.py:1268 appGUI/MainGUI.py:2632
-#: appGUI/MainGUI.py:5403
-msgid "Add Pad"
-msgstr ""
-
-#: appGUI/MainGUI.py:790 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:2636
-#: appGUI/MainGUI.py:5406
-msgid "Add Track"
-msgstr ""
-
-#: appGUI/MainGUI.py:793 appGUI/MainGUI.py:1274 appGUI/MainGUI.py:2638
-#: appGUI/MainGUI.py:5402
-msgid "Add Region"
-msgstr ""
-
-#: appGUI/MainGUI.py:798 appGUI/MainGUI.py:1276 appGUI/MainGUI.py:1819
-#: appGUI/MainGUI.py:2640
-msgid "Poligonize"
-msgstr ""
-
-#: appGUI/MainGUI.py:798 appGUI/MainGUI.py:4933 appGUI/MainGUI.py:5416
-msgid "Alt+N"
-msgstr ""
-
-#: appGUI/MainGUI.py:801 appGUI/MainGUI.py:5399
-msgid "Add SemiDisc"
-msgstr ""
-
-#: appGUI/MainGUI.py:804 appGUI/MainGUI.py:5398
-msgid "Add Disc"
-msgstr ""
-
-#: appGUI/MainGUI.py:813 appGUI/MainGUI.py:1289 appGUI/MainGUI.py:1831
-#: appGUI/MainGUI.py:2653
-msgid "Mark Area"
-msgstr ""
-
-#: appGUI/MainGUI.py:813 appGUI/MainGUI.py:4920 appGUI/MainGUI.py:5415
-msgid "Alt+A"
-msgstr ""
-
-#: appGUI/MainGUI.py:816 appGUI/MainGUI.py:1227 appGUI/MainGUI.py:1294
-#: appGUI/MainGUI.py:1786 appGUI/MainGUI.py:1833 appGUI/MainGUI.py:2597
-#: appGUI/MainGUI.py:2658
-msgid "Eraser"
-msgstr ""
-
-#: appGUI/MainGUI.py:819 appMain.py:7045 appMain.py:7099 appMain.py:7147
-msgid "Transform"
-msgstr ""
-
-#: appGUI/MainGUI.py:849
-msgid "Enable Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:851
-msgid "Disable Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:855 appGUI/MainGUI.py:1720
-msgid "Set Color"
-msgstr ""
-
-#: appGUI/MainGUI.py:858 appGUI/MainGUI.py:1723 appMain.py:9083
-msgid "Red"
-msgstr ""
-
-#: appGUI/MainGUI.py:861 appGUI/MainGUI.py:1726 appMain.py:9085
-msgid "Blue"
-msgstr ""
-
-#: appGUI/MainGUI.py:864 appGUI/MainGUI.py:1729 appMain.py:9088
-msgid "Yellow"
-msgstr ""
-
-#: appGUI/MainGUI.py:867 appGUI/MainGUI.py:1732 appMain.py:9090
-msgid "Green"
-msgstr ""
-
-#: appGUI/MainGUI.py:870 appGUI/MainGUI.py:1735 appMain.py:9092
-msgid "Purple"
-msgstr ""
-
-#: appGUI/MainGUI.py:873 appGUI/MainGUI.py:1738 appMain.py:9094
-msgid "Brown"
-msgstr ""
-
-#: appGUI/MainGUI.py:876 appGUI/MainGUI.py:1741 appMain.py:9096
-msgid "Indigo"
-msgstr ""
-
-#: appGUI/MainGUI.py:879 appGUI/MainGUI.py:1744 appMain.py:9098 appMain.py:9176
-msgid "White"
-msgstr ""
-
-#: appGUI/MainGUI.py:882 appGUI/MainGUI.py:1747 appMain.py:9100
-msgid "Black"
-msgstr ""
-
-#: appGUI/MainGUI.py:892 appGUI/MainGUI.py:1757 appMain.py:9141
-msgid "Opacity"
-msgstr ""
-
-#: appGUI/MainGUI.py:895 appGUI/MainGUI.py:1760
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:48
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:64
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:65
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appPlugins/ToolDrilling.py:2494
-#: appPlugins/ToolIsolation.py:3418 appPlugins/ToolMilling.py:4160
-#: appPlugins/ToolNCC.py:4199 appPlugins/ToolPaint.py:3072 appMain.py:9115
-msgid "Default"
-msgstr ""
-
-#: appGUI/MainGUI.py:900
-msgid "View Source"
-msgstr ""
-
-#: appGUI/MainGUI.py:913 appGUI/MainGUI.py:926 appGUI/MainGUI.py:1442 appGUI/MainGUI.py:1872
-#: appMain.py:2690 appMain.py:2958 appMain.py:8577
-msgid "Properties"
-msgstr ""
-
-#: appGUI/MainGUI.py:926 appGUI/MainGUI.py:1426 appGUI/MainGUI.py:1709 appMain.py:2696
-#: appMain.py:2961 appMain.py:10572
-msgid "Project"
-msgstr ""
-
-#: appGUI/MainGUI.py:943
-msgid "File Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:948
-msgid "Edit Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:953
-msgid "View Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:958
-msgid "Shell Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:963
-msgid "Plugin Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:968
-msgid "Excellon Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:975
-msgid "Geometry Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:980
-msgid "Gerber Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:986 appGUI/MainGUI.py:2275
-msgid "Delta Coordinates Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:990 appGUI/MainGUI.py:2283
-msgid "Coordinates Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:994 appGUI/MainGUI.py:2291
-msgid "Grid Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:1004 appGUI/MainGUI.py:2299
-msgid "Status Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:1024
-msgid "Save project"
-msgstr ""
-
-#: appGUI/MainGUI.py:1030 appGUI/MainGUI.py:2402
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:21
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:19
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:20
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:21 appMain.py:2693 appMain.py:2956
-msgid "Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:1053 appGUI/MainGUI.py:2425 appGUI/MainGUI.py:4896
-#: appGUI/MainGUI.py:5161
-msgid "Distance Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:1055 appGUI/MainGUI.py:2427
-msgid "Distance Min Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:1072 appGUI/MainGUI.py:1696 appGUI/MainGUI.py:2444
-msgid "Replot"
-msgstr ""
-
-#: appGUI/MainGUI.py:1074 appGUI/MainGUI.py:1694 appGUI/MainGUI.py:2446
-msgid "Clear Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:1104 appGUI/MainGUI.py:2474 appGUI/ObjectUI.py:1517
-#: appPlugins/ToolLevelling.py:187 appPlugins/ToolLevelling.py:1736
-msgid "Levelling"
-msgstr ""
-
-#: appGUI/MainGUI.py:1113 appGUI/MainGUI.py:2483 appGUI/ObjectUI.py:237
-#: appGUI/ObjectUI.py:444 appPlugins/ToolFollow.py:130 appPlugins/ToolFollow.py:666
-msgid "Follow"
-msgstr ""
-
-#: appGUI/MainGUI.py:1124 appGUI/MainGUI.py:2494
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 appPlugins/ToolCutOut.py:2300
-msgid "Panel"
-msgstr ""
-
-#: appGUI/MainGUI.py:1126 appGUI/MainGUI.py:2496 appGUI/ObjectUI.py:415
-#: appPlugins/ToolFilm.py:158 appPlugins/ToolFilm.py:1230
-msgid "Film"
-msgstr ""
-
-#: appGUI/MainGUI.py:1128 appGUI/MainGUI.py:2498 appPlugins/ToolDblSided.py:110
-#: appPlugins/ToolDblSided.py:687
-msgid "2-Sided"
-msgstr ""
-
-#: appGUI/MainGUI.py:1133 appGUI/MainGUI.py:2503 appGUI/MainGUI.py:4920
-#: appPlugins/ToolAlignObjects.py:32 appPlugins/ToolAlignObjects.py:399
-msgid "Align Objects"
-msgstr ""
-
-#: appGUI/MainGUI.py:1140 appGUI/MainGUI.py:2510 appGUI/MainGUI.py:4924
-#: appPlugins/ToolExtract.py:131 appPlugins/ToolExtract.py:956
-msgid "Extract"
-msgstr ""
-
-#: appGUI/MainGUI.py:1142 appGUI/MainGUI.py:2512 appGUI/MainGUI.py:4929
-#: appPlugins/ToolCopperThieving.py:145 appPlugins/ToolCopperThieving.py:1268
-msgid "Copper Thieving"
-msgstr ""
-
-#: appGUI/MainGUI.py:1144 appGUI/MainGUI.py:2514 appGUI/MainGUI.py:4921
-#: appPlugins/ToolMarkers.py:154 appPlugins/ToolMarkers.py:1142
-msgid "Markers"
-msgstr ""
-
-#: appGUI/MainGUI.py:1146 appGUI/MainGUI.py:2516 appGUI/MainGUI.py:4927
-#: appPlugins/ToolPunchGerber.py:1971 appPlugins/ToolPunchGerber.py:2351
-msgid "Punch Gerber"
-msgstr ""
-
-#: appGUI/MainGUI.py:1148 appGUI/MainGUI.py:2518 appGUI/MainGUI.py:4922
-#: appPlugins/ToolCalculators.py:93 appPlugins/ToolCalculators.py:509
-msgid "Calculators"
-msgstr ""
-
-#: appGUI/MainGUI.py:1180 appGUI/MainGUI.py:1206 appGUI/MainGUI.py:1266
-#: appGUI/MainGUI.py:2550 appGUI/MainGUI.py:2576 appGUI/MainGUI.py:2630
-msgid "Select"
-msgstr ""
-
-#: appGUI/MainGUI.py:1190 appGUI/MainGUI.py:1852 appGUI/MainGUI.py:2556
-#: appGUI/MainGUI.py:5263
+#: appGUI/MainGUI.py:804 appGUI/MainGUI.py:1233 appGUI/MainGUI.py:1900
+#: appGUI/MainGUI.py:2606 appGUI/MainGUI.py:5379
msgid "Resize Drill"
msgstr ""
-#: appGUI/MainGUI.py:1194 appGUI/MainGUI.py:2564 appGUI/MainGUI.py:5258
-msgid "Copy Drill"
+#: appGUI/MainGUI.py:827 appGUI/MainGUI.py:1313 appGUI/MainGUI.py:2682
+#: appGUI/MainGUI.py:5519
+msgid "Add Pad"
msgstr ""
-#: appGUI/MainGUI.py:1196 appGUI/MainGUI.py:2566 appGUI/MainGUI.py:5267
-msgid "Delete Drill"
+#: appGUI/MainGUI.py:833 appGUI/MainGUI.py:1317 appGUI/MainGUI.py:2686
+#: appGUI/MainGUI.py:5522
+msgid "Add Track"
msgstr ""
-#: appGUI/MainGUI.py:1223 appGUI/MainGUI.py:2593
+#: appGUI/MainGUI.py:836 appGUI/MainGUI.py:1319 appGUI/MainGUI.py:2688
+#: appGUI/MainGUI.py:5518
+msgid "Add Region"
+msgstr ""
+
+#: appGUI/MainGUI.py:841 appGUI/MainGUI.py:1321 appGUI/MainGUI.py:1867
+#: appGUI/MainGUI.py:2690
+msgid "Poligonize"
+msgstr ""
+
+#: appGUI/MainGUI.py:841 appGUI/MainGUI.py:5049 appGUI/MainGUI.py:5532
+msgid "Alt+N"
+msgstr ""
+
+#: appGUI/MainGUI.py:844 appGUI/MainGUI.py:5515
+msgid "Add SemiDisc"
+msgstr ""
+
+#: appGUI/MainGUI.py:847 appGUI/MainGUI.py:5514
+msgid "Add Disc"
+msgstr ""
+
+#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:1334 appGUI/MainGUI.py:1879
+#: appGUI/MainGUI.py:2703
+msgid "Mark Area"
+msgstr ""
+
+#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:5036 appGUI/MainGUI.py:5531
+msgid "Alt+A"
+msgstr ""
+
+#: appGUI/MainGUI.py:859 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:1339
+#: appGUI/MainGUI.py:1834 appGUI/MainGUI.py:1881 appGUI/MainGUI.py:2647
+#: appGUI/MainGUI.py:2708
+msgid "Eraser"
+msgstr ""
+
+#: appGUI/MainGUI.py:862 appMain.py:7065 appMain.py:7119 appMain.py:7167
+msgid "Transform"
+msgstr ""
+
+#: appGUI/MainGUI.py:892
+msgid "Enable Plot"
+msgstr ""
+
+#: appGUI/MainGUI.py:894
+msgid "Disable Plot"
+msgstr ""
+
+#: appGUI/MainGUI.py:898 appGUI/MainGUI.py:1766
+msgid "Set Color"
+msgstr ""
+
+#: appGUI/MainGUI.py:901 appGUI/MainGUI.py:1769 appMain.py:9111
+msgid "Red"
+msgstr ""
+
+#: appGUI/MainGUI.py:904 appGUI/MainGUI.py:1772 appMain.py:9113
+msgid "Blue"
+msgstr ""
+
+#: appGUI/MainGUI.py:907 appGUI/MainGUI.py:1775 appMain.py:9116
+msgid "Yellow"
+msgstr ""
+
+#: appGUI/MainGUI.py:910 appGUI/MainGUI.py:1778 appMain.py:9118
+msgid "Green"
+msgstr ""
+
+#: appGUI/MainGUI.py:913 appGUI/MainGUI.py:1781 appMain.py:9120
+msgid "Purple"
+msgstr ""
+
+#: appGUI/MainGUI.py:916 appGUI/MainGUI.py:1784 appMain.py:9122
+msgid "Brown"
+msgstr ""
+
+#: appGUI/MainGUI.py:919 appGUI/MainGUI.py:1787 appMain.py:9124
+msgid "Indigo"
+msgstr ""
+
+#: appGUI/MainGUI.py:922 appGUI/MainGUI.py:1790 appMain.py:9126 appMain.py:9204
+msgid "White"
+msgstr ""
+
+#: appGUI/MainGUI.py:925 appGUI/MainGUI.py:1793 appMain.py:9128
+msgid "Black"
+msgstr ""
+
+#: appGUI/MainGUI.py:935 appGUI/MainGUI.py:1803 appMain.py:9169
+msgid "Opacity"
+msgstr ""
+
+#: appGUI/MainGUI.py:938 appGUI/MainGUI.py:1806
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:45
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:48
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:64
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:65
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appMain.py:9143
+#: appPlugins/ToolDrilling.py:2474 appPlugins/ToolIsolation.py:3464
+#: appPlugins/ToolMilling.py:4127 appPlugins/ToolNCC.py:4172 appPlugins/ToolPaint.py:3053
+msgid "Default"
+msgstr ""
+
+#: appGUI/MainGUI.py:943
+msgid "View Source"
+msgstr ""
+
+#: appGUI/MainGUI.py:956 appGUI/MainGUI.py:969 appGUI/MainGUI.py:1488 appGUI/MainGUI.py:1920
+#: appMain.py:2693 appMain.py:2961 appMain.py:8604
+msgid "Properties"
+msgstr ""
+
+#: appGUI/MainGUI.py:969 appGUI/MainGUI.py:1472 appGUI/MainGUI.py:1755 appMain.py:2699
+#: appMain.py:2964 appMain.py:10585
+msgid "Project"
+msgstr ""
+
+#: appGUI/MainGUI.py:986
+msgid "File Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:991
+msgid "Edit Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:996
+msgid "View Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1001
+msgid "Shell Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1006
+msgid "Plugin Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1011
+msgid "Excellon Editor Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1018
+msgid "Geometry Editor Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1023
+msgid "Gerber Editor Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1029 appGUI/MainGUI.py:2327
+msgid "Delta Coordinates Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1033 appGUI/MainGUI.py:2335
+msgid "Coordinates Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1037 appGUI/MainGUI.py:2343
+msgid "Grid Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1047 appGUI/MainGUI.py:2351
+msgid "Status Toolbar"
+msgstr ""
+
+#: appGUI/MainGUI.py:1067
+msgid "Save project"
+msgstr ""
+
+#: appGUI/MainGUI.py:1073 appGUI/MainGUI.py:2452
+#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:21
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:18
+#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:20
+#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:21 appMain.py:2696 appMain.py:2959
+msgid "Editor"
+msgstr ""
+
+#: appGUI/MainGUI.py:1096 appGUI/MainGUI.py:2475 appGUI/MainGUI.py:5012
+#: appGUI/MainGUI.py:5277
+msgid "Distance Tool"
+msgstr ""
+
+#: appGUI/MainGUI.py:1098 appGUI/MainGUI.py:2477
+msgid "Distance Min Tool"
+msgstr ""
+
+#: appGUI/MainGUI.py:1115 appGUI/MainGUI.py:1742 appGUI/MainGUI.py:2494
+msgid "Replot"
+msgstr ""
+
+#: appGUI/MainGUI.py:1117 appGUI/MainGUI.py:1740 appGUI/MainGUI.py:2496
+msgid "Clear Plot"
+msgstr ""
+
+#: appGUI/MainGUI.py:1147 appGUI/MainGUI.py:2524 appGUI/ObjectUI.py:1524
+#: appPlugins/ToolLevelling.py:167 appPlugins/ToolLevelling.py:1717
+msgid "Levelling"
+msgstr ""
+
+#: appGUI/MainGUI.py:1156 appGUI/MainGUI.py:2533 appGUI/ObjectUI.py:237
+#: appGUI/ObjectUI.py:444 appPlugins/ToolFollow.py:114 appPlugins/ToolFollow.py:650
+msgid "Follow"
+msgstr ""
+
+#: appGUI/MainGUI.py:1167 appGUI/MainGUI.py:2544
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 appPlugins/ToolCutOut.py:2282
+msgid "Panel"
+msgstr ""
+
+#: appGUI/MainGUI.py:1169 appGUI/MainGUI.py:2546 appGUI/ObjectUI.py:415
+#: appPlugins/ToolFilm.py:142 appPlugins/ToolFilm.py:1222
+msgid "Film"
+msgstr ""
+
+#: appGUI/MainGUI.py:1171 appGUI/MainGUI.py:2548 appPlugins/ToolDblSided.py:95
+#: appPlugins/ToolDblSided.py:673
+msgid "2-Sided"
+msgstr ""
+
+#: appGUI/MainGUI.py:1176 appGUI/MainGUI.py:2553 appGUI/MainGUI.py:5036
+#: appPlugins/ToolAlignObjects.py:19 appPlugins/ToolAlignObjects.py:386
+msgid "Align Objects"
+msgstr ""
+
+#: appGUI/MainGUI.py:1183 appGUI/MainGUI.py:2560 appGUI/MainGUI.py:5040
+#: appPlugins/ToolExtract.py:38 appPlugins/ToolExtract.py:222 appPlugins/ToolExtract.py:986
+msgid "Extract"
+msgstr ""
+
+#: appGUI/MainGUI.py:1185 appGUI/MainGUI.py:2562 appGUI/MainGUI.py:5045
+#: appPlugins/ToolCopperThieving.py:128 appPlugins/ToolCopperThieving.py:1251
+msgid "Copper Thieving"
+msgstr ""
+
+#: appGUI/MainGUI.py:1187 appGUI/MainGUI.py:2564 appGUI/MainGUI.py:5037
+#: appPlugins/ToolMarkers.py:143 appPlugins/ToolMarkers.py:1216
+msgid "Markers"
+msgstr ""
+
+#: appGUI/MainGUI.py:1189 appGUI/MainGUI.py:2566 appGUI/MainGUI.py:5043
+#: appPlugins/ToolPunchGerber.py:66 appPlugins/ToolPunchGerber.py:257
+#: appPlugins/ToolPunchGerber.py:1984 appPlugins/ToolPunchGerber.py:2364
+msgid "Punch Gerber"
+msgstr ""
+
+#: appGUI/MainGUI.py:1191 appGUI/MainGUI.py:2568 appGUI/MainGUI.py:5038
+#: appPlugins/ToolCalculators.py:85 appPlugins/ToolCalculators.py:501
+msgid "Calculators"
+msgstr ""
+
+#: appGUI/MainGUI.py:1223 appGUI/MainGUI.py:1249 appGUI/MainGUI.py:1311
+#: appGUI/MainGUI.py:2600 appGUI/MainGUI.py:2626 appGUI/MainGUI.py:2680
+msgid "Select"
+msgstr ""
+
+#: appGUI/MainGUI.py:1268 appGUI/MainGUI.py:2643
msgid "Add Buffer"
msgstr ""
-#: appGUI/MainGUI.py:1225 appGUI/MainGUI.py:2595
+#: appGUI/MainGUI.py:1270 appGUI/MainGUI.py:2645
msgid "Paint Shape"
msgstr ""
-#: appGUI/MainGUI.py:1233 appGUI/MainGUI.py:2603
+#: appGUI/MainGUI.py:1278 appGUI/MainGUI.py:2653
msgid "Polygon Explode"
msgstr ""
-#: appGUI/MainGUI.py:1239
+#: appGUI/MainGUI.py:1284
msgid ""
"Polygon Subtraction. First selected is the target.\n"
"The rest of the selected is subtracted from the first.\n"
"First selected is replaced by the result."
msgstr ""
-#: appGUI/MainGUI.py:1244
+#: appGUI/MainGUI.py:1289
msgid ""
"Alt Subtraction. First selected is the target.\n"
"The rest of the selected is subtracted from the first.\n"
"First selected is kept besides the result."
msgstr ""
-#: appGUI/MainGUI.py:1252
+#: appGUI/MainGUI.py:1297
msgid "Copy Shape(s)"
msgstr ""
-#: appGUI/MainGUI.py:1257 appGUI/MainGUI.py:1302 appGUI/MainGUI.py:1800
-#: appGUI/MainGUI.py:1837 appGUI/MainGUI.py:2620 appGUI/MainGUI.py:2666
-#: appGUI/MainGUI.py:4939 appGUI/ObjectUI.py:92 appGUI/ObjectUI.py:147
+#: appGUI/MainGUI.py:1302 appGUI/MainGUI.py:1347 appGUI/MainGUI.py:1848
+#: appGUI/MainGUI.py:1885 appGUI/MainGUI.py:2670 appGUI/MainGUI.py:2716
+#: appGUI/MainGUI.py:5055 appGUI/ObjectUI.py:92 appGUI/ObjectUI.py:147
msgid "Transformations"
msgstr ""
-#: appGUI/MainGUI.py:1260 appGUI/MainGUI.py:2624
+#: appGUI/MainGUI.py:1305 appGUI/MainGUI.py:2674
msgid "Move Objects"
msgstr ""
-#: appGUI/MainGUI.py:1279 appGUI/MainGUI.py:1821 appGUI/MainGUI.py:2643
+#: appGUI/MainGUI.py:1324 appGUI/MainGUI.py:1869 appGUI/MainGUI.py:2693
msgid "SemiDisc"
msgstr ""
-#: appGUI/MainGUI.py:1281 appGUI/MainGUI.py:1823 appGUI/MainGUI.py:2645
+#: appGUI/MainGUI.py:1326 appGUI/MainGUI.py:1871 appGUI/MainGUI.py:2695
msgid "Disc"
msgstr ""
-#: appGUI/MainGUI.py:1291 appGUI/MainGUI.py:2655
+#: appGUI/MainGUI.py:1336 appGUI/MainGUI.py:2705
msgid "Import Shape"
msgstr ""
-#: appGUI/MainGUI.py:1313
+#: appGUI/MainGUI.py:1358
msgid "Snap to grid"
msgstr ""
-#: appGUI/MainGUI.py:1316
+#: appGUI/MainGUI.py:1361
msgid "Grid X snapping distance"
msgstr ""
-#: appGUI/MainGUI.py:1321
+#: appGUI/MainGUI.py:1366
msgid ""
"When active, value on Grid_X\n"
"is copied to the Grid_Y value."
msgstr ""
-#: appGUI/MainGUI.py:1328
+#: appGUI/MainGUI.py:1373
msgid "Grid Y snapping distance"
msgstr ""
-#: appGUI/MainGUI.py:1339
+#: appGUI/MainGUI.py:1384
msgid "Snap to corner"
msgstr ""
-#: appGUI/MainGUI.py:1343 appGUI/preferences/general/GeneralAPPSetGroupUI.py:76
+#: appGUI/MainGUI.py:1388 appGUI/preferences/general/GeneralAPPSetGroupUI.py:76
msgid "Max. magnet distance"
msgstr ""
-#: appGUI/MainGUI.py:1353
+#: appGUI/MainGUI.py:1398
msgid "Toggle the display of axis on canvas"
msgstr ""
-#: appGUI/MainGUI.py:1365
+#: appGUI/MainGUI.py:1410
msgid "HUD (Heads up display)"
msgstr ""
-#: appGUI/MainGUI.py:1371 appGUI/preferences/general/GeneralAPPSetGroupUI.py:104
+#: appGUI/MainGUI.py:1416 appGUI/preferences/general/GeneralAPPSetGroupUI.py:104
msgid ""
"Draw a delimiting rectangle on canvas.\n"
"The purpose is to illustrate the limits for our work."
msgstr ""
-#: appGUI/MainGUI.py:1384
+#: appGUI/MainGUI.py:1429
msgid ""
"Relative measurement.\n"
"Reference is last click position"
msgstr ""
-#: appGUI/MainGUI.py:1392
+#: appGUI/MainGUI.py:1437
msgid ""
"Absolute measurement.\n"
"Reference is (X=0, Y= 0) position"
msgstr ""
-#: appGUI/MainGUI.py:1399
+#: appGUI/MainGUI.py:1444
msgid "TCL Shell"
msgstr ""
-#: appGUI/MainGUI.py:1472 appGUI/MainGUI.py:1480 appGUI/MainGUI.py:2808
-#: appGUI/MainGUI.py:2814 appMain.py:2974 appMain.py:10333
+#: appGUI/MainGUI.py:1518 appGUI/MainGUI.py:1526 appGUI/MainGUI.py:2859
+#: appGUI/MainGUI.py:2865 appMain.py:2977 appMain.py:10368
msgid "Plot Area"
msgstr ""
-#: appGUI/MainGUI.py:1557
+#: appGUI/MainGUI.py:1603
msgid "CNC-JOB"
msgstr ""
-#: appGUI/MainGUI.py:1567
+#: appGUI/MainGUI.py:1613
msgid "Engraving"
msgstr ""
-#: appGUI/MainGUI.py:1577
+#: appGUI/MainGUI.py:1623
msgid "Processing"
msgstr ""
-#: appGUI/MainGUI.py:1587
+#: appGUI/MainGUI.py:1633
msgid "Extra Plugins"
msgstr ""
-#: appGUI/MainGUI.py:1598
+#: appGUI/MainGUI.py:1644
msgid "UTILITIES"
msgstr ""
-#: appGUI/MainGUI.py:1616 appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:216
+#: appGUI/MainGUI.py:1662 appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:216
msgid "Restore Defaults"
msgstr ""
-#: appGUI/MainGUI.py:1620
+#: appGUI/MainGUI.py:1666
msgid ""
"Restore the entire set of default values\n"
"to the initial values loaded after first launch."
msgstr ""
-#: appGUI/MainGUI.py:1625
+#: appGUI/MainGUI.py:1671
msgid "Open Pref Folder"
msgstr ""
-#: appGUI/MainGUI.py:1629
+#: appGUI/MainGUI.py:1675
msgid "Open the folder where FlatCAM save the preferences files."
msgstr ""
-#: appGUI/MainGUI.py:1633 appGUI/MainGUI.py:2355
+#: appGUI/MainGUI.py:1679 appGUI/MainGUI.py:2405
msgid "Clear GUI Settings"
msgstr ""
-#: appGUI/MainGUI.py:1638
+#: appGUI/MainGUI.py:1684
msgid ""
"Clear the GUI settings for FlatCAM,\n"
"such as: layout, gui state, style etc."
msgstr ""
-#: appGUI/MainGUI.py:1654
+#: appGUI/MainGUI.py:1700
msgid "Apply the current preferences without saving to a file."
msgstr ""
-#: appGUI/MainGUI.py:1662
+#: appGUI/MainGUI.py:1708
msgid ""
"Save the current settings in the 'current_defaults' file\n"
"which is the file storing the working default preferences."
msgstr ""
-#: appGUI/MainGUI.py:1670
+#: appGUI/MainGUI.py:1716
msgid "Will not save the changes and will close the preferences window."
msgstr ""
-#: appGUI/MainGUI.py:1687
+#: appGUI/MainGUI.py:1733
msgid "Toggle Visibility"
msgstr ""
-#: appGUI/MainGUI.py:1714
+#: appGUI/MainGUI.py:1760
msgid "Grids"
msgstr ""
-#: appGUI/MainGUI.py:1769
-msgid "Rectangle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1772
-msgid "Circle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1776
-msgid "Arc"
-msgstr ""
-
-#: appGUI/MainGUI.py:1790
+#: appGUI/MainGUI.py:1838
msgid "Union"
msgstr ""
-#: appGUI/MainGUI.py:1792
+#: appGUI/MainGUI.py:1840
msgid "Intersection"
msgstr ""
-#: appGUI/MainGUI.py:1794
+#: appGUI/MainGUI.py:1842
msgid "Subtraction"
msgstr ""
-#: appGUI/MainGUI.py:1809
+#: appGUI/MainGUI.py:1857
msgid "Pad"
msgstr ""
-#: appGUI/MainGUI.py:1811
+#: appGUI/MainGUI.py:1859
msgid "Pad Array"
msgstr ""
-#: appGUI/MainGUI.py:1815
+#: appGUI/MainGUI.py:1863
msgid "Track"
msgstr ""
-#: appGUI/MainGUI.py:1817
+#: appGUI/MainGUI.py:1865
msgid "Region"
msgstr ""
-#: appGUI/MainGUI.py:1840
+#: appGUI/MainGUI.py:1888
msgid "Exc Editor"
msgstr ""
-#: appGUI/MainGUI.py:1868
+#: appGUI/MainGUI.py:1916
msgid "Move2Origin"
msgstr ""
-#: appGUI/MainGUI.py:1896
+#: appGUI/MainGUI.py:1945
msgid "Application units"
msgstr ""
-#: appGUI/MainGUI.py:1996
+#: appGUI/MainGUI.py:2046
msgid "Lock Toolbars"
msgstr ""
-#: appGUI/MainGUI.py:2252
+#: appGUI/MainGUI.py:2304
msgid "Detachable Tabs"
msgstr ""
-#: appGUI/MainGUI.py:2336
+#: appGUI/MainGUI.py:2388
msgid "FlatCAM Preferences Folder opened."
msgstr ""
-#: appGUI/MainGUI.py:2356
+#: appGUI/MainGUI.py:2406
msgid "Are you sure you want to delete the GUI Settings? \n"
msgstr ""
-#: appGUI/MainGUI.py:2363 appGUI/preferences/PreferencesUIManager.py:1077
-#: appGUI/preferences/PreferencesUIManager.py:1310 appTranslation.py:120
-#: appTranslation.py:226 appMain.py:2752 appMain.py:4020 appMain.py:6824
-#: appMain.py:10216 appMain.py:10346
+#: appGUI/MainGUI.py:2413 appGUI/preferences/PreferencesUIManager.py:1152
+#: appGUI/preferences/PreferencesUIManager.py:1392 appMain.py:2755 appMain.py:4036
+#: appMain.py:6841 appMain.py:10245 appMain.py:12043 appPlugins/ToolImage.py:172
+#: appTranslation.py:120 appTranslation.py:225
msgid "Yes"
msgstr ""
-#: appGUI/MainGUI.py:2364 appGUI/preferences/PreferencesUIManager.py:1311
-#: appTranslation.py:121 appTranslation.py:227 appMain.py:2753 appMain.py:4021
-#: appMain.py:6825 appMain.py:10217 appMain.py:10347
+#: appGUI/MainGUI.py:2414 appGUI/preferences/PreferencesUIManager.py:1393 appMain.py:2756
+#: appMain.py:4037 appMain.py:6842 appMain.py:10246 appMain.py:12044
+#: appPlugins/ToolImage.py:173 appTranslation.py:121 appTranslation.py:226
msgid "No"
msgstr ""
-#: appGUI/MainGUI.py:2616
+#: appGUI/MainGUI.py:2666
msgid "Copy Objects"
msgstr ""
-#: appGUI/MainGUI.py:2690
+#: appGUI/MainGUI.py:2740
msgid "Key Shortcut List"
msgstr ""
-#: appGUI/MainGUI.py:3409
+#: appGUI/MainGUI.py:3459
msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
+"Please first select a geometry item to be cut\n"
+"then select the geometry item that will be cut\n"
"out of the first item. In the end press ~X~ key or\n"
"the toolbar button."
msgstr ""
-#: appGUI/MainGUI.py:3415 appGUI/MainGUI.py:3577 appGUI/MainGUI.py:3626
-#: appGUI/MainGUI.py:3650
+#: appGUI/MainGUI.py:3465 appGUI/MainGUI.py:3652 appGUI/MainGUI.py:3702
+#: appGUI/MainGUI.py:3726
msgid "Warning"
msgstr ""
-#: appGUI/MainGUI.py:3573
+#: appGUI/MainGUI.py:3648
msgid ""
"Please select geometry items \n"
"on which to perform Intersection Tool."
msgstr ""
-#: appGUI/MainGUI.py:3622
+#: appGUI/MainGUI.py:3698
msgid ""
"Please select geometry items \n"
-"on which to perform Substraction Tool."
+"on which to perform Subtraction."
msgstr ""
-#: appGUI/MainGUI.py:3646
+#: appGUI/MainGUI.py:3722
msgid ""
"Please select geometry items \n"
"on which to perform union."
msgstr ""
-#: appGUI/MainGUI.py:4136 appPlugins/ToolIsolation.py:1008 appPlugins/ToolNCC.py:1382
-#: appPlugins/ToolPaint.py:672 appPlugins/ToolSolderPaste.py:344
-#: appPlugins/ToolSolderPaste.py:1284 appMain.py:5125
+#: appGUI/MainGUI.py:4250 appMain.py:5142 appPlugins/ToolIsolation.py:992
+#: appPlugins/ToolNCC.py:1363 appPlugins/ToolPaint.py:651 appPlugins/ToolSolderPaste.py:364
+#: appPlugins/ToolSolderPaste.py:1318
msgid "New Tool"
msgstr ""
-#: appGUI/MainGUI.py:4137 appPlugins/ToolIsolation.py:1009 appPlugins/ToolNCC.py:1383
-#: appPlugins/ToolPaint.py:673 appPlugins/ToolSolderPaste.py:345 appMain.py:5126
+#: appGUI/MainGUI.py:4251 appMain.py:5143 appPlugins/ToolIsolation.py:993
+#: appPlugins/ToolNCC.py:1364 appPlugins/ToolPaint.py:652 appPlugins/ToolSolderPaste.py:365
msgid "Enter a Tool Diameter"
msgstr ""
-#: appGUI/MainGUI.py:4149 appPlugins/ToolIsolation.py:1030 appPlugins/ToolNCC.py:1404
-#: appPlugins/ToolPaint.py:686 appPlugins/ToolSolderPaste.py:357 appMain.py:5142
+#: appGUI/MainGUI.py:4263 appMain.py:5159 appPlugins/ToolIsolation.py:1014
+#: appPlugins/ToolNCC.py:1385 appPlugins/ToolPaint.py:665 appPlugins/ToolSolderPaste.py:377
msgid "Adding Tool cancelled"
msgstr ""
-#: appGUI/MainGUI.py:4427 appMain.py:4005
+#: appGUI/MainGUI.py:4543 appMain.py:4022
msgid "Application is saving the project. Please wait ..."
msgstr ""
-#: appGUI/MainGUI.py:4463
+#: appGUI/MainGUI.py:4579
msgid "Shortcut Key List"
msgstr ""
-#: appGUI/MainGUI.py:4866
+#: appGUI/MainGUI.py:4982
msgid "General Shortcut list"
msgstr ""
-#: appGUI/MainGUI.py:4867
+#: appGUI/MainGUI.py:4983
msgid "SHOW SHORTCUT LIST"
msgstr ""
-#: appGUI/MainGUI.py:4868
+#: appGUI/MainGUI.py:4984
msgid "1"
msgstr ""
-#: appGUI/MainGUI.py:4868
+#: appGUI/MainGUI.py:4984
msgid "Switch to Project Tab"
msgstr ""
-#: appGUI/MainGUI.py:4869
+#: appGUI/MainGUI.py:4985
msgid "2"
msgstr ""
-#: appGUI/MainGUI.py:4869
+#: appGUI/MainGUI.py:4985
msgid "Switch to Selected Tab"
msgstr ""
-#: appGUI/MainGUI.py:4870
+#: appGUI/MainGUI.py:4986
msgid "3"
msgstr ""
-#: appGUI/MainGUI.py:4870
+#: appGUI/MainGUI.py:4986
msgid "Switch to Tool Tab"
msgstr ""
-#: appGUI/MainGUI.py:4871
+#: appGUI/MainGUI.py:4987
msgid "New Gerber"
msgstr ""
-#: appGUI/MainGUI.py:4872
+#: appGUI/MainGUI.py:4988
msgid "Edit Object (if selected)"
msgstr ""
-#: appGUI/MainGUI.py:4873 appMain.py:7218
+#: appGUI/MainGUI.py:4989 appMain.py:7238
msgid "Grid On/Off"
msgstr ""
-#: appGUI/MainGUI.py:4874
+#: appGUI/MainGUI.py:4990
msgid "Jump to Coordinates"
msgstr ""
-#: appGUI/MainGUI.py:4875
+#: appGUI/MainGUI.py:4991
msgid "New Excellon"
msgstr ""
-#: appGUI/MainGUI.py:4876
+#: appGUI/MainGUI.py:4992
msgid "Move Obj"
msgstr ""
-#: appGUI/MainGUI.py:4877
+#: appGUI/MainGUI.py:4993
msgid "New Geometry"
msgstr ""
-#: appGUI/MainGUI.py:4879
+#: appGUI/MainGUI.py:4995
msgid "Change Units"
msgstr ""
-#: appGUI/MainGUI.py:4880
+#: appGUI/MainGUI.py:4996
msgid "Open Properties Plugin"
msgstr ""
-#: appGUI/MainGUI.py:4881
+#: appGUI/MainGUI.py:4997
msgid "Rotate by 90 degree CW"
msgstr ""
-#: appGUI/MainGUI.py:4882
+#: appGUI/MainGUI.py:4998
msgid "Shell Toggle"
msgstr ""
-#: appGUI/MainGUI.py:4883
+#: appGUI/MainGUI.py:4999
msgid "Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
msgstr ""
-#: appGUI/MainGUI.py:4885
+#: appGUI/MainGUI.py:5001
msgid "Flip on X_axis"
msgstr ""
-#: appGUI/MainGUI.py:4886
+#: appGUI/MainGUI.py:5002
msgid "Flip on Y_axis"
msgstr ""
-#: appGUI/MainGUI.py:4892
+#: appGUI/MainGUI.py:5008
msgid "Copy Obj"
msgstr ""
-#: appGUI/MainGUI.py:4893
+#: appGUI/MainGUI.py:5009
msgid "Open Tools Database"
msgstr ""
-#: appGUI/MainGUI.py:4894
+#: appGUI/MainGUI.py:5010
msgid "Open Excellon File"
msgstr ""
-#: appGUI/MainGUI.py:4895
+#: appGUI/MainGUI.py:5011
msgid "Open Gerber File"
msgstr ""
-#: appGUI/MainGUI.py:4896 appGUI/MainGUI.py:5161
+#: appGUI/MainGUI.py:5012 appGUI/MainGUI.py:5277
msgid "Ctrl+M"
msgstr ""
-#: appGUI/MainGUI.py:4900
+#: appGUI/MainGUI.py:5016
msgid "Ctrl+Q"
msgstr ""
-#: appGUI/MainGUI.py:4900 appPlugins/ToolPDF.py:44
+#: appGUI/MainGUI.py:5016 appPlugins/ToolPDF.py:26
msgid "PDF Import Tool"
msgstr ""
-#: appGUI/MainGUI.py:4905
+#: appGUI/MainGUI.py:5021
msgid "Toggle the axis"
msgstr ""
-#: appGUI/MainGUI.py:4906
+#: appGUI/MainGUI.py:5022
msgid "Shift+C"
msgstr ""
-#: appGUI/MainGUI.py:4906
+#: appGUI/MainGUI.py:5022
msgid "Copy Obj_Name"
msgstr ""
-#: appGUI/MainGUI.py:4911 appGUI/MainGUI.py:5155 appGUI/MainGUI.py:5266
-#: appGUI/MainGUI.py:5412
+#: appGUI/MainGUI.py:5027 appGUI/MainGUI.py:5271 appGUI/MainGUI.py:5382
+#: appGUI/MainGUI.py:5528
msgid "Shift+M"
msgstr ""
-#: appGUI/MainGUI.py:4911 appGUI/MainGUI.py:5155 appGUI/MainGUI.py:5266
-#: appGUI/MainGUI.py:5412
+#: appGUI/MainGUI.py:5027 appGUI/MainGUI.py:5271 appGUI/MainGUI.py:5382
+#: appGUI/MainGUI.py:5528
msgid "Distance Minimum Tool"
msgstr ""
-#: appGUI/MainGUI.py:4912
+#: appGUI/MainGUI.py:5028
msgid "Open Preferences Window"
msgstr ""
-#: appGUI/MainGUI.py:4913
+#: appGUI/MainGUI.py:5029
msgid "Shift+R"
msgstr ""
-#: appGUI/MainGUI.py:4913
+#: appGUI/MainGUI.py:5029
msgid "Rotate by 90 degree CCW"
msgstr ""
-#: appGUI/MainGUI.py:4914
+#: appGUI/MainGUI.py:5030
msgid "Run a Script"
msgstr ""
-#: appGUI/MainGUI.py:4915
+#: appGUI/MainGUI.py:5031
msgid "Toggle the workspace"
msgstr ""
-#: appGUI/MainGUI.py:4921
+#: appGUI/MainGUI.py:5037
msgid "Alt+B"
msgstr ""
-#: appGUI/MainGUI.py:4922
+#: appGUI/MainGUI.py:5038
msgid "Alt+C"
msgstr ""
-#: appGUI/MainGUI.py:4923
+#: appGUI/MainGUI.py:5039
msgid "Alt+D"
msgstr ""
-#: appGUI/MainGUI.py:4923
+#: appGUI/MainGUI.py:5039
msgid "2-Sided PCB"
msgstr ""
-#: appGUI/MainGUI.py:4924
+#: appGUI/MainGUI.py:5040
msgid "Alt+E"
msgstr ""
-#: appGUI/MainGUI.py:4925
+#: appGUI/MainGUI.py:5041
msgid "Alt+F"
msgstr ""
-#: appGUI/MainGUI.py:4925 appPlugins/ToolFiducials.py:139 appPlugins/ToolFiducials.py:807
+#: appGUI/MainGUI.py:5041 appPlugins/ToolFiducials.py:129 appPlugins/ToolFiducials.py:894
msgid "Fiducials"
msgstr ""
-#: appGUI/MainGUI.py:4926
+#: appGUI/MainGUI.py:5042
msgid "Alt+G"
msgstr ""
-#: appGUI/MainGUI.py:4926 appPlugins/ToolInvertGerber.py:104
-#: appPlugins/ToolInvertGerber.py:207 appPlugins/ToolInvertGerber.py:302
+#: appGUI/MainGUI.py:5042 appPlugins/ToolInvertGerber.py:91
+#: appPlugins/ToolInvertGerber.py:194 appPlugins/ToolInvertGerber.py:289
msgid "Invert Gerber"
msgstr ""
-#: appGUI/MainGUI.py:4927
+#: appGUI/MainGUI.py:5043
msgid "Alt+H"
msgstr ""
-#: appGUI/MainGUI.py:4928
+#: appGUI/MainGUI.py:5044
msgid "Alt+I"
msgstr ""
-#: appGUI/MainGUI.py:4929
+#: appGUI/MainGUI.py:5045
msgid "Alt+J"
msgstr ""
-#: appGUI/MainGUI.py:4930
+#: appGUI/MainGUI.py:5046
msgid "Alt+K"
msgstr ""
-#: appGUI/MainGUI.py:4930
+#: appGUI/MainGUI.py:5046
msgid "Solder Paste Dispensing"
msgstr ""
-#: appGUI/MainGUI.py:4931
+#: appGUI/MainGUI.py:5047
msgid "Alt+L"
msgstr ""
-#: appGUI/MainGUI.py:4931
+#: appGUI/MainGUI.py:5047
msgid "Film PCB"
msgstr ""
-#: appGUI/MainGUI.py:4932
+#: appGUI/MainGUI.py:5048
msgid "Alt+M"
msgstr ""
-#: appGUI/MainGUI.py:4933 appPlugins/ToolNCC.py:2290 appPlugins/ToolNCC.py:2292
-#: appPlugins/ToolNCC.py:2882 appPlugins/ToolNCC.py:2884
+#: appGUI/MainGUI.py:5049 appPlugins/ToolNCC.py:2263 appPlugins/ToolNCC.py:2265
+#: appPlugins/ToolNCC.py:2855 appPlugins/ToolNCC.py:2857
msgid "Non-Copper Clearing"
msgstr ""
-#: appGUI/MainGUI.py:4934
+#: appGUI/MainGUI.py:5050
msgid "Alt+O"
msgstr ""
-#: appGUI/MainGUI.py:4934 appPlugins/ToolIsolation.py:3457 appPlugins/ToolNCC.py:4246
+#: appGUI/MainGUI.py:5050 appPlugins/ToolIsolation.py:3503 appPlugins/ToolNCC.py:4219
msgid "Optimal"
msgstr ""
-#: appGUI/MainGUI.py:4935
+#: appGUI/MainGUI.py:5051
msgid "Alt+P"
msgstr ""
-#: appGUI/MainGUI.py:4935
+#: appGUI/MainGUI.py:5051
msgid "Paint Area"
msgstr ""
-#: appGUI/MainGUI.py:4936
+#: appGUI/MainGUI.py:5052
msgid "Alt+Q"
msgstr ""
-#: appGUI/MainGUI.py:4936 appPlugins/ToolQRCode.py:130 appPlugins/ToolQRCode.py:720
+#: appGUI/MainGUI.py:5052 appPlugins/ToolQRCode.py:112 appPlugins/ToolQRCode.py:708
msgid "QRCode"
msgstr ""
-#: appGUI/MainGUI.py:4937
+#: appGUI/MainGUI.py:5053
msgid "Rules Check"
msgstr ""
-#: appGUI/MainGUI.py:4938
+#: appGUI/MainGUI.py:5054
msgid "View File Source"
msgstr ""
-#: appGUI/MainGUI.py:4939
+#: appGUI/MainGUI.py:5055
msgid "Alt+T"
msgstr ""
-#: appGUI/MainGUI.py:4940
+#: appGUI/MainGUI.py:5056
msgid "Alt+W"
msgstr ""
-#: appGUI/MainGUI.py:4940 appPlugins/ToolSub.py:165 appPlugins/ToolSub.py:775
+#: appGUI/MainGUI.py:5056 appPlugins/ToolSub.py:151 appPlugins/ToolSub.py:764
msgid "Subtract"
msgstr ""
-#: appGUI/MainGUI.py:4941 appGUI/MainGUI.py:5159
+#: appGUI/MainGUI.py:5057 appGUI/MainGUI.py:5275
msgid "Alt+X"
msgstr ""
-#: appGUI/MainGUI.py:4941
+#: appGUI/MainGUI.py:5057
msgid "Cutout PCB"
msgstr ""
-#: appGUI/MainGUI.py:4942
+#: appGUI/MainGUI.py:5058
msgid "Alt+Z"
msgstr ""
-#: appGUI/MainGUI.py:4942 appPlugins/ToolPanelize.py:36
+#: appGUI/MainGUI.py:5058 appPlugins/ToolPanelize.py:20
msgid "Panelize PCB"
msgstr ""
-#: appGUI/MainGUI.py:4945
+#: appGUI/MainGUI.py:5061
msgid "Enable Non-selected Objects"
msgstr ""
-#: appGUI/MainGUI.py:4946
+#: appGUI/MainGUI.py:5062
msgid "Disable Non-selected Objects"
msgstr ""
-#: appGUI/MainGUI.py:4947
+#: appGUI/MainGUI.py:5063
msgid "Toggle Full Screen"
msgstr ""
-#: appGUI/MainGUI.py:4950
+#: appGUI/MainGUI.py:5066
msgid "Ctrl+Alt+X"
msgstr ""
-#: appGUI/MainGUI.py:4950
+#: appGUI/MainGUI.py:5066
msgid "Abort current task (gracefully)"
msgstr ""
-#: appGUI/MainGUI.py:4954
+#: appGUI/MainGUI.py:5070
msgid "Ctrl+Shift+V"
msgstr ""
-#: appGUI/MainGUI.py:4954
+#: appGUI/MainGUI.py:5070
msgid "Paste Special. Will convert a Windows path style to the one required in Tcl Shell"
msgstr ""
-#: appGUI/MainGUI.py:4958
+#: appGUI/MainGUI.py:5074
msgid "Open Online Manual"
msgstr ""
-#: appGUI/MainGUI.py:4959
+#: appGUI/MainGUI.py:5075
msgid "F2"
msgstr ""
-#: appGUI/MainGUI.py:4959
+#: appGUI/MainGUI.py:5075
msgid "Rename Objects"
msgstr ""
-#: appGUI/MainGUI.py:4960
+#: appGUI/MainGUI.py:5076
msgid "Open Online Tutorials"
msgstr ""
-#: appGUI/MainGUI.py:4961
+#: appGUI/MainGUI.py:5077
msgid "Refresh Plots"
msgstr ""
-#: appGUI/MainGUI.py:4962 appPlugins/ToolSolderPaste.py:1707
+#: appGUI/MainGUI.py:5078 appPlugins/ToolSolderPaste.py:1776
msgid "Delete Object"
msgstr ""
-#: appGUI/MainGUI.py:4963 appGUI/MainGUI.py:5268
+#: appGUI/MainGUI.py:5079 appGUI/MainGUI.py:5384
msgid "Alternate: Delete Tool"
msgstr ""
-#: appGUI/MainGUI.py:4964
+#: appGUI/MainGUI.py:5080
msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
msgstr ""
-#: appGUI/MainGUI.py:4965 appGUI/MainGUI.py:5164 appGUI/MainGUI.py:5270
-#: appGUI/MainGUI.py:5411
+#: appGUI/MainGUI.py:5081 appGUI/MainGUI.py:5280 appGUI/MainGUI.py:5386
+#: appGUI/MainGUI.py:5527
msgid "Space"
msgstr ""
-#: appGUI/MainGUI.py:4965
+#: appGUI/MainGUI.py:5081
msgid "En(Dis)able Obj Plot"
msgstr ""
-#: appGUI/MainGUI.py:4966 appGUI/MainGUI.py:5166 appGUI/MainGUI.py:5269
-#: appGUI/MainGUI.py:5410
+#: appGUI/MainGUI.py:5082 appGUI/MainGUI.py:5282 appGUI/MainGUI.py:5385
+#: appGUI/MainGUI.py:5526
msgid "Esc"
msgstr ""
-#: appGUI/MainGUI.py:4966
+#: appGUI/MainGUI.py:5082
msgid "Deselects all objects"
msgstr ""
-#: appGUI/MainGUI.py:4980
+#: appGUI/MainGUI.py:5096
msgid "Editor Shortcut list"
msgstr ""
-#: appGUI/MainGUI.py:5135
+#: appGUI/MainGUI.py:5251
msgid "GEOMETRY EDITOR"
msgstr ""
-#: appGUI/MainGUI.py:5136
+#: appGUI/MainGUI.py:5252
msgid "Draw an Arc"
msgstr ""
-#: appGUI/MainGUI.py:5138
+#: appGUI/MainGUI.py:5253 appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:215
+msgid "Buffer Tool"
+msgstr ""
+
+#: appGUI/MainGUI.py:5254
msgid "Copy Geo Item"
msgstr ""
-#: appGUI/MainGUI.py:5139
+#: appGUI/MainGUI.py:5255
msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
msgstr ""
-#: appGUI/MainGUI.py:5140
+#: appGUI/MainGUI.py:5256
msgid "Polygon Intersection Tool"
msgstr ""
-#: appGUI/MainGUI.py:5141
+#: appGUI/MainGUI.py:5257
msgid "Geo Paint Tool"
msgstr ""
-#: appGUI/MainGUI.py:5142 appGUI/MainGUI.py:5260 appGUI/MainGUI.py:5400
+#: appGUI/MainGUI.py:5258 appGUI/MainGUI.py:5376 appGUI/MainGUI.py:5516
msgid "Jump to Location (x, y)"
msgstr ""
-#: appGUI/MainGUI.py:5144
+#: appGUI/MainGUI.py:5260
msgid "Move Geo Item"
msgstr ""
-#: appGUI/MainGUI.py:5145
+#: appGUI/MainGUI.py:5261
msgid "Within Add Arc will cycle through the ARC modes"
msgstr ""
-#: appGUI/MainGUI.py:5146
+#: appGUI/MainGUI.py:5262
msgid "Draw a Polygon"
msgstr ""
-#: appGUI/MainGUI.py:5147
+#: appGUI/MainGUI.py:5263
msgid "Draw a Circle"
msgstr ""
-#: appGUI/MainGUI.py:5148
+#: appGUI/MainGUI.py:5264
msgid "Draw a Path"
msgstr ""
-#: appGUI/MainGUI.py:5149
+#: appGUI/MainGUI.py:5265
msgid "Draw Rectangle"
msgstr ""
-#: appGUI/MainGUI.py:5150
+#: appGUI/MainGUI.py:5266
msgid "Polygon Subtraction Tool"
msgstr ""
-#: appGUI/MainGUI.py:5151
+#: appGUI/MainGUI.py:5267
msgid "Add Text Tool"
msgstr ""
-#: appGUI/MainGUI.py:5152
+#: appGUI/MainGUI.py:5268
msgid "Polygon Union Tool"
msgstr ""
-#: appGUI/MainGUI.py:5153
+#: appGUI/MainGUI.py:5269
msgid "Flip shape on X axis"
msgstr ""
-#: appGUI/MainGUI.py:5154
+#: appGUI/MainGUI.py:5270
msgid "Flip shape on Y axis"
msgstr ""
-#: appGUI/MainGUI.py:5156
+#: appGUI/MainGUI.py:5272
msgid "Skew shape on X axis"
msgstr ""
-#: appGUI/MainGUI.py:5157
+#: appGUI/MainGUI.py:5273
msgid "Skew shape on Y axis"
msgstr ""
-#: appGUI/MainGUI.py:5158
+#: appGUI/MainGUI.py:5274
msgid "Editor Transformation Tool"
msgstr ""
-#: appGUI/MainGUI.py:5159
+#: appGUI/MainGUI.py:5275
msgid "Offset shape on X axis"
msgstr ""
-#: appGUI/MainGUI.py:5160
+#: appGUI/MainGUI.py:5276
msgid "Alt+Y"
msgstr ""
-#: appGUI/MainGUI.py:5160
+#: appGUI/MainGUI.py:5276
msgid "Offset shape on Y axis"
msgstr ""
-#: appGUI/MainGUI.py:5162 appGUI/MainGUI.py:5271 appGUI/MainGUI.py:5414
+#: appGUI/MainGUI.py:5278 appGUI/MainGUI.py:5387 appGUI/MainGUI.py:5530
msgid "Save Object and Exit Editor"
msgstr ""
-#: appGUI/MainGUI.py:5163
+#: appGUI/MainGUI.py:5279
msgid "Polygon Cut Tool"
msgstr ""
-#: appGUI/MainGUI.py:5164
+#: appGUI/MainGUI.py:5280
msgid "Rotate Geometry"
msgstr ""
-#: appGUI/MainGUI.py:5165
+#: appGUI/MainGUI.py:5281
msgid "ENTER"
msgstr ""
-#: appGUI/MainGUI.py:5165
+#: appGUI/MainGUI.py:5281
msgid "Finish drawing for certain tools"
msgstr ""
-#: appGUI/MainGUI.py:5166 appGUI/MainGUI.py:5269 appGUI/MainGUI.py:5410
+#: appGUI/MainGUI.py:5282 appGUI/MainGUI.py:5385 appGUI/MainGUI.py:5526
msgid "Abort and return to Select"
msgstr ""
-#: appGUI/MainGUI.py:5256
+#: appGUI/MainGUI.py:5372
msgid "EXCELLON EDITOR"
msgstr ""
-#: appGUI/MainGUI.py:5264
+#: appGUI/MainGUI.py:5380
msgid "Add a new Tool"
msgstr ""
-#: appGUI/MainGUI.py:5270
+#: appGUI/MainGUI.py:5386
msgid "Toggle Slot direction"
msgstr ""
-#: appGUI/MainGUI.py:5272
+#: appGUI/MainGUI.py:5388
msgid "Ctrl+Space"
msgstr ""
-#: appGUI/MainGUI.py:5272 appGUI/MainGUI.py:5411
+#: appGUI/MainGUI.py:5388 appGUI/MainGUI.py:5527
msgid "Toggle array direction"
msgstr ""
-#: appGUI/MainGUI.py:5394
+#: appGUI/MainGUI.py:5510
msgid "GERBER EDITOR"
msgstr ""
-#: appGUI/MainGUI.py:5404
+#: appGUI/MainGUI.py:5520
msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
msgstr ""
-#: appGUI/MainGUI.py:5407
+#: appGUI/MainGUI.py:5523
msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
msgstr ""
-#: appGUI/MainGUI.py:5409
+#: appGUI/MainGUI.py:5525
msgid "Alternate: Delete Apertures"
msgstr ""
-#: appGUI/MainGUI.py:5413
+#: appGUI/MainGUI.py:5529
msgid "Eraser Tool"
msgstr ""
-#: appGUI/MainGUI.py:5415 appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:265
+#: appGUI/MainGUI.py:5531 appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:265
msgid "Mark Area Tool"
msgstr ""
-#: appGUI/MainGUI.py:5416
+#: appGUI/MainGUI.py:5532
msgid "Poligonize Tool"
msgstr ""
-#: appGUI/MainGUI.py:5417
+#: appGUI/MainGUI.py:5533
msgid "Transformation Tool"
msgstr ""
@@ -6212,7 +6560,7 @@ msgstr ""
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:50
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137
-#: appPlugins/ToolCopperThieving.py:1449
+#: appPlugins/ToolCopperThieving.py:1431
msgid "Solid"
msgstr ""
@@ -6239,14 +6587,14 @@ msgid "Plot"
msgstr ""
#: appGUI/ObjectUI.py:230 appGUI/ObjectUI.py:712 appGUI/ObjectUI.py:1057
-#: appGUI/ObjectUI.py:1472 appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:38
+#: appGUI/ObjectUI.py:1479 appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:38
#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:41
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 appPlugins/ToolMilling.py:4043
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 appPlugins/ToolMilling.py:4010
msgid "Plot (show) this object."
msgstr ""
#: appGUI/ObjectUI.py:238 appGUI/ObjectUI.py:447
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:37 appPlugins/ToolFollow.py:779
+#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:37 appPlugins/ToolFollow.py:763
msgid ""
"Generate a 'Follow' geometry.\n"
"This means that it will cut through\n"
@@ -6269,7 +6617,7 @@ msgid "Show the Object Attributes."
msgstr ""
#: appGUI/ObjectUI.py:288 appGUI/ObjectUI.py:695 appGUI/ObjectUI.py:1025
-#: appGUI/ObjectUI.py:1438
+#: appGUI/ObjectUI.py:1445
msgid "Tools/apertures in the loaded object."
msgstr ""
@@ -6290,15 +6638,15 @@ msgid ""
"that are drawn on canvas."
msgstr ""
-#: appGUI/ObjectUI.py:350 appPlugins/ToolExtract.py:1090 appPlugins/ToolPunchGerber.py:2120
+#: appGUI/ObjectUI.py:350 appPlugins/ToolExtract.py:1120 appPlugins/ToolPunchGerber.py:2133
msgid "Mark the aperture instances on canvas."
msgstr ""
-#: appGUI/ObjectUI.py:357 appPlugins/ToolIsolation.py:3933
+#: appGUI/ObjectUI.py:357 appPlugins/ToolIsolation.py:3995
msgid "Buffer Solid Geometry"
msgstr ""
-#: appGUI/ObjectUI.py:359 appPlugins/ToolIsolation.py:3935
+#: appGUI/ObjectUI.py:359 appPlugins/ToolIsolation.py:3997
msgid ""
"This button is shown only when the Gerber file\n"
"is loaded without buffering.\n"
@@ -6311,7 +6659,7 @@ msgid "Isolation Routing"
msgstr ""
#: appGUI/ObjectUI.py:388 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:27
-#: appPlugins/ToolIsolation.py:3327
+#: appPlugins/ToolIsolation.py:3373
msgid ""
"Create a Geometry object with\n"
"toolpaths to cut around polygons."
@@ -6323,18 +6671,18 @@ msgid ""
"the board cutout."
msgstr ""
-#: appGUI/ObjectUI.py:418 appPlugins/ToolFilm.py:1257
+#: appGUI/ObjectUI.py:418 appPlugins/ToolFilm.py:1249
msgid "Create a positive/negative film for UV exposure."
msgstr ""
-#: appGUI/ObjectUI.py:432 appGUI/ObjectUI.py:1143 appPlugins/ToolNCC.py:4629
+#: appGUI/ObjectUI.py:432 appGUI/ObjectUI.py:1143 appPlugins/ToolNCC.py:4602
msgid ""
"Create the Geometry Object\n"
"for non-copper routing."
msgstr ""
#: appGUI/ObjectUI.py:460 appGUI/ObjectUI.py:823 appGUI/ObjectUI.py:1160
-#: appPlugins/ToolEtchCompensation.py:348
+#: appPlugins/ToolEtchCompensation.py:334
msgid "Utilities"
msgstr ""
@@ -6370,19 +6718,19 @@ msgid ""
msgstr ""
#: appGUI/ObjectUI.py:521 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:64
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:226 appPlugins/ToolFilm.py:1564
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211 appPlugins/ToolFilm.py:1541
msgid "Resulting geometry will have rounded corners."
msgstr ""
-#: appGUI/ObjectUI.py:524 appGUI/ObjectUI.py:569 appPlugins/ToolCutOut.py:2694
-#: appPlugins/ToolFollow.py:771 appPlugins/ToolIsolation.py:3912 appPlugins/ToolNCC.py:4626
-#: appPlugins/ToolPaint.py:3367 appPlugins/ToolSolderPaste.py:1592
+#: appGUI/ObjectUI.py:524 appGUI/ObjectUI.py:569 appPlugins/ToolCutOut.py:2676
+#: appPlugins/ToolFollow.py:755 appPlugins/ToolIsolation.py:3974 appPlugins/ToolNCC.py:4599
+#: appPlugins/ToolPaint.py:3348 appPlugins/ToolSolderPaste.py:1661
msgid "Generate Geometry"
msgstr ""
#: appGUI/ObjectUI.py:533 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:71
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:134 appPlugins/ToolPanelize.py:1245
-#: appPlugins/ToolQRCode.py:907
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:134 appPlugins/ToolPanelize.py:1229
+#: appPlugins/ToolQRCode.py:895
msgid "Bounding Box"
msgstr ""
@@ -6418,7 +6766,7 @@ msgstr ""
msgid "Solid circles."
msgstr ""
-#: appGUI/ObjectUI.py:745 appPlugins/ToolDrilling.py:2472 appPlugins/ToolMilling.py:4067
+#: appGUI/ObjectUI.py:745 appPlugins/ToolDrilling.py:2452 appPlugins/ToolMilling.py:4034
msgid ""
"This is the Tool Number.\n"
"When ToolChange is checked, on toolchange event this value\n"
@@ -6427,21 +6775,21 @@ msgid ""
"Here the tools are selected for G-code generation."
msgstr ""
-#: appGUI/ObjectUI.py:750 appGUI/ObjectUI.py:1080 appPlugins/ToolDrilling.py:2477
-#: appPlugins/ToolIsolation.py:3405 appPlugins/ToolMilling.py:4072
-#: appPlugins/ToolMilling.py:4190 appPlugins/ToolNCC.py:4175 appPlugins/ToolPaint.py:3051
+#: appGUI/ObjectUI.py:750 appGUI/ObjectUI.py:1080 appPlugins/ToolDrilling.py:2457
+#: appPlugins/ToolIsolation.py:3451 appPlugins/ToolMilling.py:4039
+#: appPlugins/ToolMilling.py:4157 appPlugins/ToolNCC.py:4148 appPlugins/ToolPaint.py:3032
msgid ""
"Tool Diameter. Its value\n"
"is the cut width into the material."
msgstr ""
-#: appGUI/ObjectUI.py:753 appPlugins/ToolDrilling.py:2480 appPlugins/ToolMilling.py:4075
+#: appGUI/ObjectUI.py:753 appPlugins/ToolDrilling.py:2460 appPlugins/ToolMilling.py:4042
msgid ""
"The number of Drill holes. Holes that are drilled with\n"
"a drill bit."
msgstr ""
-#: appGUI/ObjectUI.py:756 appPlugins/ToolDrilling.py:2483 appPlugins/ToolMilling.py:4078
+#: appGUI/ObjectUI.py:756 appPlugins/ToolDrilling.py:2463 appPlugins/ToolMilling.py:4045
msgid ""
"The number of Slot holes. Holes that are created by\n"
"milling them with an endmill bit."
@@ -6487,7 +6835,7 @@ msgid ""
msgstr ""
#: appGUI/ObjectUI.py:861 appGUI/preferences/tools/ToolsMillPrefGroupUI.py:598
-#: appPlugins/ToolMilling.py:4336
+#: appPlugins/ToolMilling.py:4303
msgid "Milling Diameter"
msgstr ""
@@ -6535,14 +6883,14 @@ msgid ""
"showed UI form entries named V-Tip Dia and V-Tip Angle."
msgstr ""
-#: appGUI/ObjectUI.py:1055 appGUI/ObjectUI.py:1470
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:37 appPlugins/ToolMilling.py:4042
+#: appGUI/ObjectUI.py:1055 appGUI/ObjectUI.py:1477
+#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:37 appPlugins/ToolMilling.py:4009
msgid "Plot Object"
msgstr ""
-#: appGUI/ObjectUI.py:1068 appGUI/ObjectUI.py:1483 appGUI/ObjectUI.py:1493
+#: appGUI/ObjectUI.py:1068 appGUI/ObjectUI.py:1490 appGUI/ObjectUI.py:1500
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:156
-#: appPlugins/ToolCopperThieving.py:1474 appPlugins/ToolMilling.py:4179
+#: appPlugins/ToolCopperThieving.py:1456 appPlugins/ToolMilling.py:4146
msgid "Dia"
msgstr ""
@@ -6579,7 +6927,7 @@ msgid ""
"whole area of a polygon."
msgstr ""
-#: appGUI/ObjectUI.py:1198 appObjects/FlatCAMObj.py:745
+#: appGUI/ObjectUI.py:1198 appObjects/AppObjectTemplate.py:745
msgid "Points"
msgstr ""
@@ -6587,8 +6935,8 @@ msgstr ""
msgid "Total of vertex points in the geometry."
msgstr ""
-#: appGUI/ObjectUI.py:1208 appPlugins/ToolCalculators.py:660
-#: appPlugins/ToolCalculators.py:848 appPlugins/ToolCalculators.py:1041
+#: appGUI/ObjectUI.py:1208 appPlugins/ToolCalculators.py:654
+#: appPlugins/ToolCalculators.py:1038
msgid "Calculate"
msgstr ""
@@ -6612,52 +6960,52 @@ msgstr ""
msgid "Travel"
msgstr ""
-#: appGUI/ObjectUI.py:1382 appObjects/FlatCAMObj.py:929 appPlugins/ToolReport.py:594
+#: appGUI/ObjectUI.py:1390 appObjects/AppObjectTemplate.py:929 appPlugins/ToolReport.py:581
msgid "Travelled distance"
msgstr ""
-#: appGUI/ObjectUI.py:1384
+#: appGUI/ObjectUI.py:1392
msgid ""
"This is the total travelled distance on X-Y plane.\n"
"In current units."
msgstr ""
-#: appGUI/ObjectUI.py:1395
+#: appGUI/ObjectUI.py:1403
msgid "Estimated time"
msgstr ""
-#: appGUI/ObjectUI.py:1397
+#: appGUI/ObjectUI.py:1405
msgid ""
"This is the estimated time to do the routing/drilling,\n"
"without the time spent in ToolChange events."
msgstr ""
-#: appGUI/ObjectUI.py:1418
+#: appGUI/ObjectUI.py:1425
msgid "Use CNC Code Snippets"
msgstr ""
-#: appGUI/ObjectUI.py:1420
+#: appGUI/ObjectUI.py:1427
msgid ""
"When selected, it will include CNC Code snippets (append and prepend)\n"
"defined in the Preferences."
msgstr ""
-#: appGUI/ObjectUI.py:1426 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:68
+#: appGUI/ObjectUI.py:1433 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:68
msgid "Display Annotation"
msgstr ""
-#: appGUI/ObjectUI.py:1428 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:70
+#: appGUI/ObjectUI.py:1435 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:70
msgid ""
"This selects if to display text annotation on the plot.\n"
"When checked it will display numbers in order for each end\n"
"of a travel line."
msgstr ""
-#: appGUI/ObjectUI.py:1452
+#: appGUI/ObjectUI.py:1459
msgid "CNC Tools Table"
msgstr ""
-#: appGUI/ObjectUI.py:1455
+#: appGUI/ObjectUI.py:1462
msgid ""
"Tools in this CNCJob object used for cutting.\n"
"The tool diameter is used for plotting on canvas.\n"
@@ -6670,169 +7018,161 @@ msgid ""
"ball(B), or V-Shaped(V)."
msgstr ""
-#: appGUI/ObjectUI.py:1504
+#: appGUI/ObjectUI.py:1511
msgid "Update Plot"
msgstr ""
-#: appGUI/ObjectUI.py:1506
+#: appGUI/ObjectUI.py:1513
msgid "Update the plot."
msgstr ""
-#: appGUI/ObjectUI.py:1520 appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:27
-#: appPlugins/ToolLevelling.py:1763
+#: appGUI/ObjectUI.py:1527 appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:27
+#: appPlugins/ToolLevelling.py:1744
msgid "Generate CNC Code with auto-levelled paths."
msgstr ""
-#: appGUI/ObjectUI.py:1547
+#: appGUI/ObjectUI.py:1554
msgid "Opens dialog to save CNC Code file."
msgstr ""
-#: appGUI/ObjectUI.py:1553 appPlugins/ToolSolderPaste.py:1678
+#: appGUI/ObjectUI.py:1561 appPlugins/ToolSolderPaste.py:1747
msgid "Review CNC Code."
msgstr ""
-#: appGUI/ObjectUI.py:1587
+#: appGUI/ObjectUI.py:1595
msgid "Script Object"
msgstr ""
-#: appGUI/ObjectUI.py:1607 appGUI/ObjectUI.py:1681
+#: appGUI/ObjectUI.py:1615 appGUI/ObjectUI.py:1689
msgid "Auto Completer"
msgstr ""
-#: appGUI/ObjectUI.py:1609
+#: appGUI/ObjectUI.py:1617
msgid "This selects if the auto completer is enabled in the Script Editor."
msgstr ""
-#: appGUI/ObjectUI.py:1654
+#: appGUI/ObjectUI.py:1662
msgid "Document Object"
msgstr ""
-#: appGUI/ObjectUI.py:1683
+#: appGUI/ObjectUI.py:1691
msgid "This selects if the auto completer is enabled in the Document Editor."
msgstr ""
-#: appGUI/ObjectUI.py:1701
+#: appGUI/ObjectUI.py:1709
msgid "Font Type"
msgstr ""
-#: appGUI/ObjectUI.py:1719 appGUI/preferences/general/GeneralAPPSetGroupUI.py:194
+#: appGUI/ObjectUI.py:1727 appGUI/preferences/general/GeneralAPPSetGroupUI.py:194
msgid "Font Size"
msgstr ""
-#: appGUI/ObjectUI.py:1755
+#: appGUI/ObjectUI.py:1763
msgid "Alignment"
msgstr ""
-#: appGUI/ObjectUI.py:1760
+#: appGUI/ObjectUI.py:1768
msgid "Align Left"
msgstr ""
-#: appGUI/ObjectUI.py:1765 appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:164
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:101 appPlugins/ToolFilm.py:1409
-#: appPlugins/ToolFilm.py:1485 appPlugins/ToolMarkers.py:1283 appMain.py:5545
-#: appMain.py:5779
-msgid "Center"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1770
+#: appGUI/ObjectUI.py:1778
msgid "Align Right"
msgstr ""
-#: appGUI/ObjectUI.py:1775
+#: appGUI/ObjectUI.py:1783
msgid "Justify"
msgstr ""
-#: appGUI/ObjectUI.py:1785
+#: appGUI/ObjectUI.py:1793
msgid "Font Color"
msgstr ""
-#: appGUI/ObjectUI.py:1787
+#: appGUI/ObjectUI.py:1795
msgid "Set the font color for the selected text"
msgstr ""
-#: appGUI/ObjectUI.py:1804
+#: appGUI/ObjectUI.py:1812
msgid "Selection Color"
msgstr ""
-#: appGUI/ObjectUI.py:1806
+#: appGUI/ObjectUI.py:1814
msgid "Set the selection color when doing text selection."
msgstr ""
-#: appGUI/ObjectUI.py:1823
+#: appGUI/ObjectUI.py:1831
msgid "Tab Size"
msgstr ""
-#: appGUI/ObjectUI.py:1825
+#: appGUI/ObjectUI.py:1833
msgid "Set the tab size. In pixels. Default value is 80 pixels."
msgstr ""
-#: appGUI/PlotCanvas.py:244 appGUI/PlotCanvasLegacy.py:396
+#: appGUI/PlotCanvas.py:254 appGUI/PlotCanvasLegacy.py:409
msgid "Axis enabled."
msgstr ""
-#: appGUI/PlotCanvas.py:252 appGUI/PlotCanvasLegacy.py:405
+#: appGUI/PlotCanvas.py:262 appGUI/PlotCanvasLegacy.py:418
msgid "Axis disabled."
msgstr ""
-#: appGUI/PlotCanvas.py:290 appGUI/PlotCanvasLegacy.py:426
+#: appGUI/PlotCanvas.py:300 appGUI/PlotCanvasLegacy.py:439
msgid "HUD enabled."
msgstr ""
-#: appGUI/PlotCanvas.py:299 appGUI/PlotCanvasLegacy.py:433
+#: appGUI/PlotCanvas.py:309 appGUI/PlotCanvasLegacy.py:446
msgid "HUD disabled."
msgstr ""
-#: appGUI/PlotCanvas.py:395 appGUI/PlotCanvasLegacy.py:535
+#: appGUI/PlotCanvas.py:410 appGUI/PlotCanvasLegacy.py:548
msgid "Grid enabled."
msgstr ""
-#: appGUI/PlotCanvas.py:402 appGUI/PlotCanvasLegacy.py:545
+#: appGUI/PlotCanvas.py:417 appGUI/PlotCanvasLegacy.py:558
msgid "Grid disabled."
msgstr ""
-#: appGUI/PlotCanvasLegacy.py:1619
+#: appGUI/PlotCanvasLegacy.py:1661
msgid ""
"Could not annotate due of a difference between the number of text elements and the number "
"of text positions."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1049
+#: appGUI/preferences/PreferencesUIManager.py:1118
msgid "Preferences applied."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1069
+#: appGUI/preferences/PreferencesUIManager.py:1144
msgid "Application will restart"
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1070
+#: appGUI/preferences/PreferencesUIManager.py:1145
msgid "Are you sure you want to continue?"
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1159
+#: appGUI/preferences/PreferencesUIManager.py:1241
msgid "Preferences default values are restored."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1191 appMain.py:3134 appMain.py:10960
+#: appGUI/preferences/PreferencesUIManager.py:1273 appMain.py:3137 appMain.py:10982
msgid "Failed to write defaults to file."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1195
-#: appGUI/preferences/PreferencesUIManager.py:1319
+#: appGUI/preferences/PreferencesUIManager.py:1277
+#: appGUI/preferences/PreferencesUIManager.py:1401
msgid "Preferences saved."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1248
+#: appGUI/preferences/PreferencesUIManager.py:1330
msgid "Preferences edited but not saved."
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1302
+#: appGUI/preferences/PreferencesUIManager.py:1384
msgid ""
"One or more values are changed.\n"
"Do you want to save?"
msgstr ""
-#: appGUI/preferences/PreferencesUIManager.py:1344
+#: appGUI/preferences/PreferencesUIManager.py:1426
msgid "Preferences closed without saving."
msgstr ""
@@ -6941,9 +7281,9 @@ msgid ""
msgstr ""
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:96
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:155 appObjects/FlatCAMObj.py:896
-#: appPlugins/ToolLevelling.py:2224 appPlugins/ToolReport.py:561
-#: appPlugins/ToolSolderPaste.py:1435
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:155 appObjects/AppObjectTemplate.py:896
+#: appPlugins/ToolLevelling.py:2205 appPlugins/ToolReport.py:548
+#: appPlugins/ToolSolderPaste.py:1484
msgid "Feedrate"
msgstr ""
@@ -6990,12 +7330,12 @@ msgstr ""
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:154
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:203
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:304
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:162
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:203
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:170
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:211
#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:151
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:234
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:242 appPlugins/ToolRulesCheck.py:1386
-#: appPlugins/ToolRulesCheck.py:1401
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:242 appPlugins/ToolRulesCheck.py:1371
+#: appPlugins/ToolRulesCheck.py:1386
msgid "Outline"
msgstr ""
@@ -7006,11 +7346,11 @@ msgstr ""
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:164
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:213
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:314
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:171
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:213
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:179
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:221
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:254
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:128
-#: appPlugins/ToolCopperThieving.py:1440
+#: appPlugins/ToolCopperThieving.py:1422
msgid "Fill"
msgstr ""
@@ -7026,8 +7366,8 @@ msgstr ""
#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:176
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:326
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:184
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:226
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:192
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:234
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:266
msgid "Alpha"
msgstr ""
@@ -7119,18 +7459,18 @@ msgstr ""
msgid "Table Show/Hide"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:28
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:27
msgid "A list of Excellon Editor parameters."
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:39
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:38
#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:40
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:42
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:169
msgid "Selection limit"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:41
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
msgid ""
"Set the number of selected Excellon geometry\n"
"items above which the utility geometry\n"
@@ -7139,52 +7479,56 @@ msgid ""
"large number of geometric elements."
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:54
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:53
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:115
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:116
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:118
msgid "New Dia"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:67
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:66
msgid "Nr of drills"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:82
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
+msgid "Specify how many drills to be in the array."
+msgstr ""
+
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:81
msgid "Linear Drill Array"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:262
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:91
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:261
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:132
msgid "Linear Direction"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
msgid "Circular Drill Array"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:147
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:319
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:146
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:318
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:186
msgid "Circular Direction"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:160
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:332
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:159
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:331
#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:199
msgid "Circular Angle"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:239
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:238
msgid "Linear Slot Array"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:249
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
msgid "Nr of slots"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:309
+#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:308
msgid "Circular Slot Array"
msgstr ""
@@ -7203,8 +7547,8 @@ msgstr ""
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:187
#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:31
#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:35
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:96 appPlugins/ToolPcbWizard.py:498
-#: appPlugins/ToolReport.py:182
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:96 appPlugins/ToolPcbWizard.py:487
+#: appPlugins/ToolReport.py:169
msgid "Units"
msgstr ""
@@ -7216,8 +7560,8 @@ msgstr ""
#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:45
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:197
#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:40
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:101 appPlugins/ToolPcbWizard.py:496
-#: appPlugins/ToolReport.py:368 appPlugins/ToolReport.py:372 appPlugins/ToolReport.py:374
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:101 appPlugins/ToolPcbWizard.py:485
+#: appPlugins/ToolReport.py:355 appPlugins/ToolReport.py:359 appPlugins/ToolReport.py:361
msgid "Inch"
msgstr ""
@@ -7293,14 +7637,14 @@ msgstr ""
#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:126
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182
#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:101
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:121 appPlugins/ToolPcbWizard.py:481
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:121 appPlugins/ToolPcbWizard.py:470
msgid "LZ"
msgstr ""
#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183
#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:102
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:122 appPlugins/ToolPcbWizard.py:482
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:122 appPlugins/ToolPcbWizard.py:471
msgid "TZ"
msgstr ""
@@ -7341,7 +7685,7 @@ msgstr ""
msgid "M-Color"
msgstr ""
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:80 appPlugins/ToolPcbWizard.py:454
+#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:80 appPlugins/ToolPcbWizard.py:443
msgid "Excellon Format"
msgstr ""
@@ -7417,7 +7761,7 @@ msgstr ""
#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:223
#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:72
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:107 appPlugins/ToolPanelize.py:1373
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:107 appPlugins/ToolPanelize.py:1357
msgid "Path Optimization"
msgstr ""
@@ -7551,7 +7895,7 @@ msgstr ""
msgid "Grid Settings"
msgstr ""
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:51 appMain.py:8625
+#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:51 appMain.py:8653
msgid "X value"
msgstr ""
@@ -7559,7 +7903,7 @@ msgstr ""
msgid "This is the Grid snap value on X axis."
msgstr ""
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:63 appMain.py:8628
+#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:63 appMain.py:8656
msgid "Y value"
msgstr ""
@@ -7590,7 +7934,7 @@ msgid "Orientation"
msgstr ""
#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:179
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:306 appPlugins/ToolFilm.py:1708
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:291 appPlugins/ToolFilm.py:1685
msgid ""
"Can be:\n"
"- Portrait\n"
@@ -7599,15 +7943,15 @@ msgstr ""
#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:183
#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:165
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:310 appPlugins/ToolFilm.py:1712
-#: appMain.py:8645
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:295 appMain.py:8673
+#: appPlugins/ToolFilm.py:1689
msgid "Portrait"
msgstr ""
#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:184
#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:166
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:311 appPlugins/ToolFilm.py:1713
-#: appMain.py:8647
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:296 appMain.py:8675
+#: appPlugins/ToolFilm.py:1690
msgid "Landscape"
msgstr ""
@@ -7623,8 +7967,8 @@ msgid ""
msgstr ""
#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:225
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:286 appPlugins/ToolDblSided.py:882
-#: appPlugins/ToolFilm.py:1523 appMain.py:8633
+#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:286 appMain.py:8661
+#: appPlugins/ToolDblSided.py:868 appPlugins/ToolFilm.py:1500
msgid "Axis"
msgstr ""
@@ -7642,7 +7986,7 @@ msgid ""
"elements that are used in the application."
msgstr ""
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:264 appMain.py:8650
+#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:264 appMain.py:8678
msgid "HUD"
msgstr ""
@@ -7825,7 +8169,7 @@ msgid ""
"the application is started."
msgstr ""
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:45 appPlugins/ToolCalculators.py:551
+#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:45 appPlugins/ToolCalculators.py:544
msgid "inch"
msgstr ""
@@ -7865,10 +8209,6 @@ msgid ""
"use the Legacy(2D) mode."
msgstr ""
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid "2D"
-msgstr ""
-
#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:100
msgid "3D"
msgstr ""
@@ -8122,61 +8462,77 @@ msgid ""
"It will theme the plot area."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:45
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:46
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:132
+#: appPlugins/ToolFiducials.py:1161 appPlugins/ToolMarkers.py:1457
+msgid "Auto"
+msgstr ""
+
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:47
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:284
msgid "Light"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:46
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:48
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:316
msgid "Dark"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid "Use Gray Icons"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:55
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
+"The theme can be:\n"
+"Default: Default theme\n"
+"Auto: Matches mode from OS\n"
+"Light: Light mode\n"
+"Dark: Dark mode"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:59
+msgid "Dark Canvas"
+msgstr ""
+
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:61
+msgid ""
+"Check this box to force the use of dark canvas\n"
+"even if a dark theme is not selected."
+msgstr ""
+
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:83
msgid "Layout"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:77
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:85
msgid ""
"Select a layout for the application.\n"
"It is applied immediately."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:105
msgid "Style"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:99
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:107
msgid ""
"Select a style for the application.\n"
"It will be applied at the next app start."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:114
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:122
msgid "Hover Shape"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:116
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:124
msgid ""
"Enable display of a hover shape for the application objects.\n"
"It is displayed whenever the mouse cursor is hovering\n"
"over any kind of not-selected object."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:123
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:131
msgid "Selection Shape"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:125
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:133
msgid ""
"Enable the display of a selection shape for the application objects.\n"
"It is displayed whenever the mouse selects an object\n"
@@ -8184,11 +8540,11 @@ msgid ""
"right to left."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:133
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:141
msgid "GUI Layout"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:135
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:143
msgid ""
"Select a GUI layout for the Preferences.\n"
"Can be:\n"
@@ -8197,30 +8553,31 @@ msgid ""
"that columns are preferentially showed in columns"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:142
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:350
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:150
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:364
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:338
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:302
msgid "Normal"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:142
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:150
msgid "Columnar"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:149
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:157 appPlugins/ToolImage.py:809
+#: appPlugins/ToolImage.py:820
msgid "Colors"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:159
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:167
msgid "Left-Right Selection Color"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:164
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:172
msgid "Set the line color for the 'left to right' selection box."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:173
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:181
msgid ""
"Set the fill color for the selection box\n"
"in case that the selection is done from left to right.\n"
@@ -8228,19 +8585,19 @@ msgid ""
"digits are for alpha (transparency) level."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:186
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:194
msgid "Set the fill transparency for the 'left to right' selection box."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:199
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:207
msgid "Right-Left Selection Color"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:205
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:213
msgid "Set the line color for the 'right to left' selection box."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:215
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:223
msgid ""
"Set the fill color for the selection box\n"
"in case that the selection is done from right to left.\n"
@@ -8248,53 +8605,63 @@ msgid ""
"digits are for alpha (transparency) level."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:228
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:236
msgid "Set the fill transparency for selection 'right to left' box."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:244
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:252
msgid "Editor Color"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:248
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:256
msgid "Drawing"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:250
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:258
msgid "Set the color for the shape."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:260
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:268
msgid "Set the color of the shape when selected."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:276
-msgid "Project Items Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:280
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:288
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:320
msgid "Enabled"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:282
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:322
msgid "Set the color of the items in Project Tab Tree."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:289
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:290
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:302
+msgid "Light Theme."
+msgstr ""
+
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:297
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:329
msgid "Disabled"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:291
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:300
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:332
msgid ""
"Set the color of the items in Project Tab Tree,\n"
"for the case when the items are disabled."
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:302
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:322
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:334
+msgid "Dark Theme."
+msgstr ""
+
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:345
msgid "Project AutoHide"
msgstr ""
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:304
+#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:347
msgid ""
"Check this box if you want the project/selected/tool tab area to\n"
"hide automatically when there are no objects loaded and\n"
@@ -8302,12 +8669,12 @@ msgid ""
msgstr ""
#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:42
-#: appPlugins/ToolMilling.py:4941
+#: appPlugins/ToolMilling.py:4908
msgid "Segment X size"
msgstr ""
#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:44
-#: appPlugins/ToolMilling.py:4943
+#: appPlugins/ToolMilling.py:4910
msgid ""
"The size of the trace segment on the X axis.\n"
"Useful for auto-leveling.\n"
@@ -8315,12 +8682,12 @@ msgid ""
msgstr ""
#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58
-#: appPlugins/ToolMilling.py:4958
+#: appPlugins/ToolMilling.py:4925
msgid "Segment Y size"
msgstr ""
#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:60
-#: appPlugins/ToolMilling.py:4960
+#: appPlugins/ToolMilling.py:4927
msgid ""
"The size of the trace segment on the Y axis.\n"
"Useful for auto-leveling.\n"
@@ -8349,9 +8716,9 @@ msgstr ""
#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:40
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:70
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:86 appPlugins/ToolCutOut.py:2419
-#: appPlugins/ToolIsolation.py:3610 appPlugins/ToolMilling.py:1985
-#: appPlugins/ToolMilling.py:4585
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:86 appPlugins/ToolCutOut.py:2401
+#: appPlugins/ToolIsolation.py:3656 appPlugins/ToolMilling.py:1959
+#: appPlugins/ToolMilling.py:4552
msgid ""
"Cutting depth (negative)\n"
"below the copper surface."
@@ -8371,12 +8738,13 @@ msgstr ""
#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:63
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:345
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:72 appObjects/FlatCAMObj.py:818
-#: appObjects/FlatCAMObj.py:821 appObjects/FlatCAMObj.py:824 appObjects/FlatCAMObj.py:854
-#: appObjects/FlatCAMObj.py:861 appObjects/FlatCAMObj.py:864
-#: appPlugins/ToolCopperThieving.py:1764 appPlugins/ToolFiducials.py:1007
-#: appPlugins/ToolReport.py:483 appPlugins/ToolReport.py:486 appPlugins/ToolReport.py:489
-#: appPlugins/ToolReport.py:519 appPlugins/ToolReport.py:526 appPlugins/ToolReport.py:529
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:72
+#: appObjects/AppObjectTemplate.py:818 appObjects/AppObjectTemplate.py:821
+#: appObjects/AppObjectTemplate.py:824 appObjects/AppObjectTemplate.py:854
+#: appObjects/AppObjectTemplate.py:861 appObjects/AppObjectTemplate.py:864
+#: appPlugins/ToolCopperThieving.py:1744 appPlugins/ToolFiducials.py:1096
+#: appPlugins/ToolReport.py:470 appPlugins/ToolReport.py:473 appPlugins/ToolReport.py:476
+#: appPlugins/ToolReport.py:506 appPlugins/ToolReport.py:513 appPlugins/ToolReport.py:516
msgid "None"
msgstr ""
@@ -8614,8 +8982,8 @@ msgid "Delete the last layers."
msgstr ""
#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:446
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:507 appObjects/AppObject.py:323
-#: appMain.py:9167 appMain.py:9216 appMain.py:9225
+#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:507 appMain.py:9195 appMain.py:9244
+#: appMain.py:9253 appObjects/AppObject.py:323
msgid "Layer"
msgstr ""
@@ -8641,8 +9009,8 @@ msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:55
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:326
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:268
-#: appPlugins/ToolCopperThieving.py:1328 appPlugins/ToolCopperThieving.py:1717
-#: appPlugins/ToolExtract.py:1321
+#: appPlugins/ToolCopperThieving.py:1310 appPlugins/ToolCopperThieving.py:1697
+#: appPlugins/ToolExtract.py:1352
msgid "Clearance"
msgstr ""
@@ -8654,17 +9022,17 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85
-#: appPlugins/ToolCopperThieving.py:1359
+#: appPlugins/ToolCopperThieving.py:1341
msgid "Thieving areas with area less then this value will not be added."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:97
-#: appPlugins/ToolCopperThieving.py:1380
+#: appPlugins/ToolCopperThieving.py:1362
msgid "Reference:"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99
-#: appPlugins/ToolCopperThieving.py:1382
+#: appPlugins/ToolCopperThieving.py:1364
msgid ""
"- 'Itself' - the copper thieving extent is based on the object extent.\n"
"- 'Area Selection' - left mouse click to start selection of the area to be filled.\n"
@@ -8673,26 +9041,26 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:308 appPlugins/ToolCopperThieving.py:1387
-#: appPlugins/ToolNCC.py:4559
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:308 appPlugins/ToolCopperThieving.py:1369
+#: appPlugins/ToolNCC.py:4532
msgid "Itself"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:309
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:323
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:308
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279
-#: appPlugins/ToolCopperThieving.py:1387 appPlugins/ToolFollow.py:751
-#: appPlugins/ToolIsolation.py:3832 appPlugins/ToolNCC.py:4559 appPlugins/ToolPaint.py:3316
+#: appPlugins/ToolCopperThieving.py:1369 appPlugins/ToolFollow.py:735
+#: appPlugins/ToolIsolation.py:3894 appPlugins/ToolNCC.py:4532 appPlugins/ToolPaint.py:3297
msgid "Area Selection"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:309
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:323
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:308
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279
-#: appPlugins/ToolCopperThieving.py:1387 appPlugins/ToolIsolation.py:3832
-#: appPlugins/ToolNCC.py:4559 appPlugins/ToolPaint.py:3316
+#: appPlugins/ToolCopperThieving.py:1369 appPlugins/ToolIsolation.py:3894
+#: appPlugins/ToolNCC.py:4532 appPlugins/ToolPaint.py:3297
msgid "Reference Object"
msgstr ""
@@ -8701,32 +9069,32 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:201
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:67
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:198
-#: appPlugins/ToolCopperThieving.py:1425 appPlugins/ToolCutOut.py:425
-#: appPlugins/ToolExtract.py:1057 appPlugins/ToolExtract.py:1206
-#: appPlugins/ToolPunchGerber.py:2087 appPlugins/ToolPunchGerber.py:2258
+#: appPlugins/ToolCopperThieving.py:1407 appPlugins/ToolCutOut.py:407
+#: appPlugins/ToolExtract.py:1087 appPlugins/ToolExtract.py:1237
+#: appPlugins/ToolPunchGerber.py:2100 appPlugins/ToolPunchGerber.py:2271
msgid "Rectangular"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:112
-#: appPlugins/ToolCopperThieving.py:1426
+#: appPlugins/ToolCopperThieving.py:1408
msgid "Minimal"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114
-#: appPlugins/ToolCopperThieving.py:1419 appPlugins/ToolFilm.py:1317
-#: appPlugins/ToolPanelize.py:1257
+#: appPlugins/ToolCopperThieving.py:1401 appPlugins/ToolFilm.py:1309
+#: appPlugins/ToolPanelize.py:1241
msgid "Box Type"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:116
-#: appPlugins/ToolCopperThieving.py:1421
+#: appPlugins/ToolCopperThieving.py:1403
msgid ""
"- 'Rectangular' - the bounding box will be of rectangular shape.\n"
"- 'Minimal' - the bounding box will be the convex hull shape."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:130
-#: appPlugins/ToolCopperThieving.py:1442
+#: appPlugins/ToolCopperThieving.py:1424
msgid ""
"- 'Solid' - copper thieving will be a solid polygon.\n"
"- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n"
@@ -8735,252 +9103,160 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137
-#: appPlugins/ToolCopperThieving.py:1449
+#: appPlugins/ToolCopperThieving.py:1431
msgid "Dots Grid"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137
-#: appPlugins/ToolCopperThieving.py:1449
+#: appPlugins/ToolCopperThieving.py:1431
msgid "Squares Grid"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137
-#: appPlugins/ToolCopperThieving.py:1449
+#: appPlugins/ToolCopperThieving.py:1431
msgid "Lines Grid"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:145
-#: appPlugins/ToolCopperThieving.py:1470
+#: appPlugins/ToolCopperThieving.py:1452
msgid "Dots Grid Parameters"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:158
-#: appPlugins/ToolCopperThieving.py:1476
+#: appPlugins/ToolCopperThieving.py:1458
msgid "Dot diameter in Dots Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:171
-#: appPlugins/ToolCopperThieving.py:1489
+#: appPlugins/ToolCopperThieving.py:1471
msgid "Distance between each two dots in Dots Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:184
-#: appPlugins/ToolCopperThieving.py:1516
+#: appPlugins/ToolCopperThieving.py:1498
msgid "Squares Grid Parameters"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:197
-#: appPlugins/ToolCopperThieving.py:1522
+#: appPlugins/ToolCopperThieving.py:1504
msgid "Square side size in Squares Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:210
-#: appPlugins/ToolCopperThieving.py:1535
+#: appPlugins/ToolCopperThieving.py:1517
msgid "Distance between each two squares in Squares Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: appPlugins/ToolCopperThieving.py:1562
+#: appPlugins/ToolCopperThieving.py:1544
msgid "Lines Grid Parameters"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236
-#: appPlugins/ToolCopperThieving.py:1568
+#: appPlugins/ToolCopperThieving.py:1550
msgid "Line thickness size in Lines Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:249
-#: appPlugins/ToolCopperThieving.py:1581
+#: appPlugins/ToolCopperThieving.py:1563
msgid "Distance between each two lines in Lines Grid."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:262
-#: appPlugins/ToolCopperThieving.py:1612
+#: appPlugins/ToolCopperThieving.py:1593
msgid "Robber Bar Parameters"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:264
-#: appPlugins/ToolCopperThieving.py:1614
+#: appPlugins/ToolCopperThieving.py:1595
msgid ""
"Parameters used for the robber bar.\n"
"Robber bar = copper border to help in pattern hole plating."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:279
-#: appPlugins/ToolCopperThieving.py:1634
+#: appPlugins/ToolCopperThieving.py:1615
msgid "Bounding box margin for robber bar."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:311
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:54
-#: appPlugins/ToolCopperThieving.py:1645 appPlugins/ToolExtract.py:1381
-#: appPlugins/ToolMarkers.py:1234
+#: appPlugins/ToolCopperThieving.py:1626 appPlugins/ToolExtract.py:1412
+#: appPlugins/ToolMarkers.py:1308
msgid "Thickness"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:292
-#: appPlugins/ToolCopperThieving.py:1647
+#: appPlugins/ToolCopperThieving.py:1628
msgid "The robber bar thickness."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:305
-#: appPlugins/ToolCopperThieving.py:1680
+#: appPlugins/ToolCopperThieving.py:1660
msgid "Pattern Plating Mask"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:307
-#: appPlugins/ToolCopperThieving.py:1682
+#: appPlugins/ToolCopperThieving.py:1662
msgid "Generate a mask for pattern plating."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:319
-#: appPlugins/ToolCopperThieving.py:1710
+#: appPlugins/ToolCopperThieving.py:1690
msgid "Only Pads"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:321
-#: appPlugins/ToolCopperThieving.py:1712
+#: appPlugins/ToolCopperThieving.py:1692
msgid "Select only pads in case the selected object is a copper Gerber."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:328
-#: appPlugins/ToolCopperThieving.py:1719
+#: appPlugins/ToolCopperThieving.py:1699
msgid ""
"The distance between the possible copper thieving elements\n"
"and/or robber bar and the actual openings in the mask."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:342
-#: appPlugins/ToolCopperThieving.py:1755
+#: appPlugins/ToolCopperThieving.py:1735
msgid "Choose which additional geometry to include, if available."
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:345
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:183
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:168
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:589
-#: appPlugins/ToolCopperThieving.py:1764 appPlugins/ToolFilm.py:1521
-#: appPlugins/ToolMilling.py:4327
+#: appPlugins/ToolCopperThieving.py:1744 appPlugins/ToolFilm.py:1498
+#: appPlugins/ToolMilling.py:4294
msgid "Both"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:345
-#: appPlugins/ToolCopperThieving.py:549 appPlugins/ToolCopperThieving.py:553
-#: appPlugins/ToolCopperThieving.py:615 appPlugins/ToolCopperThieving.py:1317
-#: appPlugins/ToolCopperThieving.py:1764
+#: appPlugins/ToolCopperThieving.py:532 appPlugins/ToolCopperThieving.py:536
+#: appPlugins/ToolCopperThieving.py:598 appPlugins/ToolCopperThieving.py:1299
+#: appPlugins/ToolCopperThieving.py:1744
msgid "Thieving"
msgstr ""
#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:345
-#: appPlugins/ToolCopperThieving.py:1764
+#: appPlugins/ToolCopperThieving.py:1744
msgid "Robber bar"
msgstr ""
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:21
-msgid "Calibration Plugin"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:30
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:29
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:29
-#: appPlugins/ToolCopperThieving.py:1318 appPlugins/ToolEtchCompensation.py:407
-#: appPlugins/ToolFiducials.py:964 appPlugins/ToolMarkers.py:1210
-#: appPlugins/ToolObjectDistance.py:462 appPlugins/ToolOptimal.py:526
-#: appPlugins/ToolSolderPaste.py:1322
-msgid "Parameters used for this tool."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:42 appPlugins/ToolCalibration.py:901
-msgid "Source Type"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:43 appPlugins/ToolCalibration.py:902
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:48 appPlugins/ToolCalibration.py:907
-msgid "Free"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:62 appPlugins/ToolCalibration.py:796
-msgid "Height (Z) for travelling between the points."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:74 appPlugins/ToolCalibration.py:808
-msgid "Verification Z"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:76 appPlugins/ToolCalibration.py:810
-msgid "Height (Z) for checking the point."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:88 appPlugins/ToolCalibration.py:822
-msgid "Zero Z tool"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:90 appPlugins/ToolCalibration.py:824
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:97 appPlugins/ToolCalibration.py:873
-msgid "Second point"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:99 appPlugins/ToolCalibration.py:875
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:103
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 appPlugins/ToolCalibration.py:879
-#: appPlugins/ToolFilm.py:1409 appPlugins/ToolMarkers.py:1338
-msgid "Top Left"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:104
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 appPlugins/ToolCalibration.py:880
-#: appPlugins/ToolFilm.py:1409 appPlugins/ToolMarkers.py:1350
-msgid "Bottom Right"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:113
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:107
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:142 appPlugins/ToolSolderPaste.py:1400
-msgid "Tool change"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:125 appPlugins/ToolCalibration.py:847
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:138 appPlugins/ToolCalibration.py:833
-msgid "Height (Z) for mounting the verification probe."
-msgstr ""
-
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:20
msgid "Extract Drills Options"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:27
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-#: appPlugins/ToolExtract.py:1000 appPlugins/ToolPunchGerber.py:2034
+#: appPlugins/ToolExtract.py:1030 appPlugins/ToolPunchGerber.py:2047
msgid "Processed Pads Type"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:29
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:29
-#: appPlugins/ToolExtract.py:1002 appPlugins/ToolPunchGerber.py:2036
+#: appPlugins/ToolExtract.py:1032 appPlugins/ToolPunchGerber.py:2049
msgid ""
"The type of pads shape to be processed.\n"
"If the PCB has many SMD pads with rectangular pads,\n"
@@ -8989,7 +9265,7 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:45
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:45
-#: appPlugins/ToolExtract.py:1035 appPlugins/ToolPunchGerber.py:2065
+#: appPlugins/ToolExtract.py:1065 appPlugins/ToolPunchGerber.py:2078
msgid "Process Circular Pads."
msgstr ""
@@ -8997,42 +9273,42 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:175
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:51
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:172
-#: appPlugins/ToolExtract.py:1041 appPlugins/ToolExtract.py:1180
-#: appPlugins/ToolPunchGerber.py:2071 appPlugins/ToolPunchGerber.py:2232
+#: appPlugins/ToolExtract.py:1071 appPlugins/ToolExtract.py:1211
+#: appPlugins/ToolPunchGerber.py:2084 appPlugins/ToolPunchGerber.py:2245
msgid "Oblong"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:53
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:53
-#: appPlugins/ToolExtract.py:1043 appPlugins/ToolPunchGerber.py:2073
+#: appPlugins/ToolExtract.py:1073 appPlugins/ToolPunchGerber.py:2086
msgid "Process Oblong Pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:61
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:61
-#: appPlugins/ToolExtract.py:1051 appPlugins/ToolPunchGerber.py:2081
+#: appPlugins/ToolExtract.py:1081 appPlugins/ToolPunchGerber.py:2094
msgid "Process Square Pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:69
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:69
-#: appPlugins/ToolExtract.py:1059 appPlugins/ToolPunchGerber.py:2089
+#: appPlugins/ToolExtract.py:1089 appPlugins/ToolPunchGerber.py:2102
msgid "Process Rectangular Pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:75
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:214
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:75
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:211 appObjects/FlatCAMObj.py:562
-#: appPlugins/ToolExtract.py:1065 appPlugins/ToolExtract.py:1219
-#: appPlugins/ToolPunchGerber.py:2095 appPlugins/ToolPunchGerber.py:2271
-#: appPlugins/ToolReport.py:200
+#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:211
+#: appObjects/AppObjectTemplate.py:562 appPlugins/ToolExtract.py:1095
+#: appPlugins/ToolExtract.py:1250 appPlugins/ToolPunchGerber.py:2108
+#: appPlugins/ToolPunchGerber.py:2284 appPlugins/ToolReport.py:187
msgid "Others"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:77
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:77
-#: appPlugins/ToolExtract.py:1067 appPlugins/ToolPunchGerber.py:2097
+#: appPlugins/ToolExtract.py:1097 appPlugins/ToolPunchGerber.py:2110
msgid "Process pads not in the categories above."
msgstr ""
@@ -9040,8 +9316,8 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:122
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:119
-#: appPlugins/ToolExtract.py:1127 appPlugins/ToolExtract.py:1243
-#: appPlugins/ToolPunchGerber.py:2150 appPlugins/ToolPunchGerber.py:2178
+#: appPlugins/ToolExtract.py:1158 appPlugins/ToolExtract.py:1274
+#: appPlugins/ToolPunchGerber.py:2163 appPlugins/ToolPunchGerber.py:2191
msgid "Fixed Diameter"
msgstr ""
@@ -9049,18 +9325,18 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:147
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: appPlugins/ToolExtract.py:1129 appPlugins/ToolExtract.py:1158
-#: appPlugins/ToolPunchGerber.py:2152 appPlugins/ToolPunchGerber.py:2206
+#: appPlugins/ToolExtract.py:1160 appPlugins/ToolExtract.py:1189
+#: appPlugins/ToolPunchGerber.py:2165 appPlugins/ToolPunchGerber.py:2219
msgid "Fixed Annular Ring"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:100
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: appPlugins/ToolExtract.py:1128 appPlugins/ToolPunchGerber.py:2151
+#: appPlugins/ToolExtract.py:1159 appPlugins/ToolPunchGerber.py:2164
msgid "Proportional"
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:106 appPlugins/ToolExtract.py:1118
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:106 appPlugins/ToolExtract.py:1149
msgid ""
"The method for processing pads. Can be:\n"
"- Fixed Diameter -> all holes will have a set size\n"
@@ -9070,13 +9346,13 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:138
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: appPlugins/ToolExtract.py:1253 appPlugins/ToolPunchGerber.py:2188
+#: appPlugins/ToolExtract.py:1284 appPlugins/ToolPunchGerber.py:2201
msgid "Fixed hole diameter."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:149
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:146
-#: appPlugins/ToolExtract.py:1160 appPlugins/ToolPunchGerber.py:2208
+#: appPlugins/ToolExtract.py:1191 appPlugins/ToolPunchGerber.py:2221
msgid ""
"The size of annular ring.\n"
"The copper sliver between the hole exterior\n"
@@ -9085,83 +9361,83 @@ msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:164
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:161
-#: appPlugins/ToolExtract.py:1169 appPlugins/ToolPunchGerber.py:2221
+#: appPlugins/ToolExtract.py:1200 appPlugins/ToolPunchGerber.py:2234
msgid "The size of annular ring for circular pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:177
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:174
-#: appPlugins/ToolExtract.py:1182 appPlugins/ToolPunchGerber.py:2234
+#: appPlugins/ToolExtract.py:1213 appPlugins/ToolPunchGerber.py:2247
msgid "The size of annular ring for oblong pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:190
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:187
-#: appPlugins/ToolExtract.py:1195 appPlugins/ToolPunchGerber.py:2247
+#: appPlugins/ToolExtract.py:1226 appPlugins/ToolPunchGerber.py:2260
msgid "The size of annular ring for square pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:203
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:200
-#: appPlugins/ToolExtract.py:1208 appPlugins/ToolPunchGerber.py:2260
+#: appPlugins/ToolExtract.py:1239 appPlugins/ToolPunchGerber.py:2273
msgid "The size of annular ring for rectangular pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:216
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:213
-#: appPlugins/ToolExtract.py:1221 appPlugins/ToolPunchGerber.py:2273
+#: appPlugins/ToolExtract.py:1252 appPlugins/ToolPunchGerber.py:2286
msgid "The size of annular ring for other pads."
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:229
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: appPlugins/ToolExtract.py:1271 appPlugins/ToolPunchGerber.py:2285
+#: appPlugins/ToolExtract.py:1302 appPlugins/ToolPunchGerber.py:2298
msgid "Proportional Diameter"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:244
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:241
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:68
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:133 appPlugins/ToolFilm.py:1376
-#: appPlugins/ToolFilm.py:1452
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:63
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:123 appPlugins/ToolFilm.py:1363
+#: appPlugins/ToolFilm.py:1434
msgid "Factor"
msgstr ""
#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:246
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:243
-#: appPlugins/ToolExtract.py:1282 appPlugins/ToolPunchGerber.py:2296
+#: appPlugins/ToolExtract.py:1313 appPlugins/ToolPunchGerber.py:2309
msgid ""
"Proportional Diameter.\n"
"The hole diameter will be a fraction of the pad size."
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:256 appPlugins/ToolExtract.py:1309
-#: appPlugins/ToolExtract.py:1337
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:256 appPlugins/ToolExtract.py:1340
+#: appPlugins/ToolExtract.py:1368
msgid "Extract Soldermask"
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:258 appPlugins/ToolExtract.py:1311
-#: appPlugins/ToolExtract.py:1340
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:258 appPlugins/ToolExtract.py:1342
+#: appPlugins/ToolExtract.py:1371
msgid "Extract soldermask from a given Gerber file."
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:270 appPlugins/ToolExtract.py:1323
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:270 appPlugins/ToolExtract.py:1354
msgid ""
"This set how much the soldermask extends\n"
"beyond the margin of the pads."
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:284 appPlugins/ToolExtract.py:1354
-#: appPlugins/ToolExtract.py:1399
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:284 appPlugins/ToolExtract.py:1385
+#: appPlugins/ToolExtract.py:1430
msgid "Extract Cutout"
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:286 appPlugins/ToolExtract.py:1356
-#: appPlugins/ToolExtract.py:1402
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:286 appPlugins/ToolExtract.py:1387
+#: appPlugins/ToolExtract.py:1433
msgid "Extract a cutout from a given Gerber file."
msgstr ""
-#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:313 appPlugins/ToolExtract.py:1383
+#: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:313 appPlugins/ToolExtract.py:1414
msgid "The thickness of the line that makes the cutout geometry."
msgstr ""
@@ -9169,7 +9445,17 @@ msgstr ""
msgid "Fiducials Plugin"
msgstr ""
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:42 appPlugins/ToolFiducials.py:977
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:29
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:29
+#: appPlugins/ToolCopperThieving.py:1300 appPlugins/ToolEtchCompensation.py:393
+#: appPlugins/ToolFiducials.py:1053 appPlugins/ToolMarkers.py:1284
+#: appPlugins/ToolObjectDistance.py:449 appPlugins/ToolOptimal.py:512
+#: appPlugins/ToolSolderPaste.py:1356
+msgid "Parameters used for this tool."
+msgstr ""
+
+#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:42
+#: appPlugins/ToolFiducials.py:1066
msgid ""
"This set the fiducial diameter if fiducial type is circular,\n"
"otherwise is the size of the fiducial.\n"
@@ -9177,22 +9463,22 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:70
-#: appPlugins/ToolFiducials.py:1005
+#: appPlugins/ToolFiducials.py:1094
msgid "Up"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:71
-#: appPlugins/ToolFiducials.py:1006
+#: appPlugins/ToolFiducials.py:1095
msgid "Down"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: appPlugins/ToolFiducials.py:1009
+#: appPlugins/ToolFiducials.py:1098
msgid "Second fiducial"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: appPlugins/ToolFiducials.py:1011
+#: appPlugins/ToolFiducials.py:1100
msgid ""
"The position for the second fiducial.\n"
"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
@@ -9201,12 +9487,12 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: appPlugins/ToolFiducials.py:1025
+#: appPlugins/ToolFiducials.py:1114
msgid "Fiducial Type"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: appPlugins/ToolFiducials.py:1027
+#: appPlugins/ToolFiducials.py:1116
msgid ""
"The type of fiducial.\n"
"- 'Circular' - this is the regular fiducial.\n"
@@ -9215,43 +9501,32 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:99
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:47 appPlugins/ToolFiducials.py:1034
-#: appPlugins/ToolMarkers.py:1227
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:47 appPlugins/ToolFiducials.py:1123
+#: appPlugins/ToolMarkers.py:1301
msgid "Cross"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:99
-#: appPlugins/ToolFiducials.py:1034
+#: appPlugins/ToolFiducials.py:1123
msgid "Chess"
msgstr ""
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:105
-#: appPlugins/ToolFiducials.py:1040
+#: appPlugins/ToolFiducials.py:1129
msgid "Line thickness"
msgstr ""
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:132
-#: appPlugins/ToolFiducials.py:1072 appPlugins/ToolMarkers.py:1383
-msgid "Auto"
-msgstr ""
-
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:133
#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:67
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:48 appPlugins/ToolCutOut.py:2572
-#: appPlugins/ToolDblSided.py:1083 appPlugins/ToolFiducials.py:1073
-#: appPlugins/ToolLevelling.py:1923 appPlugins/ToolMarkers.py:1384
-#: appPlugins/ToolPunchGerber.py:2327
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:48 appPlugins/ToolCutOut.py:2554
+#: appPlugins/ToolDblSided.py:1069 appPlugins/ToolFiducials.py:1162
+#: appPlugins/ToolLevelling.py:1904 appPlugins/ToolMarkers.py:1457
+#: appPlugins/ToolPunchGerber.py:2340
msgid "Manual"
msgstr ""
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:135
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:41 appPlugins/ToolLevelling.py:1916
-#: appPlugins/ToolMarkers.py:1376
-msgid "Mode"
-msgstr ""
-
#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:137
-#: appPlugins/ToolFiducials.py:1077
+#: appPlugins/ToolFiducials.py:1166
msgid ""
"- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n"
"- 'Manual' - manual placement of fiducials."
@@ -9267,17 +9542,17 @@ msgid ""
"and in revers."
msgstr ""
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:43 appPlugins/ToolInvertGerber.py:271
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:43 appPlugins/ToolInvertGerber.py:258
msgid ""
"Distance by which to avoid\n"
"the edges of the Gerber object."
msgstr ""
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:57 appPlugins/ToolInvertGerber.py:282
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:57 appPlugins/ToolInvertGerber.py:269
msgid "Lines Join Style"
msgstr ""
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:59 appPlugins/ToolInvertGerber.py:284
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:59 appPlugins/ToolInvertGerber.py:271
msgid ""
"The way that the lines in the object outline will be joined.\n"
"Can be:\n"
@@ -9286,7 +9561,7 @@ msgid ""
"- bevel -> the lines are joined by a third line"
msgstr ""
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:78 appPlugins/ToolInvertGerber.py:293
+#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:78 appPlugins/ToolInvertGerber.py:280
msgid "Bevel"
msgstr ""
@@ -9300,7 +9575,7 @@ msgid ""
"every two Gerber geometric elements"
msgstr ""
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:45 appPlugins/ToolOptimal.py:536
+#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:45 appPlugins/ToolOptimal.py:522
msgid "Precision"
msgstr ""
@@ -9313,7 +9588,7 @@ msgid "Punch Gerber Options"
msgstr ""
#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:107
-#: appPlugins/ToolPunchGerber.py:2132
+#: appPlugins/ToolPunchGerber.py:2145
msgid ""
"The punch hole source can be:\n"
"- Excellon Object-> the Excellon object drills center will serve as reference.\n"
@@ -9334,24 +9609,24 @@ msgid ""
"into a selected Gerber file, or it can be exported as a file."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:42 appPlugins/ToolQRCode.py:827
-#: appMain.py:8613
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:42 appMain.py:8641
+#: appPlugins/ToolQRCode.py:815
msgid "Version"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:44 appPlugins/ToolQRCode.py:829
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:44 appPlugins/ToolQRCode.py:817
msgid ""
"QRCode version can have values from 1 (21x21 boxes)\n"
"to 40 (177x177 boxes)."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:55 appPlugins/ToolQRCode.py:840
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:55 appPlugins/ToolQRCode.py:828
msgid "Error correction"
msgstr ""
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:57
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:68 appPlugins/ToolQRCode.py:842
-#: appPlugins/ToolQRCode.py:853
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:68 appPlugins/ToolQRCode.py:830
+#: appPlugins/ToolQRCode.py:841
#, python-format
msgid ""
"Parameter that controls the error correction used for the QR Code.\n"
@@ -9361,45 +9636,45 @@ msgid ""
"H = maximum 30%% errors can be corrected."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:78 appPlugins/ToolQRCode.py:863
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:78 appPlugins/ToolQRCode.py:851
msgid "Box Size"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:80 appPlugins/ToolQRCode.py:865
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:80 appPlugins/ToolQRCode.py:853
msgid ""
"Box size control the overall size of the QRcode\n"
"by adjusting the size of each box in the code."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:91 appPlugins/ToolQRCode.py:876
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:91 appPlugins/ToolQRCode.py:864
msgid "Border Size"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:93 appPlugins/ToolQRCode.py:878
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:93 appPlugins/ToolQRCode.py:866
msgid ""
"Size of the QRCode border. How many boxes thick is the border.\n"
"Default value is 4. The width of the clearance around the QRCode."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:104 appPlugins/ToolQRCode.py:785
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:104 appPlugins/ToolQRCode.py:773
msgid "QRCode Data"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:106 appPlugins/ToolQRCode.py:787
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:106 appPlugins/ToolQRCode.py:775
msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:110 appPlugins/ToolQRCode.py:801
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:110 appPlugins/ToolQRCode.py:789
msgid "Add here the text to be included in the QRCode..."
msgstr ""
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:116
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:237 appPlugins/ToolFilm.py:1591
-#: appPlugins/ToolQRCode.py:889
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:222 appPlugins/ToolFilm.py:1568
+#: appPlugins/ToolQRCode.py:877
msgid "Polarity"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:118 appPlugins/ToolQRCode.py:891
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:118 appPlugins/ToolQRCode.py:879
msgid ""
"Choose the polarity of the QRCode.\n"
"It can be drawn in a negative way (squares are clear)\n"
@@ -9407,18 +9682,18 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:122
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:236 appPlugins/ToolFilm.py:1589
-#: appPlugins/ToolQRCode.py:895
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:221 appPlugins/ToolFilm.py:1566
+#: appPlugins/ToolQRCode.py:883
msgid "Negative"
msgstr ""
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:123
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:235 appPlugins/ToolFilm.py:1588
-#: appPlugins/ToolQRCode.py:896
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:220 appPlugins/ToolFilm.py:1565
+#: appPlugins/ToolQRCode.py:884
msgid "Positive"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 appPlugins/ToolQRCode.py:898
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 appPlugins/ToolQRCode.py:886
msgid ""
"Choose the type of QRCode to be created.\n"
"If added on a Silkscreen Gerber file the QRCode may\n"
@@ -9427,26 +9702,26 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:136
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 appPlugins/ToolQRCode.py:909
-#: appPlugins/ToolQRCode.py:915
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 appPlugins/ToolQRCode.py:897
+#: appPlugins/ToolQRCode.py:903
msgid ""
"The bounding box, meaning the empty space that surrounds\n"
"the QRCode geometry, can have a rounded or a square shape."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:149 appPlugins/ToolQRCode.py:943
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:149 appPlugins/ToolQRCode.py:931
msgid "Fill Color"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:151 appPlugins/ToolQRCode.py:945
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:151 appPlugins/ToolQRCode.py:933
msgid "Set the QRCode fill color (squares color)."
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:159 appPlugins/ToolQRCode.py:967
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:159 appPlugins/ToolQRCode.py:955
msgid "Back Color"
msgstr ""
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:161 appPlugins/ToolQRCode.py:969
+#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:161 appPlugins/ToolQRCode.py:957
msgid "Set the QRCode background color."
msgstr ""
@@ -9461,8 +9736,8 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:31
-#: appPlugins/ToolRulesCheck.py:1224 appPlugins/ToolRulesCheck.py:1270
-#: appPlugins/ToolRulesCheck.py:1336 appPlugins/ToolRulesCheck.py:1478
+#: appPlugins/ToolRulesCheck.py:1209 appPlugins/ToolRulesCheck.py:1255
+#: appPlugins/ToolRulesCheck.py:1321 appPlugins/ToolRulesCheck.py:1463
msgid "Copper"
msgstr ""
@@ -9470,36 +9745,36 @@ msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:130
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:208
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:243
-#: appPlugins/ToolRulesCheck.py:1224 appPlugins/ToolRulesCheck.py:1231
-#: appPlugins/ToolRulesCheck.py:1238 appPlugins/ToolRulesCheck.py:1245
-#: appPlugins/ToolRulesCheck.py:1478 appPlugins/ToolRulesCheck.py:1588
-#: appPlugins/ToolRulesCheck.py:1675 appPlugins/ToolRulesCheck.py:1713
+#: appPlugins/ToolRulesCheck.py:1209 appPlugins/ToolRulesCheck.py:1216
+#: appPlugins/ToolRulesCheck.py:1223 appPlugins/ToolRulesCheck.py:1230
+#: appPlugins/ToolRulesCheck.py:1463 appPlugins/ToolRulesCheck.py:1573
+#: appPlugins/ToolRulesCheck.py:1660 appPlugins/ToolRulesCheck.py:1698
msgid "Rules"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:41
-#: appPlugins/ToolRulesCheck.py:459 appPlugins/ToolRulesCheck.py:1488
+#: appPlugins/ToolRulesCheck.py:444 appPlugins/ToolRulesCheck.py:1473
msgid "Trace Size"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:43
-#: appPlugins/ToolRulesCheck.py:1490
+#: appPlugins/ToolRulesCheck.py:1475
msgid "This checks if the minimum size for traces is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:50
-#: appPlugins/ToolRulesCheck.py:1497
+#: appPlugins/ToolRulesCheck.py:1482
msgid "Minimum acceptable trace size."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:62
-#: appPlugins/ToolRulesCheck.py:691 appPlugins/ToolRulesCheck.py:721
-#: appPlugins/ToolRulesCheck.py:1511
+#: appPlugins/ToolRulesCheck.py:676 appPlugins/ToolRulesCheck.py:706
+#: appPlugins/ToolRulesCheck.py:1496
msgid "Copper to Copper clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:64
-#: appPlugins/ToolRulesCheck.py:1513
+#: appPlugins/ToolRulesCheck.py:1498
msgid ""
"This checks if the minimum clearance between copper\n"
"features is met."
@@ -9512,140 +9787,140 @@ msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:229
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:263
-#: appPlugins/ToolRulesCheck.py:1521 appPlugins/ToolRulesCheck.py:1546
-#: appPlugins/ToolRulesCheck.py:1608 appPlugins/ToolRulesCheck.py:1633
-#: appPlugins/ToolRulesCheck.py:1658 appPlugins/ToolRulesCheck.py:1696
-#: appPlugins/ToolRulesCheck.py:1733
+#: appPlugins/ToolRulesCheck.py:1506 appPlugins/ToolRulesCheck.py:1531
+#: appPlugins/ToolRulesCheck.py:1593 appPlugins/ToolRulesCheck.py:1618
+#: appPlugins/ToolRulesCheck.py:1643 appPlugins/ToolRulesCheck.py:1681
+#: appPlugins/ToolRulesCheck.py:1718
msgid "Minimum acceptable clearance value."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:84
-#: appPlugins/ToolRulesCheck.py:751 appPlugins/ToolRulesCheck.py:757
-#: appPlugins/ToolRulesCheck.py:770 appPlugins/ToolRulesCheck.py:777
-#: appPlugins/ToolRulesCheck.py:1536
+#: appPlugins/ToolRulesCheck.py:736 appPlugins/ToolRulesCheck.py:742
+#: appPlugins/ToolRulesCheck.py:755 appPlugins/ToolRulesCheck.py:762
+#: appPlugins/ToolRulesCheck.py:1521
msgid "Copper to Outline clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:86
-#: appPlugins/ToolRulesCheck.py:1538
+#: appPlugins/ToolRulesCheck.py:1523
msgid ""
"This checks if the minimum clearance between copper\n"
"features and the outline is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:106
-#: appPlugins/ToolRulesCheck.py:1017 appPlugins/ToolRulesCheck.py:1023
-#: appPlugins/ToolRulesCheck.py:1039 appPlugins/ToolRulesCheck.py:1046
-#: appPlugins/ToolRulesCheck.py:1561
+#: appPlugins/ToolRulesCheck.py:1002 appPlugins/ToolRulesCheck.py:1008
+#: appPlugins/ToolRulesCheck.py:1024 appPlugins/ToolRulesCheck.py:1031
+#: appPlugins/ToolRulesCheck.py:1546
msgid "Minimum Annular Ring"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:108
-#: appPlugins/ToolRulesCheck.py:1563
+#: appPlugins/ToolRulesCheck.py:1548
msgid ""
"This checks if the minimum copper ring left by drilling\n"
"a hole into a pad is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: appPlugins/ToolRulesCheck.py:1571
+#: appPlugins/ToolRulesCheck.py:1556
msgid "Minimum acceptable ring value."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:130
-#: appPlugins/ToolRulesCheck.py:1231 appPlugins/ToolRulesCheck.py:1306
-#: appPlugins/ToolRulesCheck.py:1372 appPlugins/ToolRulesCheck.py:1588
+#: appPlugins/ToolRulesCheck.py:1216 appPlugins/ToolRulesCheck.py:1291
+#: appPlugins/ToolRulesCheck.py:1357 appPlugins/ToolRulesCheck.py:1573
msgid "Silk"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:140
-#: appPlugins/ToolRulesCheck.py:1598
+#: appPlugins/ToolRulesCheck.py:1583
msgid "Silk to Silk Clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:142
-#: appPlugins/ToolRulesCheck.py:1600
+#: appPlugins/ToolRulesCheck.py:1585
msgid ""
"This checks if the minimum clearance between silkscreen\n"
"features and silkscreen features is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:162
-#: appPlugins/ToolRulesCheck.py:860 appPlugins/ToolRulesCheck.py:866
-#: appPlugins/ToolRulesCheck.py:884 appPlugins/ToolRulesCheck.py:1623
+#: appPlugins/ToolRulesCheck.py:845 appPlugins/ToolRulesCheck.py:851
+#: appPlugins/ToolRulesCheck.py:869 appPlugins/ToolRulesCheck.py:1608
msgid "Silk to Solder Mask Clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:164
-#: appPlugins/ToolRulesCheck.py:1625
+#: appPlugins/ToolRulesCheck.py:1610
msgid ""
"This checks if the minimum clearance between silkscreen\n"
"features and soldermask features is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:184
-#: appPlugins/ToolRulesCheck.py:914 appPlugins/ToolRulesCheck.py:920
-#: appPlugins/ToolRulesCheck.py:934 appPlugins/ToolRulesCheck.py:941
-#: appPlugins/ToolRulesCheck.py:1648
+#: appPlugins/ToolRulesCheck.py:899 appPlugins/ToolRulesCheck.py:905
+#: appPlugins/ToolRulesCheck.py:919 appPlugins/ToolRulesCheck.py:926
+#: appPlugins/ToolRulesCheck.py:1633
msgid "Silk to Outline Clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:186
-#: appPlugins/ToolRulesCheck.py:1650
+#: appPlugins/ToolRulesCheck.py:1635
msgid ""
"This checks if the minimum clearance between silk\n"
"features and the outline is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:208
-#: appPlugins/ToolRulesCheck.py:1238 appPlugins/ToolRulesCheck.py:1675
+#: appPlugins/ToolRulesCheck.py:1223 appPlugins/ToolRulesCheck.py:1660
msgid "Soldermask"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: appPlugins/ToolRulesCheck.py:952 appPlugins/ToolRulesCheck.py:979
-#: appPlugins/ToolRulesCheck.py:1685
+#: appPlugins/ToolRulesCheck.py:937 appPlugins/ToolRulesCheck.py:964
+#: appPlugins/ToolRulesCheck.py:1670
msgid "Minimum Solder Mask Sliver"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:220
-#: appPlugins/ToolRulesCheck.py:1687
+#: appPlugins/ToolRulesCheck.py:1672
msgid ""
"This checks if the minimum clearance between soldermask\n"
"features and soldermask features is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:243
-#: appPlugins/ToolRulesCheck.py:1245 appPlugins/ToolRulesCheck.py:1713
+#: appPlugins/ToolRulesCheck.py:1230 appPlugins/ToolRulesCheck.py:1698
msgid "Holes"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:253
-#: appPlugins/ToolRulesCheck.py:403 appPlugins/ToolRulesCheck.py:1723
+#: appPlugins/ToolRulesCheck.py:388 appPlugins/ToolRulesCheck.py:1708
msgid "Hole to Hole Clearance"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:255
-#: appPlugins/ToolRulesCheck.py:1725
+#: appPlugins/ToolRulesCheck.py:1710
msgid ""
"This checks if the minimum clearance between a drill hole\n"
"and another drill hole is met."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:275
-#: appPlugins/ToolRulesCheck.py:377 appPlugins/ToolRulesCheck.py:1748
+#: appPlugins/ToolRulesCheck.py:362 appPlugins/ToolRulesCheck.py:1733
msgid "Hole Size"
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:277
-#: appPlugins/ToolRulesCheck.py:1750
+#: appPlugins/ToolRulesCheck.py:1735
msgid ""
"This checks if the drill holes\n"
"sizes are above the threshold."
msgstr ""
#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:285
-#: appPlugins/ToolRulesCheck.py:1758
+#: appPlugins/ToolRulesCheck.py:1743
msgid "Minimum acceptable drill size."
msgstr ""
@@ -9653,7 +9928,7 @@ msgstr ""
msgid "2-Sided Plugin"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:25 appPlugins/ToolDblSided.py:1041
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:25 appPlugins/ToolDblSided.py:1027
msgid "PCB Alignment"
msgstr ""
@@ -9665,17 +9940,17 @@ msgstr ""
#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:282
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:81 appPlugins/ToolCutOut.py:2751
-#: appPlugins/ToolDblSided.py:1056 appPlugins/ToolMarkers.py:1421
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:81 appPlugins/ToolCutOut.py:2733
+#: appPlugins/ToolDblSided.py:1042 appPlugins/ToolMarkers.py:1509
msgid "Drill Dia"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 appPlugins/ToolDblSided.py:1058
-#: appPlugins/ToolDblSided.py:1063
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 appPlugins/ToolDblSided.py:1044
+#: appPlugins/ToolDblSided.py:1049
msgid "Diameter of the drill for the alignment holes."
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 appPlugins/ToolDblSided.py:1074
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 appPlugins/ToolDblSided.py:1060
msgid ""
"The content of the Excellon file.\n"
"X - Pairs of drill holes mirrored vertically from reference point\n"
@@ -9684,24 +9959,24 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:78
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:170
msgid "Mirror Axis"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 appPlugins/ToolDblSided.py:883
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:80 appPlugins/ToolDblSided.py:869
msgid "Mirror vertically (X) or horizontally (Y)."
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:92 appPlugins/ToolDblSided.py:871
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:92 appPlugins/ToolDblSided.py:857
msgid "Mirror Operation"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:108 appPlugins/ToolDblSided.py:913
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:108 appPlugins/ToolDblSided.py:899
msgid "Box"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:109 appPlugins/ToolDblSided.py:914
-#: appMain.py:8622
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:109 appMain.py:8650
+#: appPlugins/ToolDblSided.py:900
msgid "Snap"
msgstr ""
@@ -9709,7 +9984,7 @@ msgstr ""
msgid "Axis Ref"
msgstr ""
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:114 appPlugins/ToolDblSided.py:903
+#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:114 appPlugins/ToolDblSided.py:889
msgid ""
"The coordinates used as reference for the mirror operation.\n"
"Can be:\n"
@@ -9735,19 +10010,19 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:47
-#: appPlugins/ToolCalculators.py:612
+#: appPlugins/ToolCalculators.py:606
msgid "Tip Diameter"
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:49
-#: appPlugins/ToolCalculators.py:614
+#: appPlugins/ToolCalculators.py:608
msgid ""
"This is the tool tip diameter.\n"
"It is specified by manufacturer."
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:61
-#: appPlugins/ToolCalculators.py:627
+#: appPlugins/ToolCalculators.py:621
msgid "Tip Angle"
msgstr ""
@@ -9768,14 +10043,14 @@ msgid "ElectroPlating Calculator"
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:88
-#: appPlugins/ToolCalculators.py:675
+#: appPlugins/ToolCalculators.py:669
msgid ""
"This calculator is useful for those who plate the via/pad/drill holes,\n"
"using a method like graphite ink or calcium hypophosphite ink or palladium chloride."
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:105
-#: appPlugins/ToolCalculators.py:702
+#: appPlugins/ToolCalculators.py:698
msgid "Board Length"
msgstr ""
@@ -9784,7 +10059,7 @@ msgid "This is the board length. In centimeters."
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:117
-#: appPlugins/ToolCalculators.py:721 appPlugins/ToolCalculators.py:722
+#: appPlugins/ToolCalculators.py:717 appPlugins/ToolCalculators.py:718
msgid "Board Width"
msgstr ""
@@ -9797,7 +10072,7 @@ msgid "This is the board area."
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:135
-#: appPlugins/ToolCalculators.py:764
+#: appPlugins/ToolCalculators.py:760
msgid "Current Density"
msgstr ""
@@ -9808,7 +10083,7 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:147
-#: appPlugins/ToolCalculators.py:785
+#: appPlugins/ToolCalculators.py:781
msgid "Copper Growth"
msgstr ""
@@ -9829,7 +10104,7 @@ msgid ""
"the original board."
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:46 appPlugins/ToolCutOut.py:2350
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:46 appPlugins/ToolCutOut.py:2332
msgid ""
"Diameter of the tool used to cutout\n"
"the PCB shape out of the surrounding material."
@@ -9837,16 +10112,16 @@ msgstr ""
#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:84
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:70
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:100 appPlugins/ToolCutOut.py:2432
-#: appPlugins/ToolDrilling.py:2558 appPlugins/ToolMilling.py:4600
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:100 appPlugins/ToolCutOut.py:2414
+#: appPlugins/ToolDrilling.py:2538 appPlugins/ToolMilling.py:4567
msgid "Multi-Depth"
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:107 appPlugins/ToolCutOut.py:2291
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:107 appPlugins/ToolCutOut.py:2273
msgid "Kind"
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 appPlugins/ToolCutOut.py:2293
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 appPlugins/ToolCutOut.py:2275
msgid ""
"Choice of what kind the object we want to cutout is.\n"
"- Single: contain a single PCB Gerber outline object.\n"
@@ -9854,11 +10129,7 @@ msgid ""
"out of many individual PCB outlines."
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:116 appPlugins/ToolCutOut.py:2299
-msgid "Single"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:176 appPlugins/ToolCutOut.py:2514
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:176 appPlugins/ToolCutOut.py:2496
msgid "Mouse Bytes"
msgstr ""
@@ -9876,31 +10147,33 @@ msgid ""
"- 8 - 2*left + 2*right +2*top + 2*bottom"
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:257 appPlugins/ToolCutOut.py:2637
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:257 appPlugins/ToolCutOut.py:2619
+#: appPlugins/ToolDistance.py:848 appPlugins/ToolFiducials.py:1173
+#: appPlugins/ToolMarkers.py:1462
msgid "Big cursor"
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:259 appPlugins/ToolCutOut.py:2639
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:259 appPlugins/ToolCutOut.py:2621
msgid "Use a big cursor when adding manual gaps."
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:263 appPlugins/ToolCutOut.py:2715
-#: appPlugins/ToolCutOut.py:2789
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:263 appPlugins/ToolCutOut.py:2697
+#: appPlugins/ToolCutOut.py:2771
msgid "Cut by Drilling"
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:264 appPlugins/ToolCutOut.py:2716
-#: appPlugins/ToolCutOut.py:2792
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:264 appPlugins/ToolCutOut.py:2698
+#: appPlugins/ToolCutOut.py:2774
msgid "Create a series of drill holes following a geometry line."
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:284 appPlugins/ToolCutOut.py:2753
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:284 appPlugins/ToolCutOut.py:2735
msgid ""
"Diameter of the tool used to cutout\n"
"the PCB by drilling."
msgstr ""
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:297 appPlugins/ToolCutOut.py:2766
+#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:297 appPlugins/ToolCutOut.py:2748
msgid ""
"Distance between the center of\n"
"two neighboring drill holes."
@@ -9910,21 +10183,21 @@ msgstr ""
msgid "Drilling Plugin"
msgstr ""
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:30 appPlugins/ToolDrilling.py:2402
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:30 appPlugins/ToolDrilling.py:2382
msgid "Create CNCJob with toolpaths for drilling or milling holes."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:41
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:55
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:56
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:58 appPlugins/ToolDrilling.py:2487
-#: appPlugins/ToolIsolation.py:3409 appPlugins/ToolMilling.py:4153
-#: appPlugins/ToolNCC.py:4187 appPlugins/ToolPaint.py:3063
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:58 appPlugins/ToolDrilling.py:2467
+#: appPlugins/ToolIsolation.py:3455 appPlugins/ToolMilling.py:4120
+#: appPlugins/ToolNCC.py:4160 appPlugins/ToolPaint.py:3044
msgid "Tool order"
msgstr ""
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:42 appPlugins/ToolDrilling.py:2488
-#: appPlugins/ToolMilling.py:4154
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:42 appPlugins/ToolDrilling.py:2468
+#: appPlugins/ToolMilling.py:4121
msgid ""
"This set the way that the tools in the tools table are used.\n"
"'Default' --> the order from the file\n"
@@ -9935,66 +10208,71 @@ msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:48
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:64
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:65
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appPlugins/ToolDrilling.py:2494
-#: appPlugins/ToolIsolation.py:3418 appPlugins/ToolMilling.py:4160
-#: appPlugins/ToolNCC.py:4199 appPlugins/ToolPaint.py:3072
-#: appPlugins/ToolSolderPaste.py:1488
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appPlugins/ToolDrilling.py:2474
+#: appPlugins/ToolIsolation.py:3464 appPlugins/ToolMilling.py:4127
+#: appPlugins/ToolNCC.py:4172 appPlugins/ToolPaint.py:3053
+#: appPlugins/ToolSolderPaste.py:1551
msgid "Forward"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:48
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:64
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:65
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appPlugins/ToolDrilling.py:2494
-#: appPlugins/ToolIsolation.py:3418 appPlugins/ToolMilling.py:4160
-#: appPlugins/ToolNCC.py:4199 appPlugins/ToolPaint.py:3072
-#: appPlugins/ToolSolderPaste.py:1526
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:67 appPlugins/ToolDrilling.py:2474
+#: appPlugins/ToolIsolation.py:3464 appPlugins/ToolMilling.py:4127
+#: appPlugins/ToolNCC.py:4172 appPlugins/ToolPaint.py:3053
+#: appPlugins/ToolSolderPaste.py:1589
msgid "Reverse"
msgstr ""
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:109 appPlugins/ToolDrilling.py:2782
-#: appPlugins/ToolMilling.py:4814
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:107
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:142 appPlugins/ToolSolderPaste.py:1449
+msgid "Tool change"
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:109 appPlugins/ToolDrilling.py:2762
+#: appPlugins/ToolMilling.py:4781
msgid ""
"Include tool-change sequence\n"
"in G-Code (Pause for tool change)."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:115
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:152 appPlugins/ToolCalibration.py:831
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:152
msgid "Toolchange Z"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:117
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:155 appPlugins/ToolDrilling.py:2790
-#: appPlugins/ToolMilling.py:4822
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:155 appPlugins/ToolDrilling.py:2770
+#: appPlugins/ToolMilling.py:4789
msgid ""
"Z-axis position (height) for\n"
"tool change."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:129
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:170 appPlugins/ToolDrilling.py:2833
-#: appPlugins/ToolMilling.py:4852
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:170 appPlugins/ToolDrilling.py:2813
+#: appPlugins/ToolMilling.py:4819
msgid "End move Z"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:131
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:172 appPlugins/ToolDrilling.py:2835
-#: appPlugins/ToolMilling.py:4854
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:172 appPlugins/ToolDrilling.py:2815
+#: appPlugins/ToolMilling.py:4821
msgid ""
"Height of the tool after\n"
"the last move at the end of the job."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:142
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:186 appPlugins/ToolDrilling.py:2849
-#: appPlugins/ToolMilling.py:4868
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:186 appPlugins/ToolDrilling.py:2829
+#: appPlugins/ToolMilling.py:4835
msgid "End move X,Y"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:144
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:188 appPlugins/ToolDrilling.py:2851
-#: appPlugins/ToolMilling.py:4870
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:188 appPlugins/ToolDrilling.py:2831
+#: appPlugins/ToolMilling.py:4837
msgid ""
"End move X,Y position. In format (x,y).\n"
"If no value is entered then there is no move\n"
@@ -10011,24 +10289,24 @@ msgid "Enable Dwell"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:185
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:247 appPlugins/ToolDrilling.py:2672
-#: appPlugins/ToolMilling.py:4764
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:247 appPlugins/ToolDrilling.py:2652
+#: appPlugins/ToolMilling.py:4731
msgid ""
"Pause to allow the spindle to reach its\n"
"speed before cutting."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:193
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:253 appPlugins/ToolDrilling.py:2684
-#: appPlugins/ToolMilling.py:4775
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:253 appPlugins/ToolDrilling.py:2664
+#: appPlugins/ToolMilling.py:4742
msgid "Number of time units for spindle to dwell."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:202
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:266
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: appPlugins/ToolDrilling.py:2900 appPlugins/ToolMilling.py:4919
-#: appPlugins/ToolSolderPaste.py:1570
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:266
+#: appPlugins/ToolDrilling.py:2880 appPlugins/ToolMilling.py:4886
+#: appPlugins/ToolSolderPaste.py:1639
msgid "Preprocessor"
msgstr ""
@@ -10052,18 +10330,18 @@ msgid "Toolchange X,Y"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:303
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:307 appPlugins/ToolDrilling.py:2805
-#: appPlugins/ToolMilling.py:4836
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:307 appPlugins/ToolDrilling.py:2785
+#: appPlugins/ToolMilling.py:4803
msgid "Toolchange X,Y position."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:311
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:315 appPlugins/ToolDrilling.py:2821
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:315 appPlugins/ToolDrilling.py:2801
msgid "Start Z"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:313
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:317 appPlugins/ToolDrilling.py:2823
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:317 appPlugins/ToolDrilling.py:2803
msgid ""
"Height of the tool just after starting the work.\n"
"Delete the value if you don't need this feature."
@@ -10071,30 +10349,30 @@ msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:338
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:101
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:367 appPlugins/ToolDrilling.py:2863
-#: appPlugins/ToolLevelling.py:1886 appPlugins/ToolMilling.py:4882
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:367 appPlugins/ToolDrilling.py:2843
+#: appPlugins/ToolLevelling.py:1867 appPlugins/ToolMilling.py:4849
msgid "Probe Z depth"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:340
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:103
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:369 appPlugins/ToolDrilling.py:2865
-#: appPlugins/ToolLevelling.py:1888 appPlugins/ToolMilling.py:4884
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:369 appPlugins/ToolDrilling.py:2845
+#: appPlugins/ToolLevelling.py:1869 appPlugins/ToolMilling.py:4851
msgid ""
"The maximum depth that the probe is allowed\n"
"to probe. Negative value, in current units."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:351
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:382 appPlugins/ToolDrilling.py:2882
-#: appPlugins/ToolMilling.py:4901
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:382 appPlugins/ToolDrilling.py:2862
+#: appPlugins/ToolMilling.py:4868
msgid "Feedrate Probe"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:353
#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:116
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:384 appPlugins/ToolDrilling.py:2884
-#: appPlugins/ToolLevelling.py:1901 appPlugins/ToolMilling.py:4903
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:384 appPlugins/ToolDrilling.py:2864
+#: appPlugins/ToolLevelling.py:1882 appPlugins/ToolMilling.py:4870
msgid "The feedrate used while the probe is probing."
msgstr ""
@@ -10113,14 +10391,14 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:377
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:410 appPlugins/ToolDrilling.py:2654
-#: appPlugins/ToolMilling.py:4746
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:410 appPlugins/ToolDrilling.py:2634
+#: appPlugins/ToolMilling.py:4713
msgid "Min Power"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:379
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:412 appPlugins/ToolDrilling.py:2656
-#: appPlugins/ToolMilling.py:4748
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:412 appPlugins/ToolDrilling.py:2636
+#: appPlugins/ToolMilling.py:4715
msgid "The laser power when the laser is travelling."
msgstr ""
@@ -10168,8 +10446,8 @@ msgid "Exclusion areas"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:436
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:456 appPlugins/ToolDrilling.py:2920
-#: appPlugins/ToolMilling.py:4985
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:456 appPlugins/ToolDrilling.py:2900
+#: appPlugins/ToolMilling.py:4952
msgid ""
"Include exclusion areas.\n"
"In those areas the travel of the tools\n"
@@ -10177,25 +10455,25 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:446
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:318
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:332
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:466
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:323
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:287 appPlugins/ToolDrilling.py:2991
-#: appPlugins/ToolFollow.py:759 appPlugins/ToolIsolation.py:3895
-#: appPlugins/ToolMilling.py:5057 appPlugins/ToolNCC.py:4599 appPlugins/ToolPaint.py:3350
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:287 appPlugins/ToolDrilling.py:2971
+#: appPlugins/ToolFollow.py:743 appPlugins/ToolIsolation.py:3957
+#: appPlugins/ToolMilling.py:5024 appPlugins/ToolNCC.py:4572 appPlugins/ToolPaint.py:3331
msgid "The kind of selection shape used for area selection."
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:456
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:476 appPlugins/ToolDrilling.py:2942
-#: appPlugins/ToolDrilling.py:2959 appPlugins/ToolMilling.py:5008
-#: appPlugins/ToolMilling.py:5025
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:476 appPlugins/ToolDrilling.py:2922
+#: appPlugins/ToolDrilling.py:2939 appPlugins/ToolMilling.py:4975
+#: appPlugins/ToolMilling.py:4992
msgid "Strategy"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:457
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:477 appPlugins/ToolDrilling.py:2960
-#: appPlugins/ToolMilling.py:5026
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:477 appPlugins/ToolDrilling.py:2940
+#: appPlugins/ToolMilling.py:4993
msgid ""
"The strategy followed when encountering an exclusion area.\n"
"Can be:\n"
@@ -10204,29 +10482,29 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:461
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:481 appPlugins/ToolDrilling.py:871
-#: appPlugins/ToolDrilling.py:2964 appPlugins/ToolMilling.py:940
-#: appPlugins/ToolMilling.py:5030
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:481 appPlugins/ToolDrilling.py:849
+#: appPlugins/ToolDrilling.py:2944 appPlugins/ToolMilling.py:914
+#: appPlugins/ToolMilling.py:4997
msgid "Over"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:462
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:482 appPlugins/ToolDrilling.py:871
-#: appPlugins/ToolDrilling.py:2965 appPlugins/ToolMilling.py:940
-#: appPlugins/ToolMilling.py:5031
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:482 appPlugins/ToolDrilling.py:849
+#: appPlugins/ToolDrilling.py:2945 appPlugins/ToolMilling.py:914
+#: appPlugins/ToolMilling.py:4998
msgid "Around"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:468
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:488 appPlugins/ToolDrilling.py:2942
-#: appPlugins/ToolDrilling.py:2972 appPlugins/ToolMilling.py:5008
-#: appPlugins/ToolMilling.py:5038
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:488 appPlugins/ToolDrilling.py:2922
+#: appPlugins/ToolDrilling.py:2952 appPlugins/ToolMilling.py:4975
+#: appPlugins/ToolMilling.py:5005
msgid "Over Z"
msgstr ""
#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:469
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:489 appPlugins/ToolDrilling.py:2973
-#: appPlugins/ToolMilling.py:5039
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:489 appPlugins/ToolDrilling.py:2953
+#: appPlugins/ToolMilling.py:5006
msgid ""
"The height Z to which the tool will rise in order to avoid\n"
"an interdiction area."
@@ -10236,100 +10514,105 @@ msgstr ""
msgid "Film Plugin"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:28 appPlugins/ToolFilm.py:1343
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:28 appPlugins/ToolFilm.py:1335
msgid "Adjustments"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:30 appPlugins/ToolFilm.py:1345
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:30 appPlugins/ToolFilm.py:1337
msgid "Compensate print distortions."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 appPlugins/ToolFilm.py:1359
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:44 appPlugins/ToolFilm.py:1351
msgid ""
"A value greater than 1 will compact the film\n"
"while a value less than 1 will jolt it."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:64 appPlugins/ToolFilm.py:1372
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:59 appPlugins/ToolFilm.py:1359
msgid ""
"'Length' -> scale by a length value\n"
"'Factor' -> scale by a ratio"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:159 appPlugins/ToolFilm.py:1404
-#: appPlugins/ToolFilm.py:1480
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:91
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:149 appPlugins/ToolFilm.py:1391
+#: appPlugins/ToolFilm.py:1462
msgid "The reference point to be used as origin for the adjustment."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:164 appPlugins/ToolFiducials.py:898
-#: appPlugins/ToolFilm.py:1409 appPlugins/ToolFilm.py:1485 appPlugins/ToolMarkers.py:1346
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:154 appPlugins/ToolFiducials.py:985
+#: appPlugins/ToolFilm.py:1396 appPlugins/ToolFilm.py:1467 appPlugins/ToolMarkers.py:1420
msgid "Bottom Left"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101 appPlugins/ToolFilm.py:1409
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96 appPlugins/ToolFilm.py:1396
+#: appPlugins/ToolMarkers.py:1412
+msgid "Top Left"
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96 appPlugins/ToolFilm.py:1396
+#: appPlugins/ToolMarkers.py:1424
+msgid "Bottom Right"
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:96 appPlugins/ToolFilm.py:1396
msgid "Top right"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:107
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 appPlugins/ToolFilm.py:1432
-#: appPlugins/ToolTransform.py:726
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:102
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:118 appPlugins/ToolFilm.py:1419
+#: appPlugins/ToolTransform.py:717
msgid "Skew"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:109 appPlugins/ToolFilm.py:1434
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:104 appPlugins/ToolFilm.py:1421
msgid ""
"Positive values will skew to the right\n"
"while negative values will skew to the left."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:128
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:118
msgid ""
"'Length' -> deform by a length value\n"
"'Angle' -> deform by an angle\n"
"'Factor' -> deform by a ratio between what should be and what is"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:170 appPlugins/ToolDblSided.py:1022
-#: appPlugins/ToolFilm.py:1508
-msgid "Mirror"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:172 appPlugins/ToolFilm.py:1510
-#: appPlugins/ToolFilm.py:1525
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:162 appPlugins/ToolFilm.py:1492
+#: appPlugins/ToolFilm.py:1502
msgid "Mirror the film geometry on the selected axis or on both."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:200
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
msgid ""
"Create a PCB film from a Gerber or Geometry object.\n"
"The file is saved in SVG format."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:215 appPlugins/ToolFilm.py:1553
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:200 appPlugins/ToolFilm.py:1530
msgid ""
"Create a convex shape surrounding the entire PCB.\n"
"If not checked the shape is rectangular."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:239 appPlugins/ToolFilm.py:1593
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:224 appPlugins/ToolFilm.py:1570
msgid "Generate a Positive black film or a Negative film."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:245
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:230
msgid "Film Color"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:247
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232
msgid "Set the film color when positive film is selected."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:260 appPlugins/ToolFilm.py:1604
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:245 appPlugins/ToolFilm.py:1581
msgid "Border"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:262 appPlugins/ToolFilm.py:1606
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:247 appPlugins/ToolFilm.py:1583
msgid ""
"Specify a border around the object.\n"
"Only for negative film.\n"
@@ -10341,34 +10624,34 @@ msgid ""
"surroundings if not for this border."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:280 appPlugins/ToolFilm.py:1578
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:265 appPlugins/ToolFilm.py:1555
msgid "Scale Stroke"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:282 appPlugins/ToolFilm.py:1580
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:267 appPlugins/ToolFilm.py:1557
msgid ""
"Scale the line stroke thickness of each feature in the SVG file.\n"
"It means that the line that envelope each SVG feature will be thicker or thinner,\n"
"therefore the fine features may be more affected by this parameter."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:289 appPlugins/ToolFilm.py:1698
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:274 appPlugins/ToolFilm.py:1675
msgid "SVG"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:290 appPlugins/ToolFilm.py:1699
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:275 appPlugins/ToolFilm.py:1676
msgid "PNG"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:291 appPlugins/ToolFilm.py:1700
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:276 appPlugins/ToolFilm.py:1677
msgid "PDF"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:294 appPlugins/ToolFilm.py:1689
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:279 appPlugins/ToolFilm.py:1666
msgid "Film Type"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:296 appPlugins/ToolFilm.py:1691
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:281 appPlugins/ToolFilm.py:1668
msgid ""
"The file type of the saved film. Can be:\n"
"- 'SVG' -> open-source vectorial format\n"
@@ -10376,19 +10659,19 @@ msgid ""
"- 'PDF' -> portable document format"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:305 appPlugins/ToolFilm.py:1707
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:290 appPlugins/ToolFilm.py:1684
msgid "Page Orientation"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:318 appPlugins/ToolFilm.py:1723
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:303 appPlugins/ToolFilm.py:1700
msgid "Page Size"
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:319 appPlugins/ToolFilm.py:1724
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:304 appPlugins/ToolFilm.py:1701
msgid "A selection of standard ISO 216 page sizes."
msgstr ""
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:386 appPlugins/ToolFilm.py:1790
+#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:371 appPlugins/ToolFilm.py:1767
msgid "Default value is 96 DPI. Change this value to scale the PNG file."
msgstr ""
@@ -10406,14 +10689,14 @@ msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:49
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:50
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:54
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:54 appPlugins/ToolMarkers.py:1473
msgid "Comma separated values"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:56
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:57
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:59 appPlugins/ToolIsolation.py:3410
-#: appPlugins/ToolNCC.py:4188 appPlugins/ToolPaint.py:3064
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:59 appPlugins/ToolIsolation.py:3456
+#: appPlugins/ToolNCC.py:4161 appPlugins/ToolPaint.py:3045
msgid ""
"This set the way that the tools in the tools table are used.\n"
"'Default' --> means that the used order is the one in the tool table\n"
@@ -10428,16 +10711,16 @@ msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:53
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:71
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:73
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 appPlugins/ToolIsolation.py:3575
-#: appPlugins/ToolMilling.py:4545
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80 appPlugins/ToolIsolation.py:3621
+#: appPlugins/ToolMilling.py:4512
msgid "V-Tip Dia"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:72
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:56
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:73
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:75 appPlugins/ToolIsolation.py:3578
-#: appPlugins/ToolMilling.py:4548
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:75 appPlugins/ToolIsolation.py:3624
+#: appPlugins/ToolMilling.py:4515
msgid "The tip diameter for V-Shape Tool"
msgstr ""
@@ -10445,16 +10728,16 @@ msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:68
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:83
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:86
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:94 appPlugins/ToolIsolation.py:3591
-#: appPlugins/ToolMilling.py:4561
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:94 appPlugins/ToolIsolation.py:3637
+#: appPlugins/ToolMilling.py:4528
msgid "V-Tip Angle"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:84
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:71
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:85
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:88 appPlugins/ToolIsolation.py:3594
-#: appPlugins/ToolMilling.py:4564
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:88 appPlugins/ToolIsolation.py:3640
+#: appPlugins/ToolMilling.py:4531
msgid ""
"The tip angle for V-Shape Tool.\n"
"In degree."
@@ -10473,7 +10756,7 @@ msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:117
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:118
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:120 appPlugins/ToolPaint.py:3099
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:120 appPlugins/ToolPaint.py:3080
msgid ""
"Diameter for the new tool to add in the Tool Table.\n"
"If the tool is V-shape type then this value is automatically\n"
@@ -10482,15 +10765,15 @@ msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:138
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:158
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:141 appPlugins/ToolCutOut.py:2388
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:141 appPlugins/ToolCutOut.py:2370
msgid "Tool Parameters"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:177 appPlugins/ToolIsolation.py:3645
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:177 appPlugins/ToolIsolation.py:3691
msgid "Pad Passes"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:179 appPlugins/ToolIsolation.py:3647
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:179 appPlugins/ToolIsolation.py:3693
msgid ""
"Width of the extra isolation gap for pads only,\n"
"in number (integer) of tool widths."
@@ -10498,33 +10781,35 @@ msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:248
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:274
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:231 appPlugins/ToolDrilling.py:2767
-#: appPlugins/ToolIsolation.py:3727 appPlugins/ToolMilling.py:4799
-#: appPlugins/ToolNCC.py:4474 appPlugins/ToolPaint.py:3265
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:231 appPlugins/ToolDrilling.py:2747
+#: appPlugins/ToolIsolation.py:3773 appPlugins/ToolMilling.py:4766
+#: appPlugins/ToolNCC.py:4447 appPlugins/ToolPaint.py:3246
+#: appPlugins/ToolSolderPaste.py:1627
msgid "Common Parameters"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:250
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:276
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:233 appPlugins/ToolDrilling.py:2769
-#: appPlugins/ToolFollow.py:733 appPlugins/ToolIsolation.py:3729
-#: appPlugins/ToolMilling.py:4801 appPlugins/ToolNCC.py:4476 appPlugins/ToolPaint.py:3266
-#: appPlugins/ToolPanelize.py:1351 appPlugins/ToolSub.py:822
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:233 appPlugins/ToolDrilling.py:2749
+#: appPlugins/ToolFollow.py:717 appPlugins/ToolIsolation.py:3775
+#: appPlugins/ToolMilling.py:4768 appPlugins/ToolNCC.py:4449 appPlugins/ToolPaint.py:3247
+#: appPlugins/ToolPanelize.py:1335 appPlugins/ToolSolderPaste.py:1629
+#: appPlugins/ToolSub.py:811
msgid "Parameters that are common for all tools."
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:261
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:287
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:243
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 appPlugins/ToolIsolation.py:3740
-#: appPlugins/ToolNCC.py:4487 appPlugins/ToolPaint.py:3276
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244 appPlugins/ToolIsolation.py:3786
+#: appPlugins/ToolNCC.py:4460 appPlugins/ToolPaint.py:3257
msgid "Rest"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:263
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:289
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:246 appPlugins/ToolIsolation.py:3743
-#: appPlugins/ToolNCC.py:4491 appPlugins/ToolPaint.py:3279
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:246 appPlugins/ToolIsolation.py:3789
+#: appPlugins/ToolNCC.py:4464 appPlugins/ToolPaint.py:3260
msgid ""
"If checked, use 'rest machining'.\n"
"Basically it will process copper outside PCB features,\n"
@@ -10536,19 +10821,19 @@ msgid ""
"If not checked, use the standard algorithm."
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 appPlugins/ToolIsolation.py:3765
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:275 appPlugins/ToolIsolation.py:3811
msgid "Combine"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 appPlugins/ToolIsolation.py:3767
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:277 appPlugins/ToolIsolation.py:3813
msgid "Combine all passes into one object"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:283 appPlugins/ToolIsolation.py:3784
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:283 appPlugins/ToolIsolation.py:3846
msgid "Except"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:284 appPlugins/ToolIsolation.py:3785
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:284 appPlugins/ToolIsolation.py:3847
msgid ""
"When the isolation geometry is generated,\n"
"by checking this, the area of the object below\n"
@@ -10556,20 +10841,20 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:290
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:349 appPlugins/ToolIsolation.py:3774
-#: appPlugins/ToolNCC.py:4612
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:349 appPlugins/ToolIsolation.py:3820
+#: appPlugins/ToolNCC.py:4585
msgid "Check validity"
msgstr ""
#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:292
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:351 appPlugins/ToolIsolation.py:3776
-#: appPlugins/ToolNCC.py:4614
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:351 appPlugins/ToolIsolation.py:3822
+#: appPlugins/ToolNCC.py:4587
msgid ""
"If checked then the tools diameters are verified\n"
"if they will provide a complete isolation."
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:301 appPlugins/ToolIsolation.py:3824
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:315 appPlugins/ToolIsolation.py:3886
msgid ""
"Isolation scope. Choose what to isolate:\n"
"- 'All' -> Isolate all the polygons in the object\n"
@@ -10578,40 +10863,40 @@ msgid ""
"- 'Reference Object' - will process the area specified by another object."
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:309
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279 appPlugins/ToolIsolation.py:3832
-#: appPlugins/ToolPaint.py:3316
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:323
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:279 appPlugins/ToolIsolation.py:3894
+#: appPlugins/ToolPaint.py:3297
msgid "Polygon Selection"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:328 appPlugins/ToolIsolation.py:3860
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:342 appPlugins/ToolIsolation.py:3922
msgid "Interiors"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:330 appPlugins/ToolIsolation.py:3862
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:344 appPlugins/ToolIsolation.py:3924
msgid ""
"When checked the user can select interiors of a polygon.\n"
"(holes in the polygon)."
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:335 appPlugins/ToolIsolation.py:3755
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:349 appPlugins/ToolIsolation.py:3801
msgid "Forced Rest"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:337 appPlugins/ToolIsolation.py:3757
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:351 appPlugins/ToolIsolation.py:3803
msgid ""
"When checked the isolation will be done with the current tool even if\n"
"interiors of a polygon (holes in the polygon) could not be isolated.\n"
"Works when 'rest machining' is used."
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:351
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:365
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
msgid "Progressive"
msgstr ""
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:354
+#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:368
#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:342
#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
msgid ""
@@ -10623,84 +10908,72 @@ msgstr ""
msgid "Levelling Plugin"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:42 appPlugins/ToolLevelling.py:1917
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:42 appPlugins/ToolLevelling.py:1898
msgid ""
"Choose a mode for height map generation.\n"
"- Manual: will pick a selection of probe points by clicking on canvas\n"
"- Grid: will automatically generate a grid of probe points"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:49 appPlugins/ToolLevelling.py:1924
-#: appMain.py:8617
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:49 appMain.py:8645
+#: appPlugins/ToolLevelling.py:1905
msgid "Grid"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:56 appPlugins/ToolLevelling.py:1931
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:56 appPlugins/ToolLevelling.py:1912
msgid ""
"Choose a method for approximation of heights from autolevelling data.\n"
"- Voronoi: will generate a Voronoi diagram\n"
"- Bilinear: will use bilinear interpolation. Usable only for grid mode."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:62 appPlugins/ToolLevelling.py:1937
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:62 appPlugins/ToolLevelling.py:1918
msgid "Voronoi"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:63 appPlugins/ToolLevelling.py:1938
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:63 appPlugins/ToolLevelling.py:1919
msgid "Bilinear"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:71
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:74 appPlugins/ToolLevelling.py:1951
-#: appPlugins/ToolPanelize.py:1329
-msgid "Columns"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:73 appPlugins/ToolLevelling.py:1953
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:73 appPlugins/ToolLevelling.py:1934
msgid "The number of grid columns."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:81
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:86 appPlugins/ToolLevelling.py:1962
-#: appPlugins/ToolPanelize.py:1340
-msgid "Rows"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:83 appPlugins/ToolLevelling.py:1964
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:83 appPlugins/ToolLevelling.py:1945
msgid "The number of grid rows."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:89 appPlugins/ToolLevelling.py:1874
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:89 appPlugins/ToolLevelling.py:1855
msgid "Probe Z travel"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:91 appPlugins/ToolLevelling.py:1876
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:91 appPlugins/ToolLevelling.py:1857
msgid "The safe Z for probe travelling between probe points."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:114 appPlugins/ToolLevelling.py:1899
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:114 appPlugins/ToolLevelling.py:1880
msgid "Probe Feedrate"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:130 appPlugins/ToolLevelling.py:1975
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:130 appPlugins/ToolLevelling.py:1956
msgid "Controller"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:132 appPlugins/ToolLevelling.py:1977
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:132 appPlugins/ToolLevelling.py:1958
msgid ""
"The kind of controller for which to generate\n"
"height map gcode."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:142 appPlugins/ToolLevelling.py:2210
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:142 appPlugins/ToolLevelling.py:2191
msgid "Step"
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:144 appPlugins/ToolLevelling.py:2212
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:144 appPlugins/ToolLevelling.py:2193
msgid "Each jog action will move the axes with this value."
msgstr ""
-#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:157 appPlugins/ToolLevelling.py:2226
+#: appGUI/preferences/tools/ToolsLevelPrefGroupUI.py:157 appPlugins/ToolLevelling.py:2207
msgid "Feedrate when jogging."
msgstr ""
@@ -10713,31 +10986,31 @@ msgid "Markers Options"
msgstr ""
#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:42
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:96 appPlugins/ToolMarkers.py:1222
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:96 appPlugins/ToolMarkers.py:1296
msgid "Shape of the marker."
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:46 appPlugins/ToolMarkers.py:1226
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:46 appPlugins/ToolMarkers.py:1300
msgid "Semi-Cross"
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:56 appPlugins/ToolMarkers.py:1236
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:56 appPlugins/ToolMarkers.py:1310
msgid "The thickness of the line that makes the corner marker."
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:70 appPlugins/ToolMarkers.py:1250
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:70 appPlugins/ToolMarkers.py:1324
msgid "The length of the line that makes the corner marker."
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:83 appPlugins/ToolMarkers.py:1423
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:83 appPlugins/ToolMarkers.py:1511
msgid "Drill Diameter"
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:100 appPlugins/ToolMarkers.py:1282
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:100 appPlugins/ToolMarkers.py:1356
msgid "Edge"
msgstr ""
-#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:108 appPlugins/ToolMarkers.py:1264
+#: appGUI/preferences/tools/ToolsMarkersPrefGroupUI.py:108 appPlugins/ToolMarkers.py:1338
msgid "Offset locations from the set reference."
msgstr ""
@@ -10745,7 +11018,7 @@ msgstr ""
msgid "Milling Plugin"
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:30 appPlugins/ToolMilling.py:3955
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:30 appPlugins/ToolMilling.py:3922
msgid "Create CNCJob with toolpaths for milling either Geometry or drill holes."
msgstr ""
@@ -10761,7 +11034,7 @@ msgid ""
"in the Machine Code (Pause for tool change)."
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:200 appPlugins/ToolMilling.py:4645
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:200 appPlugins/ToolMilling.py:4612
msgid ""
"Cutting speed in the XY\n"
"plane in units per minute"
@@ -10788,9 +11061,8 @@ msgid ""
msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:305
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: appPlugins/ToolCalibration.py:845 appPlugins/ToolDrilling.py:2803
-#: appPlugins/ToolMilling.py:4834
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:149
+#: appPlugins/ToolDrilling.py:2783 appPlugins/ToolMilling.py:4801
msgid "Toolchange X-Y"
msgstr ""
@@ -10803,13 +11075,13 @@ msgid ""
"ignore for any other cases."
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:344 appPlugins/ToolMilling.py:4700
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:344 appPlugins/ToolMilling.py:4667
msgid "Re-cut"
msgstr ""
#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:346
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:358 appPlugins/ToolMilling.py:4702
-#: appPlugins/ToolMilling.py:4715
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:358 appPlugins/ToolMilling.py:4669
+#: appPlugins/ToolMilling.py:4682
msgid ""
"In order to remove possible\n"
"copper leftovers where first cut\n"
@@ -10827,7 +11099,7 @@ msgid ""
"A metallic brush will clean the material after milling."
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:548 appPlugins/ToolMilling.py:4517
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:548 appPlugins/ToolMilling.py:4484
msgid ""
"Algorithm for polishing:\n"
"- Standard: Fixed step inwards.\n"
@@ -10843,7 +11115,7 @@ msgstr ""
msgid "Will mill Excellon holes progressively from the center of the hole."
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:580 appPlugins/ToolMilling.py:4318
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:580 appPlugins/ToolMilling.py:4285
msgid ""
"Milling type:\n"
"- Drills -> will mill the drills associated with this tool\n"
@@ -10851,7 +11123,7 @@ msgid ""
"- Both -> will mill both drills and mills or whatever is available"
msgstr ""
-#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:600 appPlugins/ToolMilling.py:4338
+#: appGUI/preferences/tools/ToolsMillPrefGroupUI.py:600 appPlugins/ToolMilling.py:4305
msgid "The diameter of the tool who will do the milling"
msgstr ""
@@ -10869,7 +11141,7 @@ msgstr ""
msgid "Offset value"
msgstr ""
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:312 appPlugins/ToolNCC.py:4565
+#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:312 appPlugins/ToolNCC.py:4538
msgid ""
"Selection of area to be processed.\n"
"- 'Itself' - the processing extent is based on the object that is processed.\n"
@@ -10881,7 +11153,7 @@ msgstr ""
msgid "Paint Plugin"
msgstr ""
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:259 appPlugins/ToolPaint.py:3306
+#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:259 appPlugins/ToolPaint.py:3287
msgid ""
"Selection of area to be processed.\n"
"- 'Polygon Selection' - left mouse click to add/remove polygons to be processed.\n"
@@ -10902,50 +11174,22 @@ msgid ""
"at a X distance, Y distance of each other."
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:47 appPlugins/ToolPanelize.py:1304
-msgid "Spacing cols"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:49 appPlugins/ToolPanelize.py:1306
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:61 appPlugins/ToolPanelize.py:1317
-msgid "Spacing rows"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:63 appPlugins/ToolPanelize.py:1319
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:76 appPlugins/ToolPanelize.py:1331
-msgid "Number of columns of the desired panel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:88 appPlugins/ToolPanelize.py:1342
-msgid "Number of rows of the desired panel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:95 appPlugins/ToolPanelize.py:1362
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:95 appPlugins/ToolPanelize.py:1346
msgid "Geo"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:96 appPlugins/ToolPanelize.py:1363
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:96 appPlugins/ToolPanelize.py:1347
msgid "Panel Type"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 appPlugins/ToolPanelize.py:1365
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98 appPlugins/ToolPanelize.py:1349
msgid ""
"Choose the type of object for the panel object:\n"
"- Gerber\n"
"- Geometry"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:109 appPlugins/ToolPanelize.py:1375
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:109 appPlugins/ToolPanelize.py:1359
msgid ""
"Active only for Geometry panel type.\n"
"When checked the application will find\n"
@@ -10957,7 +11201,7 @@ msgstr ""
msgid "Constrain within"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:119 appPlugins/ToolPanelize.py:1385
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:119 appPlugins/ToolPanelize.py:1369
msgid ""
"Area define by DX and DY within to constrain the panel.\n"
"DX and DY values are in current units.\n"
@@ -10966,21 +11210,21 @@ msgid ""
"they fit completely within selected area."
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:132 appPlugins/ToolPanelize.py:1397
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:132 appPlugins/ToolPanelize.py:1381
msgid "Width (DX)"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:134 appPlugins/ToolPanelize.py:1399
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:134 appPlugins/ToolPanelize.py:1383
msgid ""
"The width (DX) within which the panel must fit.\n"
"In current units."
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:145 appPlugins/ToolPanelize.py:1409
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:145 appPlugins/ToolPanelize.py:1393
msgid "Height (DY)"
msgstr ""
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:147 appPlugins/ToolPanelize.py:1411
+#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:147 appPlugins/ToolPanelize.py:1395
msgid ""
"The height (DY)within which the panel must fit.\n"
"In current units."
@@ -11001,132 +11245,147 @@ msgid "New Nozzle Dia"
msgstr ""
#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: appPlugins/ToolSolderPaste.py:1286
+#: appPlugins/ToolSolderPaste.py:1320
msgid "Diameter for the new tool to add in the Tool Table"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-msgid "Z Dispense Start"
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:69
+#: appPlugins/ToolSolderPaste.py:1369
+msgid "Offset from the boundary."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: appPlugins/ToolSolderPaste.py:1366
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: appPlugins/ToolSolderPaste.py:1477
-msgid "Z Dispense"
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:70
+#: appPlugins/ToolSolderPaste.py:1370
+msgid "Fraction of tool diameter."
msgstr ""
#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: appPlugins/ToolSolderPaste.py:1379
-msgid "The height (Z) when doing solder paste dispensing."
+msgid "Z Dispense Start"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-msgid "Z Dispense Stop"
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:89
+#: appPlugins/ToolSolderPaste.py:1415
+msgid "The height (Z) when solder paste dispensing starts."
msgstr ""
#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: appPlugins/ToolSolderPaste.py:1392
-msgid "The height (Z) when solder paste dispensing stops."
+#: appPlugins/ToolSolderPaste.py:1540
+msgid "Z Dispense"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-msgid "Z Travel"
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:102
+#: appPlugins/ToolSolderPaste.py:1428
+msgid "The height (Z) when doing solder paste dispensing."
msgstr ""
#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: appPlugins/ToolSolderPaste.py:1340
+msgid "Z Dispense Stop"
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:115
+#: appPlugins/ToolSolderPaste.py:1441
+msgid "The height (Z) when solder paste dispensing stops."
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:126
+msgid "Z Travel"
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:128
+#: appPlugins/ToolSolderPaste.py:1389
msgid ""
"The height (Z) for travel between pads\n"
"(without dispensing solder paste)."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:140
msgid "Z Toolchange"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: appPlugins/ToolSolderPaste.py:1427
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:142
+#: appPlugins/ToolSolderPaste.py:1476
msgid "The height (Z) for tool (nozzle) change."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: appPlugins/ToolSolderPaste.py:1413
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:151
+#: appPlugins/ToolSolderPaste.py:1462
msgid ""
"The X,Y location for tool (nozzle) change.\n"
"The format is (x, y) where x and y are real numbers."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: appPlugins/ToolSolderPaste.py:1452
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:165
+#: appPlugins/ToolSolderPaste.py:1501
msgid "Feedrate (speed) while moving on the X-Y plane."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: appPlugins/ToolSolderPaste.py:1465
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:173
+#: appPlugins/ToolSolderPaste.py:1509
+msgid "Feedrate while moving as fast as possible."
+msgstr ""
+
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:192
+#: appPlugins/ToolSolderPaste.py:1528
msgid ""
"Feedrate (speed) while moving vertically\n"
"(on Z plane)."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
msgid "Feedrate Z Dispense"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-#: appPlugins/ToolSolderPaste.py:1479
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:206
+#: appPlugins/ToolSolderPaste.py:1542
msgid ""
"Feedrate (speed) while moving up vertically\n"
"to Dispense position (on Z plane)."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:217
msgid "Spindle Speed FWD"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: appPlugins/ToolSolderPaste.py:1504
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:219
+#: appPlugins/ToolSolderPaste.py:1567
msgid ""
"The dispenser speed while pushing solder paste\n"
"through the dispenser nozzle."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:231
msgid "Dwell FWD"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: appPlugins/ToolSolderPaste.py:1518
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:233
+#: appPlugins/ToolSolderPaste.py:1581
msgid "Pause after solder dispensing."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:243
msgid "Spindle Speed REV"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: appPlugins/ToolSolderPaste.py:1541
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:245
+#: appPlugins/ToolSolderPaste.py:1604
msgid ""
"The dispenser speed while retracting solder paste\n"
"through the dispenser nozzle."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:257
msgid "Dwell REV"
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: appPlugins/ToolSolderPaste.py:1555
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:259
+#: appPlugins/ToolSolderPaste.py:1618
msgid ""
"Pause after solder paste dispenser retracted,\n"
"to allow pressure equilibrium."
msgstr ""
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: appPlugins/ToolSolderPaste.py:1572
+#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:268
+#: appPlugins/ToolSolderPaste.py:1641
msgid "Files that control the GCode generation."
msgstr ""
@@ -11140,19 +11399,19 @@ msgid ""
"from another of the same type."
msgstr ""
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:37 appPlugins/ToolSub.py:951
+#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:37 appPlugins/ToolSub.py:940
msgid "Close paths"
msgstr ""
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 appPlugins/ToolSub.py:952
+#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 appPlugins/ToolSub.py:941
msgid "Checking this will close the paths cut by the subtractor object."
msgstr ""
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:41 appPlugins/ToolSub.py:831
+#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:41 appPlugins/ToolSub.py:820
msgid "Delete source"
msgstr ""
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:43 appPlugins/ToolSub.py:833
+#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:43 appPlugins/ToolSub.py:822
msgid ""
"When checked will delete the source objects\n"
"after a successful operation."
@@ -11168,7 +11427,7 @@ msgid ""
"on a application object."
msgstr ""
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 appPlugins/ToolTransform.py:616
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 appPlugins/ToolTransform.py:607
msgid ""
"The reference point for Rotate, Skew, Scale, Mirror.\n"
"Can be:\n"
@@ -11178,13 +11437,12 @@ msgid ""
"- Object -> the center of the bounding box of a specific object"
msgstr ""
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:70 appPlugins/ToolTransform.py:648
+#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:70 appPlugins/ToolTransform.py:639
msgid "The type of object used as reference."
msgstr ""
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:145
#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:159
-#: appPlugins/ToolCalibration.py:1225 appPlugins/ToolCalibration.py:1238
msgid ""
"Angle, in degrees.\n"
"Float number between -360 and 359."
@@ -11208,8 +11466,8 @@ msgstr ""
#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:37
#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:28
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 appPlugins/ToolDrilling.py:3002
-#: appPlugins/ToolMilling.py:5068
+#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:27 appPlugins/ToolDrilling.py:2982
+#: appPlugins/ToolMilling.py:5035
msgid "Delete All"
msgstr ""
@@ -11340,6 +11598,1145 @@ msgstr ""
msgid "Gerber File associations"
msgstr ""
+#: appMain.py:955
+msgid "The application is initializing ..."
+msgstr ""
+
+#: appMain.py:979
+msgid "Could not find the Language files. The App strings are missing."
+msgstr ""
+
+#: appMain.py:1156
+msgid ""
+"The application is initializing ...\n"
+"Canvas initialization started."
+msgstr ""
+
+#: appMain.py:1197
+msgid ""
+"The application is initializing ...\n"
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+
+#: appMain.py:1351 appMain.py:10375
+msgid "New Project - Not saved"
+msgstr ""
+
+#: appMain.py:1681
+msgid "Found old default preferences files. Please reboot the application to update."
+msgstr ""
+
+#: appMain.py:1748
+msgid "Open Config file failed."
+msgstr ""
+
+#: appMain.py:1763
+msgid "Open Script file failed."
+msgstr ""
+
+#: appMain.py:1790
+msgid "Open Excellon file failed."
+msgstr ""
+
+#: appMain.py:1803
+msgid "Open GCode file failed."
+msgstr ""
+
+#: appMain.py:1816
+msgid "Open Gerber file failed."
+msgstr ""
+
+#: appMain.py:2586 appMain.py:2602 appMain.py:2645 appMain.py:2661 appMain.py:2680
+msgid "The Editor could not start."
+msgstr ""
+
+#: appMain.py:2586 appMain.py:5307 appMain.py:5788 appMain.py:6197 appMain.py:6281
+#: appMain.py:6461 appMain.py:6770 appMain.py:6969 appMain.py:7015 appMain.py:7062
+#: appMain.py:7117 appMain.py:7165 appMain.py:7323 appMain.py:9765 appMain.py:9862
+#: appMain.py:9904 appMain.py:9946 appMain.py:9988 appMain.py:10029 appMain.py:10074
+#: appMain.py:10119 appMain.py:10635 appPlugins/ToolDblSided.py:498
+#: appPlugins/ToolDblSided.py:586 appPlugins/ToolExtract.py:408
+#: appPlugins/ToolExtract.py:723 appPlugins/ToolExtract.py:826 appPlugins/ToolFilm.py:302
+#: appPlugins/ToolFilm.py:309 appPlugins/ToolFilm.py:313 appPlugins/ToolMilling.py:2041
+#: appPlugins/ToolMove.py:195 appPlugins/ToolPunchGerber.py:533
+#: appPlugins/ToolPunchGerber.py:537 appPlugins/ToolReport.py:127
+#: appPlugins/ToolTransform.py:167 appPlugins/ToolTransform.py:318
+#: appPlugins/ToolTransform.py:350 appPlugins/ToolTransform.py:395
+#: appPlugins/ToolTransform.py:429 appPlugins/ToolTransform.py:464
+#: appPlugins/ToolTransform.py:501 camlib.py:2463 camlib.py:2536 camlib.py:2604
+#: camlib.py:2679
+msgid "No object is selected."
+msgstr ""
+
+#: appMain.py:2593
+msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
+msgstr ""
+
+#: appMain.py:2618
+msgid ""
+"Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n"
+"Edit only one geometry at a time."
+msgstr ""
+
+#: appMain.py:2625 appPlugins/ToolDrilling.py:953 appPlugins/ToolDrilling.py:1233
+#: appPlugins/ToolDrilling.py:1272 appPlugins/ToolIsolation.py:842
+#: appPlugins/ToolIsolation.py:877 appPlugins/ToolMilling.py:1648
+#: appPlugins/ToolMilling.py:1717 appPlugins/ToolNCC.py:534 appPlugins/ToolNCC.py:569
+#: appPlugins/ToolPaint.py:493 appPlugins/ToolPaint.py:547
+msgid "No Tool Selected"
+msgstr ""
+
+#: appMain.py:2720
+msgid "EDITOR Area"
+msgstr ""
+
+#: appMain.py:2723
+msgid "Editor is activated ..."
+msgstr ""
+
+#: appMain.py:2748
+msgid "Do you want to save the changes?"
+msgstr ""
+
+#: appMain.py:2799
+msgid "Object empty after edit."
+msgstr ""
+
+#: appMain.py:2804 appMain.py:2822 appMain.py:2853 appMain.py:2869
+msgid "Editor exited. Editor content saved."
+msgstr ""
+
+#: appMain.py:2873 appMain.py:2925
+msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update."
+msgstr ""
+
+#: appMain.py:2883
+msgid "is updated, returning to App..."
+msgstr ""
+
+#: appMain.py:2900
+msgid "Editor exited. Editor content was not saved."
+msgstr ""
+
+#: appMain.py:2950
+msgid "Select a Gerber, Geometry, Excellon or CNCJob object to update."
+msgstr ""
+
+#: appMain.py:3093 appMain.py:3099
+msgid "Save to file"
+msgstr ""
+
+#: appMain.py:3140
+msgid "Exported file to"
+msgstr ""
+
+#: appMain.py:3177
+msgid "Failed to open recent files file for writing."
+msgstr ""
+
+#: appMain.py:3188
+msgid "Failed to open recent projects file for writing."
+msgstr ""
+
+#: appMain.py:3243
+msgid "PCB Manufacturing files Viewer/Editor with Plugins"
+msgstr ""
+
+#: appMain.py:3244
+msgid "Development"
+msgstr ""
+
+#: appMain.py:3245
+msgid "DOWNLOAD"
+msgstr ""
+
+#: appMain.py:3246
+msgid "Issue tracker"
+msgstr ""
+
+#: appMain.py:3250 appMain.py:3824 appMain.py:4007
+msgid "Close"
+msgstr ""
+
+#: appMain.py:3265
+msgid "Licensed under the MIT license"
+msgstr ""
+
+#: appMain.py:3274
+msgid ""
+"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
+"of this software and associated documentation files (the \"Software\"), to deal\n"
+"in the Software without restriction, including without limitation the rights\n"
+"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
+"copies of the Software, and to permit persons to whom the Software is\n"
+"furnished to do so, subject to the following conditions:\n"
+"\n"
+"The above copyright notice and this permission notice shall be included in\n"
+"all copies or substantial portions of the Software.\n"
+"\n"
+"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n"
+"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
+"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
+"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
+"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n"
+"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
+"THE SOFTWARE."
+msgstr ""
+
+#: appMain.py:3296
+msgid ""
+"Some of the icons used are from the following sources:
Icons by oNline Web Fonts"
+msgstr ""
+
+#: appMain.py:3332
+msgid "Splash"
+msgstr ""
+
+#: appMain.py:3338
+msgid "Programmers"
+msgstr ""
+
+#: appMain.py:3344
+msgid "Translators"
+msgstr ""
+
+#: appMain.py:3350
+msgid "License"
+msgstr ""
+
+#: appMain.py:3356
+msgid "Attributions"
+msgstr ""
+
+#: appMain.py:3601
+msgid "Programmer"
+msgstr ""
+
+#: appMain.py:3602
+msgid "Status"
+msgstr ""
+
+#: appMain.py:3603 appMain.py:3685
+msgid "E-mail"
+msgstr ""
+
+#: appMain.py:3607
+msgid "FlatCAM Author"
+msgstr ""
+
+#: appMain.py:3611
+msgid "FlatCAM Evo Author/Maintainer"
+msgstr ""
+
+#: appMain.py:3683
+msgid "Language"
+msgstr ""
+
+#: appMain.py:3684
+msgid "Translator"
+msgstr ""
+
+#: appMain.py:3792
+#, python-format
+msgid "This program is %s and free in a very wide meaning of the word."
+msgstr ""
+
+#: appMain.py:3793
+msgid "Yet it cannot evolve without
contributions."
+msgstr ""
+
+#: appMain.py:3794
+msgid "If you want to see this application grow and become better and better"
+msgstr ""
+
+#: appMain.py:3795
+msgid "you can
contribute to the development yourself by:"
+msgstr ""
+
+#: appMain.py:3796
+msgid "Pull Requests on the Bitbucket repository, if you are a developer"
+msgstr ""
+
+#: appMain.py:3798
+msgid "Bug Reports by providing the steps required to reproduce the bug"
+msgstr ""
+
+#: appMain.py:3800
+msgid "If you like what you have seen so far ..."
+msgstr ""
+
+#: appMain.py:3801
+msgid "Donations are NOT required."
+msgstr ""
+
+#: appMain.py:3801
+msgid "But they are welcomed"
+msgstr ""
+
+#: appMain.py:3832
+msgid "Contribute"
+msgstr ""
+
+#: appMain.py:3853
+msgid "Links Exchange"
+msgstr ""
+
+#: appMain.py:3866 appMain.py:3886
+msgid "Soon ..."
+msgstr ""
+
+#: appMain.py:3873
+msgid "How To's"
+msgstr ""
+
+#: appMain.py:3993
+msgid "Alternative website"
+msgstr ""
+
+#: appMain.py:3994
+msgid ""
+"This entry will resolve to another website if:\n"
+"\n"
+"1. FlatCAM.org website is down\n"
+"2. Someone forked FlatCAM project and wants to point\n"
+"to his own website\n"
+"\n"
+"If you can't get any informations about the application\n"
+"use the YouTube channel link from the Help menu."
+msgstr ""
+
+#: appMain.py:4028 appTranslation.py:217
+msgid ""
+"There are files/objects modified.\n"
+"Do you want to Save the project?"
+msgstr ""
+
+#: appMain.py:4351
+msgid "Selected Excellon file extensions registered with FlatCAM."
+msgstr ""
+
+#: appMain.py:4368
+msgid "Selected GCode file extensions registered with FlatCAM."
+msgstr ""
+
+#: appMain.py:4384
+msgid "Selected Gerber file extensions registered with FlatCAM."
+msgstr ""
+
+#: appMain.py:4572 appMain.py:4635 appMain.py:4666
+msgid "At least two objects are required for join. Objects currently selected"
+msgstr ""
+
+#: appMain.py:4581
+msgid ""
+"Failed join. The Geometry objects are of different types.\n"
+"At least one is MultiGeo type and the other is SingleGeo type. A possibility is to "
+"convert from one to another and retry joining \n"
+"but in the case of converting from MultiGeo to SingleGeo, informations may be lost and "
+"the result may not be what was expected. \n"
+"Check the generated GCODE."
+msgstr ""
+
+#: appMain.py:4596 appMain.py:4607
+msgid "Geometry merging finished"
+msgstr ""
+
+#: appMain.py:4630
+msgid "Failed. Excellon joining works only on Excellon objects."
+msgstr ""
+
+#: appMain.py:4643
+msgid "Excellon merging finished"
+msgstr ""
+
+#: appMain.py:4661
+msgid "Failed. Gerber joining works only on Gerber objects."
+msgstr ""
+
+#: appMain.py:4671
+msgid "Gerber merging finished"
+msgstr ""
+
+#: appMain.py:4691 appMain.py:4727
+msgid "Failed. Select a Geometry Object and try again."
+msgstr ""
+
+#: appMain.py:4695 appMain.py:4731
+msgid "Expected a GeometryObject, got"
+msgstr ""
+
+#: appMain.py:4710
+msgid "A Geometry object was converted to MultiGeo type."
+msgstr ""
+
+#: appMain.py:4748
+msgid "A Geometry object was converted to SingleGeo type."
+msgstr ""
+
+#: appMain.py:4981
+msgid "Units cannot be changed while the editor is active."
+msgstr ""
+
+#: appMain.py:4990
+msgid ""
+"Changing the units of the project\n"
+"will scale all objects.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+
+#: appMain.py:5044
+msgid "Converted units to"
+msgstr ""
+
+#: appMain.py:5078
+msgid "Workspace enabled."
+msgstr ""
+
+#: appMain.py:5081
+msgid "Workspace disabled."
+msgstr ""
+
+#: appMain.py:5103
+msgid "FlatCAM log opened."
+msgstr ""
+
+#: appMain.py:5152 appPlugins/ToolCutOut.py:428 appPlugins/ToolIsolation.py:1009
+#: appPlugins/ToolIsolation.py:1331 appPlugins/ToolIsolation.py:1446
+#: appPlugins/ToolMilling.py:2063 appPlugins/ToolMilling.py:2176 appPlugins/ToolNCC.py:1183
+#: appPlugins/ToolNCC.py:1308 appPlugins/ToolNCC.py:1380 appPlugins/ToolPaint.py:661
+#: appPlugins/ToolPaint.py:829 appPlugins/ToolPaint.py:962 appPlugins/ToolSolderPaste.py:373
+#: appPlugins/ToolSolderPaste.py:559
+msgid "Please enter a tool diameter with non-zero value, in Float format."
+msgstr ""
+
+#: appMain.py:5162
+msgid "Tool adding ..."
+msgstr ""
+
+#: appMain.py:5163
+msgid ""
+"Adding Tool works only when Advanced is checked.\n"
+"Go to Preferences -> General - Show Advanced Options."
+msgstr ""
+
+#: appMain.py:5253
+msgid "Delete objects"
+msgstr ""
+
+#: appMain.py:5254
+msgid ""
+"Are you sure you want to permanently delete\n"
+"the selected objects?"
+msgstr ""
+
+#: appMain.py:5309
+msgid "Save the work in Editor and try again ..."
+msgstr ""
+
+#: appMain.py:5342
+msgid "Object deleted"
+msgstr ""
+
+#: appMain.py:5355
+msgid "Click to set the origin ..."
+msgstr ""
+
+#: appMain.py:5394
+msgid "Setting Origin..."
+msgstr ""
+
+#: appMain.py:5415 appMain.py:5536 appMain.py:5648
+msgid "Origin set"
+msgstr ""
+
+#: appMain.py:5435
+msgid "Origin coordinates specified but incomplete."
+msgstr ""
+
+#: appMain.py:5482
+msgid "Moving to Origin..."
+msgstr ""
+
+#: appMain.py:5486 appMain.py:5554
+msgid "Failed. No object(s) selected..."
+msgstr ""
+
+#: appMain.py:5558
+msgid "Quadrant 2"
+msgstr ""
+
+#: appMain.py:5559
+msgid "Quadrant 1"
+msgstr ""
+
+#: appMain.py:5560
+msgid "Quadrant 3"
+msgstr ""
+
+#: appMain.py:5561
+msgid "Quadrant 4"
+msgstr ""
+
+#: appMain.py:5685
+msgid "Jump to ..."
+msgstr ""
+
+#: appMain.py:5686 appMain.py:5946
+msgid "Enter the coordinates in format X,Y:"
+msgstr ""
+
+#: appMain.py:5697 appMain.py:5956
+msgid "Wrong coordinates. Enter coordinates in format: X,Y"
+msgstr ""
+
+#: appMain.py:5798
+msgid "Locate ..."
+msgstr ""
+
+#: appMain.py:5945
+msgid "Move to ..."
+msgstr ""
+
+#: appMain.py:6502 appMain.py:9413
+msgid "Aborting."
+msgstr ""
+
+#: appMain.py:6502
+msgid "The current task will be gracefully closed as soon as possible..."
+msgstr ""
+
+#: appMain.py:6509
+msgid "The current task was gracefully closed on user request..."
+msgstr ""
+
+#: appMain.py:6712
+msgid "Not available for Legacy 2D graphic mode."
+msgstr ""
+
+#: appMain.py:6781 appMain.py:6802 appPlugins/ToolCutOut.py:561
+#: appPlugins/ToolIsolation.py:2978 appPlugins/ToolNCC.py:3916 appPlugins/ToolPaint.py:2792
+msgid "Selected tool can't be used here. Pick another."
+msgstr ""
+
+#: appMain.py:6793 appMain.py:6812 appPlugins/ToolIsolation.py:2991
+#: appPlugins/ToolNCC.py:3929 appPlugins/ToolPaint.py:2805
+msgid "Tool from DB added in Tool Table."
+msgstr ""
+
+#: appMain.py:6814
+msgid "Adding tool from DB is not allowed for this object."
+msgstr ""
+
+#: appMain.py:6832
+msgid "Save Tools Database"
+msgstr ""
+
+#: appMain.py:6833
+msgid ""
+"One or more Tools are edited.\n"
+"Do you want to save?"
+msgstr ""
+
+#: appMain.py:7065 appMain.py:7119 appMain.py:7167
+msgid "Enter the Angle value:"
+msgstr ""
+
+#: appMain.py:7098
+msgid "Rotation done."
+msgstr ""
+
+#: appMain.py:7100
+msgid "Rotation movement was not executed."
+msgstr ""
+
+#: appMain.py:7149
+msgid "Skew on X axis done."
+msgstr ""
+
+#: appMain.py:7197
+msgid "Skew on Y axis done."
+msgstr ""
+
+#: appMain.py:7268
+msgid "New Grid ..."
+msgstr ""
+
+#: appMain.py:7269
+msgid "Enter a Grid Value:"
+msgstr ""
+
+#: appMain.py:7278 appMain.py:7303
+msgid "Please enter a grid value with non-zero value, in Float format."
+msgstr ""
+
+#: appMain.py:7283
+msgid "New Grid added"
+msgstr ""
+
+#: appMain.py:7285
+msgid "Grid already exists"
+msgstr ""
+
+#: appMain.py:7287
+msgid "Adding New Grid cancelled"
+msgstr ""
+
+#: appMain.py:7309
+msgid "Grid Value does not exist"
+msgstr ""
+
+#: appMain.py:7311
+msgid "Grid Value deleted"
+msgstr ""
+
+#: appMain.py:7313
+msgid "Delete Grid value cancelled"
+msgstr ""
+
+#: appMain.py:7327
+msgid "Name copied to clipboard ..."
+msgstr ""
+
+#: appMain.py:7883 appMain.py:7889 appMain.py:7895 appMain.py:7901
+#: appObjects/ObjectCollection.py:991 appObjects/ObjectCollection.py:997
+#: appObjects/ObjectCollection.py:1003 appObjects/ObjectCollection.py:1009
+#: appObjects/ObjectCollection.py:1015 appObjects/ObjectCollection.py:1021
+msgid "selected"
+msgstr ""
+
+#: appMain.py:8232 appMain.py:8236
+msgid "Select an Gerber or Excellon file to view it's source file."
+msgstr ""
+
+#: appMain.py:8239
+msgid "Viewing the source code of the selected object."
+msgstr ""
+
+#: appMain.py:8253
+msgid "Source Editor"
+msgstr ""
+
+#: appMain.py:8289 appMain.py:8296
+msgid "There is no selected object for which to see it's source file code."
+msgstr ""
+
+#: appMain.py:8305
+msgid "Failed to load the source code for the selected object"
+msgstr ""
+
+#: appMain.py:8338
+msgid "Go to Line ..."
+msgstr ""
+
+#: appMain.py:8339
+msgid "Line"
+msgstr ""
+
+#: appMain.py:8373
+msgid "Redrawing all objects"
+msgstr ""
+
+#: appMain.py:8470
+msgid "Failed to load recent item list."
+msgstr ""
+
+#: appMain.py:8477
+msgid "Failed to parse recent item list."
+msgstr ""
+
+#: appMain.py:8487
+msgid "Failed to load recent projects item list."
+msgstr ""
+
+#: appMain.py:8494
+msgid "Failed to parse recent project item list."
+msgstr ""
+
+#: appMain.py:8518
+msgid "Recent files list was reset."
+msgstr ""
+
+#: appMain.py:8532
+msgid "Recent projects list was reset."
+msgstr ""
+
+#: appMain.py:8557
+msgid "Clear Recent projects"
+msgstr ""
+
+#: appMain.py:8581
+msgid "Clear Recent files"
+msgstr ""
+
+#: appMain.py:8639
+msgid "FlatCAM Evo"
+msgstr ""
+
+#: appMain.py:8643
+msgid "Release date"
+msgstr ""
+
+#: appMain.py:8647
+msgid "Displayed"
+msgstr ""
+
+#: appMain.py:8659
+msgid "Canvas"
+msgstr ""
+
+#: appMain.py:8664
+msgid "Workspace active"
+msgstr ""
+
+#: appMain.py:8668
+msgid "Workspace size"
+msgstr ""
+
+#: appMain.py:8672
+msgid "Workspace orientation"
+msgstr ""
+
+#: appMain.py:8734
+msgid "Failed checking for latest version. Could not connect."
+msgstr ""
+
+#: appMain.py:8741
+msgid "Could not parse information about latest version."
+msgstr ""
+
+#: appMain.py:8751
+msgid "The application is up to date!"
+msgstr ""
+
+#: appMain.py:8755
+msgid "Newer Version Available"
+msgstr ""
+
+#: appMain.py:8757
+msgid "There is a newer version available for download:"
+msgstr ""
+
+#: appMain.py:8787
+msgid ""
+"OpenGL canvas initialization failed. HW or HW configuration not supported.Change the "
+"graphic engine to Legacy(2D) in Edit -> Preferences -> General tab.\n"
+"\n"
+msgstr ""
+
+#: appMain.py:8878
+msgid "All plots disabled."
+msgstr ""
+
+#: appMain.py:8884
+msgid "All non selected plots disabled."
+msgstr ""
+
+#: appMain.py:8890
+msgid "All plots enabled."
+msgstr ""
+
+#: appMain.py:8896
+msgid "All non selected plots enabled."
+msgstr ""
+
+#: appMain.py:8904
+msgid "Selected plots enabled..."
+msgstr ""
+
+#: appMain.py:8912
+msgid "Selected plots disabled..."
+msgstr ""
+
+#: appMain.py:8954
+msgid "Enabling plots ..."
+msgstr ""
+
+#: appMain.py:9007
+msgid "Disabling plots ..."
+msgstr ""
+
+#: appMain.py:9175
+msgid "Set alpha level ..."
+msgstr ""
+
+#: appMain.py:9574 appMain.py:9612 appMain.py:9655 appMain.py:9719 appMain.py:10498
+#: appMain.py:11870 appMain.py:11938
+msgid ""
+"Canvas initialization started.\n"
+"Canvas initialization finished in"
+msgstr ""
+
+#: appMain.py:9577
+msgid "Opening Gerber file."
+msgstr ""
+
+#: appMain.py:9615
+msgid "Opening Excellon file."
+msgstr ""
+
+#: appMain.py:9658
+msgid "Opening G-Code file."
+msgstr ""
+
+#: appMain.py:9710 appMain.py:9714
+msgid "Open HPGL2"
+msgstr ""
+
+#: appMain.py:9722
+msgid "Opening HPGL2 file."
+msgstr ""
+
+#: appMain.py:9744 appMain.py:9747
+msgid "Open Configuration File"
+msgstr ""
+
+#: appMain.py:9773
+msgid "Only Geometry, Gerber and CNCJob objects can be used."
+msgstr ""
+
+#: appMain.py:9823
+msgid "Data must be a 3D array with last dimension 3 or 4"
+msgstr ""
+
+#: appMain.py:9829 appMain.py:9834
+msgid "Export PNG Image"
+msgstr ""
+
+#: appMain.py:9867 appMain.py:10079
+msgid "Failed. Only Gerber objects can be saved as Gerber files..."
+msgstr ""
+
+#: appMain.py:9880
+msgid "Save Gerber source file"
+msgstr ""
+
+#: appMain.py:9909
+msgid "Failed. Only Script objects can be saved as TCL Script files..."
+msgstr ""
+
+#: appMain.py:9922
+msgid "Save Script source file"
+msgstr ""
+
+#: appMain.py:9951
+msgid "Failed. Only Document objects can be saved as Document files..."
+msgstr ""
+
+#: appMain.py:9964
+msgid "Save Document source file"
+msgstr ""
+
+#: appMain.py:9993 appMain.py:10034 appMain.py:11023
+msgid "Failed. Only Excellon objects can be saved as Excellon files..."
+msgstr ""
+
+#: appMain.py:10001 appMain.py:10006
+msgid "Save Excellon source file"
+msgstr ""
+
+#: appMain.py:10124
+msgid "Only Geometry objects can be used."
+msgstr ""
+
+#: appMain.py:10175 appMain.py:10179
+msgid "Import SVG"
+msgstr ""
+
+#: appMain.py:10205 appMain.py:10209
+msgid "Import DXF"
+msgstr ""
+
+#: appMain.py:10236
+msgid ""
+"There are files/objects opened.\n"
+"Creating a New project will delete them.\n"
+"Do you want to Save the project?"
+msgstr ""
+
+#: appMain.py:10322 appMain.py:10350 appMain.py:10374 appMain.py:10395
+msgid "seconds"
+msgstr ""
+
+#: appMain.py:10374
+msgid "Project created in"
+msgstr ""
+
+#: appMain.py:10377
+msgid "New Project created"
+msgstr ""
+
+#: appMain.py:10407
+msgid "New TCL script file created in Code Editor."
+msgstr ""
+
+#: appMain.py:10434 appMain.py:10436 appMain.py:10471 appMain.py:10473
+msgid "Open TCL script"
+msgstr ""
+
+#: appMain.py:10500
+msgid "Executing ScriptObject file."
+msgstr ""
+
+#: appMain.py:10508 appMain.py:10512
+msgid "Run TCL script"
+msgstr ""
+
+#: appMain.py:10535
+msgid "TCL script file opened in Code Editor and executed."
+msgstr ""
+
+#: appMain.py:10583 appMain.py:10590
+msgid "Save Project As ..."
+msgstr ""
+
+#: appMain.py:10627
+msgid "General_print"
+msgstr ""
+
+#: appMain.py:10635
+msgid "Print everything in the workspace."
+msgstr ""
+
+#: appMain.py:10641 appMain.py:10649
+msgid "Save Object as PDF ..."
+msgstr ""
+
+#: appMain.py:10659
+msgid "Printing PDF ..."
+msgstr ""
+
+#: appMain.py:10848
+msgid "PDF file saved to"
+msgstr ""
+
+#: appMain.py:10870 appMain.py:11130 appMain.py:11264 appMain.py:11331
+msgid "Exporting ..."
+msgstr ""
+
+#: appMain.py:10913
+msgid "SVG file exported to"
+msgstr ""
+
+#: appMain.py:10928 appMain.py:10932
+msgid "Import FlatCAM Preferences"
+msgstr ""
+
+#: appMain.py:10943
+msgid "Imported Defaults from"
+msgstr ""
+
+#: appMain.py:10962 appMain.py:10968
+msgid "Export FlatCAM Preferences"
+msgstr ""
+
+#: appMain.py:10988
+msgid "Exported preferences to"
+msgstr ""
+
+#: appMain.py:11121
+msgid "Excellon file exported to"
+msgstr ""
+
+#: appMain.py:11135 appMain.py:11142 appMain.py:11269 appMain.py:11276 appMain.py:11336
+#: appMain.py:11343
+msgid "Could not export."
+msgstr ""
+
+#: appMain.py:11256
+msgid "Gerber file exported to"
+msgstr ""
+
+#: appMain.py:11322
+msgid "DXF file exported to"
+msgstr ""
+
+#: appMain.py:11361 appMain.py:11417 appMain.py:11512 appMain.py:11551 appMain.py:11619
+#: appMain.py:11836 appMain.py:11926 appPlugins/ToolImage.py:245 appPlugins/ToolPDF.py:96
+msgid "File no longer available."
+msgstr ""
+
+#: appMain.py:11371 appMain.py:11427
+msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported"
+msgstr ""
+
+#: appMain.py:11388 appMain.py:11445 appMain.py:11533 appMain.py:11602 appMain.py:11732
+#: appMain.py:11797 appMain.py:11857 appPlugins/ToolImage.py:343 appPlugins/ToolPDF.py:212
+msgid "Opened"
+msgstr ""
+
+#: appMain.py:11390 appMain.py:11447 appPlugins/ToolImage.py:328
+#: appPlugins/ToolPcbWizard.py:362 tclCommands/TclCommandImportSvg.py:84
+msgid "Importing"
+msgstr ""
+
+#: appMain.py:11398 appMain.py:11455
+msgid "Import failed."
+msgstr ""
+
+#: appMain.py:11489 appMain.py:11756 appMain.py:11821
+msgid "Failed to open file"
+msgstr ""
+
+#: appMain.py:11492 appMain.py:11759 appMain.py:11824
+msgid "Failed to parse file"
+msgstr ""
+
+#: appMain.py:11504
+msgid "Object is not Gerber file or empty. Aborting object creation."
+msgstr ""
+
+#: appMain.py:11515 appMain.py:11585 appMain.py:11709 appMain.py:11783 appMain.py:11839
+#: tclCommands/TclCommandOpenDXF.py:90
+msgid "Opening"
+msgstr ""
+
+#: appMain.py:11526
+msgid "Open Gerber failed. Probable not a Gerber file."
+msgstr ""
+
+#: appMain.py:11561 appPlugins/ToolPcbWizard.py:335
+msgid "This is not Excellon file."
+msgstr ""
+
+#: appMain.py:11564
+msgid "Cannot open file"
+msgstr ""
+
+#: appMain.py:11582 appPlugins/ToolPDF.py:270 appPlugins/ToolPcbWizard.py:357
+msgid "No geometry found in file"
+msgstr ""
+
+#: appMain.py:11595
+msgid "Open Excellon file failed. Probable not an Excellon file."
+msgstr ""
+
+#: appMain.py:11631
+msgid "Reading GCode file"
+msgstr ""
+
+#: appMain.py:11637 appPlugins/ToolPDF.py:194
+msgid "Failed to open"
+msgstr ""
+
+#: appMain.py:11698
+msgid "This is not GCODE"
+msgstr ""
+
+#: appMain.py:11722
+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 ""
+
+#: appMain.py:11778
+msgid "Object is not HPGL2 file or empty. Aborting object creation."
+msgstr ""
+
+#: appMain.py:11790
+msgid "Failed. Probable not a HPGL2 file."
+msgstr ""
+
+#: appMain.py:11816
+msgid "TCL script file opened in Code Editor."
+msgstr ""
+
+#: appMain.py:11850
+msgid "Failed to open TCL Script."
+msgstr ""
+
+#: appMain.py:11873
+msgid "Opening FlatCAM Config file."
+msgstr ""
+
+#: appMain.py:11900
+msgid "Failed to open config file"
+msgstr ""
+
+#: appMain.py:11935
+msgid "Loading Project ... Please Wait ..."
+msgstr ""
+
+#: appMain.py:11941
+msgid "Opening FlatCAM Project file."
+msgstr ""
+
+#: appMain.py:11946
+msgid "Parsing..."
+msgstr ""
+
+#: appMain.py:11958 appMain.py:11962 appMain.py:11980
+msgid "Failed to open project file"
+msgstr ""
+
+#: appMain.py:11996
+msgid "Legacy Project"
+msgstr ""
+
+#: appMain.py:11997
+msgid ""
+"The project was made with an older app version.\n"
+"It may not load correctly.\n"
+"\n"
+"Do you want to continue?"
+msgstr ""
+
+#: appMain.py:12035
+msgid "Import Settings"
+msgstr ""
+
+#: appMain.py:12036
+msgid "Do you want to import the loaded project settings?"
+msgstr ""
+
+#: appMain.py:12075
+msgid "Loading..."
+msgstr ""
+
+#: appMain.py:12166 appMain.py:12173
+msgid "Loading Project ... restoring"
+msgstr ""
+
+#: appMain.py:12181
+msgid "Project loaded from"
+msgstr ""
+
+#: appMain.py:12215
+msgid "Saving Project ..."
+msgstr ""
+
+#: appMain.py:12259 appMain.py:12315
+msgid "Project saved to"
+msgstr ""
+
+#: appMain.py:12270
+msgid "The object is used by another application."
+msgstr ""
+
+#: appMain.py:12290
+msgid "Failed to verify project file"
+msgstr ""
+
+#: appMain.py:12290 appMain.py:12299 appMain.py:12307 appMain.py:12320
+msgid "Retry to save it."
+msgstr ""
+
+#: appMain.py:12297 appMain.py:12305 appMain.py:12318
+msgid "Failed to parse saved project file"
+msgstr ""
+
+#: appMain.py:12355
+msgid "Save cancelled because source file is empty. Try to export the file."
+msgstr ""
+
#: appObjects/AppObject.py:171
#, python-brace-format
msgid ""
@@ -11382,294 +12779,285 @@ msgid ""
"Shell)."
msgstr ""
-#: appObjects/FlatCAMCNCJob.py:710 appPlugins/ToolLevelling.py:1495
-#: appPlugins/ToolLevelling.py:1687 appPlugins/ToolSolderPaste.py:1150
-msgid "Export cancelled ..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:760
-msgid "File saved to"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:784
-msgid "Code Review"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:832
-msgid "CNC Machine Code could not be updated"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:836
-msgid "CNC Machine Code was updated"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:992
-msgid "This CNCJob object can't be processed because it is a"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:994
-msgid "CNCJob object"
-msgstr ""
-
-#: appObjects/FlatCAMDocument.py:171
-msgid "Document Editor"
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:996 appObjects/FlatCAMExcellon.py:1101
-#: appPlugins/ToolDrilling.py:1995 appPlugins/ToolMilling.py:2568
-#: appPlugins/ToolMilling.py:2678
-msgid "Please select one or more tools from the list and try again."
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:1001 appPlugins/ToolMilling.py:2575
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:1110 appPlugins/ToolMilling.py:2687
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:504
-msgid "Vertex points calculated."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:716 appObjects/FlatCAMGeometry.py:870
-#: appPlugins/ToolMilling.py:3130 appPlugins/ToolMilling.py:3444
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:783 appObjects/FlatCAMGeometry.py:931
-#: appPlugins/ToolMilling.py:3204 appPlugins/ToolMilling.py:3497
-msgid "G-Code parsing in progress..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:785 appObjects/FlatCAMGeometry.py:933
-#: appPlugins/ToolMilling.py:3206 appPlugins/ToolMilling.py:3499
-msgid "G-Code parsing finished..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:792 appObjects/FlatCAMGeometry.py:942
-#: appObjects/FlatCAMGeometry.py:1115 appPlugins/ToolMilling.py:3213
-#: appPlugins/ToolMilling.py:3508
-msgid "Finished G-Code processing"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:794 appObjects/FlatCAMGeometry.py:944
-#: appPlugins/ToolMilling.py:3215 appPlugins/ToolMilling.py:3510
-msgid "G-Code processing failed with error"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:837 appPlugins/ToolMilling.py:3258
-#: appPlugins/ToolSolderPaste.py:946
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:960 appObjects/FlatCAMGeometry.py:965
-#: appObjects/FlatCAMGeometry.py:1122 appPlugins/ToolMilling.py:3537
-#: appPlugins/ToolMilling.py:3552
-msgid "CNCjob created"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1148 appObjects/FlatCAMGeometry.py:1157
-#: appParsers/ParseGerber.py:2112 appParsers/ParseGerber.py:2122
-msgid "Scale factor has to be a number: integer or float."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1237 appParsers/ParseGerber.py:2241
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in the Offset "
-"field."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1328
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y)\n"
-"but now there is only one value, not two."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:420 appPlugins/ToolIsolation.py:1602
-msgid "Buffering solid geometry"
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:465 appObjects/FlatCAMGerber.py:514
-msgid "Operation could not be done."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:613 appObjects/FlatCAMGerber.py:688
-#: appPlugins/ToolIsolation.py:1832 appPlugins/ToolIsolation.py:2223
-#: appPlugins/ToolNCC.py:2079 appPlugins/ToolNCC.py:3099 appPlugins/ToolNCC.py:3480
-msgid "Isolation geometry could not be generated."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:640 appObjects/FlatCAMGerber.py:731
-#: appPlugins/ToolIsolation.py:1926 appPlugins/ToolIsolation.py:2122
-#: appPlugins/ToolIsolation.py:2330
-msgid "Isolation geometry created"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:347
+#: appObjects/AppObjectTemplate.py:347
msgid "Name changed from"
msgstr ""
-#: appObjects/FlatCAMObj.py:347 appObjects/ObjectCollection.py:537
+#: appObjects/AppObjectTemplate.py:347 appObjects/ObjectCollection.py:567
msgid "to"
msgstr ""
-#: appObjects/FlatCAMObj.py:358 tclCommands/TclCommandSetOrigin.py:113
+#: appObjects/AppObjectTemplate.py:358 tclCommands/TclCommandSetOrigin.py:113
msgid "Offsetting..."
msgstr ""
-#: appObjects/FlatCAMObj.py:372 appObjects/FlatCAMObj.py:377
+#: appObjects/AppObjectTemplate.py:372 appObjects/AppObjectTemplate.py:377
msgid "Scaling could not be executed."
msgstr ""
-#: appObjects/FlatCAMObj.py:381 appObjects/FlatCAMObj.py:389
+#: appObjects/AppObjectTemplate.py:381 appObjects/AppObjectTemplate.py:389
msgid "Scale done."
msgstr ""
-#: appObjects/FlatCAMObj.py:387
+#: appObjects/AppObjectTemplate.py:387
msgid "Scaling..."
msgstr ""
-#: appObjects/FlatCAMObj.py:405
+#: appObjects/AppObjectTemplate.py:405
msgid "Skewing..."
msgstr ""
-#: appObjects/FlatCAMObj.py:544 appPlugins/ToolCalculators.py:694
-#: appPlugins/ToolReport.py:181
+#: appObjects/AppObjectTemplate.py:544 appPlugins/ToolCalculators.py:691
+#: appPlugins/ToolReport.py:168
msgid "Dimensions"
msgstr ""
-#: appObjects/FlatCAMObj.py:552 appPlugins/ToolReport.py:190
+#: appObjects/AppObjectTemplate.py:552 appPlugins/ToolReport.py:177
msgid "Tools"
msgstr ""
-#: appObjects/FlatCAMObj.py:567
+#: appObjects/AppObjectTemplate.py:567
msgid "Calculating dimensions ... Please wait."
msgstr ""
-#: appObjects/FlatCAMObj.py:741 appObjects/FlatCAMObj.py:749
+#: appObjects/AppObjectTemplate.py:741 appObjects/AppObjectTemplate.py:749
msgid "Polygons"
msgstr ""
-#: appObjects/FlatCAMObj.py:743
+#: appObjects/AppObjectTemplate.py:743
msgid "LineStrings"
msgstr ""
-#: appObjects/FlatCAMObj.py:748
+#: appObjects/AppObjectTemplate.py:748
msgid "Elements"
msgstr ""
-#: appObjects/FlatCAMObj.py:786 appObjects/FlatCAMObj.py:857 appPlugins/ToolReport.py:448
-#: appPlugins/ToolReport.py:522
+#: appObjects/AppObjectTemplate.py:786 appObjects/AppObjectTemplate.py:857
+#: appPlugins/ToolReport.py:435 appPlugins/ToolReport.py:509
msgid "Drills number"
msgstr ""
-#: appObjects/FlatCAMObj.py:787 appObjects/FlatCAMObj.py:859 appPlugins/ToolReport.py:449
-#: appPlugins/ToolReport.py:524
+#: appObjects/AppObjectTemplate.py:787 appObjects/AppObjectTemplate.py:859
+#: appPlugins/ToolReport.py:436 appPlugins/ToolReport.py:511
msgid "Slots number"
msgstr ""
-#: appObjects/FlatCAMObj.py:789 appPlugins/ToolReport.py:451
+#: appObjects/AppObjectTemplate.py:789 appPlugins/ToolReport.py:438
msgid "Drills total number:"
msgstr ""
-#: appObjects/FlatCAMObj.py:790 appPlugins/ToolReport.py:452
+#: appObjects/AppObjectTemplate.py:790 appPlugins/ToolReport.py:439
msgid "Slots total number:"
msgstr ""
-#: appObjects/FlatCAMObj.py:818 appObjects/FlatCAMObj.py:821 appObjects/FlatCAMObj.py:824
-#: appObjects/FlatCAMObj.py:854 appObjects/FlatCAMObj.py:861 appObjects/FlatCAMObj.py:864
-#: appPlugins/ToolReport.py:483 appPlugins/ToolReport.py:486 appPlugins/ToolReport.py:489
-#: appPlugins/ToolReport.py:519 appPlugins/ToolReport.py:526 appPlugins/ToolReport.py:529
+#: appObjects/AppObjectTemplate.py:818 appObjects/AppObjectTemplate.py:821
+#: appObjects/AppObjectTemplate.py:824 appObjects/AppObjectTemplate.py:854
+#: appObjects/AppObjectTemplate.py:861 appObjects/AppObjectTemplate.py:864
+#: appPlugins/ToolReport.py:470 appPlugins/ToolReport.py:473 appPlugins/ToolReport.py:476
+#: appPlugins/ToolReport.py:506 appPlugins/ToolReport.py:513 appPlugins/ToolReport.py:516
msgid "Present"
msgstr ""
-#: appObjects/FlatCAMObj.py:819 appObjects/FlatCAMObj.py:855 appPlugins/ToolReport.py:484
-#: appPlugins/ToolReport.py:520
+#: appObjects/AppObjectTemplate.py:819 appObjects/AppObjectTemplate.py:855
+#: appPlugins/ToolReport.py:471 appPlugins/ToolReport.py:507
msgid "Solid Geometry"
msgstr ""
-#: appObjects/FlatCAMObj.py:822 appObjects/FlatCAMObj.py:862 appPlugins/ToolReport.py:487
-#: appPlugins/ToolReport.py:527
+#: appObjects/AppObjectTemplate.py:822 appObjects/AppObjectTemplate.py:862
+#: appPlugins/ToolReport.py:474 appPlugins/ToolReport.py:514
msgid "GCode Text"
msgstr ""
-#: appObjects/FlatCAMObj.py:825 appObjects/FlatCAMObj.py:865 appPlugins/ToolReport.py:490
-#: appPlugins/ToolReport.py:530
+#: appObjects/AppObjectTemplate.py:825 appObjects/AppObjectTemplate.py:865
+#: appPlugins/ToolReport.py:477 appPlugins/ToolReport.py:517
msgid "GCode Geometry"
msgstr ""
-#: appObjects/FlatCAMObj.py:833 appObjects/FlatCAMObj.py:908 appPlugins/ToolReport.py:498
-#: appPlugins/ToolReport.py:573
+#: appObjects/AppObjectTemplate.py:833 appObjects/AppObjectTemplate.py:908
+#: appPlugins/ToolReport.py:485 appPlugins/ToolReport.py:560
msgid "Tool Data"
msgstr ""
-#: appObjects/FlatCAMObj.py:872 appPlugins/ToolReport.py:537
+#: appObjects/AppObjectTemplate.py:872 appPlugins/ToolReport.py:524
msgid "Depth of Cut"
msgstr ""
-#: appObjects/FlatCAMObj.py:884 appPlugins/ToolReport.py:549
+#: appObjects/AppObjectTemplate.py:884 appPlugins/ToolReport.py:536
msgid "Clearance Height"
msgstr ""
-#: appObjects/FlatCAMObj.py:922 appPlugins/ToolReport.py:587
+#: appObjects/AppObjectTemplate.py:922 appPlugins/ToolReport.py:574
msgid "Routing time"
msgstr ""
-#: appObjects/FlatCAMObj.py:947 appPlugins/ToolReport.py:612
-msgid "Width"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:953 appObjects/FlatCAMObj.py:961 appPlugins/ToolReport.py:618
-#: appPlugins/ToolReport.py:626
+#: appObjects/AppObjectTemplate.py:953 appObjects/AppObjectTemplate.py:961
+#: appPlugins/ToolReport.py:605 appPlugins/ToolReport.py:613
msgid "Box Area"
msgstr ""
-#: appObjects/FlatCAMObj.py:956 appObjects/FlatCAMObj.py:964 appPlugins/ToolReport.py:621
-#: appPlugins/ToolReport.py:629
+#: appObjects/AppObjectTemplate.py:956 appObjects/AppObjectTemplate.py:964
+#: appPlugins/ToolReport.py:608 appPlugins/ToolReport.py:616
msgid "Convex_Hull Area"
msgstr ""
-#: appObjects/FlatCAMObj.py:971 appObjects/FlatCAMObj.py:974 appPlugins/ToolReport.py:636
-#: appPlugins/ToolReport.py:639
+#: appObjects/AppObjectTemplate.py:971 appObjects/AppObjectTemplate.py:974
+#: appPlugins/ToolReport.py:623 appPlugins/ToolReport.py:626
msgid "Copper Area"
msgstr ""
+#: appObjects/CNCJobObject.py:732 appPlugins/ToolLevelling.py:1476
+#: appPlugins/ToolLevelling.py:1668 appPlugins/ToolSolderPaste.py:1184
+msgid "Export cancelled ..."
+msgstr ""
+
+#: appObjects/CNCJobObject.py:770
+msgid "File saved to"
+msgstr ""
+
+#: appObjects/CNCJobObject.py:794
+msgid "Code Review"
+msgstr ""
+
+#: appObjects/CNCJobObject.py:842
+msgid "CNC Machine Code could not be updated"
+msgstr ""
+
+#: appObjects/CNCJobObject.py:846
+msgid "CNC Machine Code was updated"
+msgstr ""
+
+#: appObjects/DocumentObject.py:171
+msgid "Document Editor"
+msgstr ""
+
+#: appObjects/ExcellonObject.py:996 appObjects/ExcellonObject.py:1101
+#: appPlugins/ToolDrilling.py:1973 appPlugins/ToolMilling.py:2537
+#: appPlugins/ToolMilling.py:2642
+msgid "Please select one or more tools from the list and try again."
+msgstr ""
+
+#: appObjects/ExcellonObject.py:1001 appPlugins/ToolMilling.py:2542
+msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
+msgstr ""
+
+#: appObjects/ExcellonObject.py:1002 appPlugins/ToolDrilling.py:908
+#: appPlugins/ToolDrilling.py:1285 appPlugins/ToolDrilling.py:2493
+#: appPlugins/ToolIsolation.py:902 appPlugins/ToolIsolation.py:3558
+#: appPlugins/ToolMilling.py:1656 appPlugins/ToolMilling.py:1729
+#: appPlugins/ToolMilling.py:2543 appPlugins/ToolMilling.py:4254 appPlugins/ToolNCC.py:592
+#: appPlugins/ToolNCC.py:2483 appPlugins/ToolNCC.py:4273 appPlugins/ToolPaint.py:569
+#: appPlugins/ToolPaint.py:3137
+msgid "Tool"
+msgstr ""
+
+#: appObjects/ExcellonObject.py:1110 appPlugins/ToolMilling.py:2651
+msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
+msgstr ""
+
#: appObjects/FlatCAMScript.py:157
msgid "Script Editor"
msgstr ""
-#: appObjects/ObjectCollection.py:245
+#: appObjects/GeometryObject.py:513
+msgid "Vertex points calculated."
+msgstr ""
+
+#: appObjects/GeometryObject.py:725 appObjects/GeometryObject.py:879
+#: appPlugins/ToolMilling.py:3097 appPlugins/ToolMilling.py:3411
+msgid ""
+"Tool Offset is selected in Tool Table but no value is provided.\n"
+"Add a Tool Offset or change the Offset Type."
+msgstr ""
+
+#: appObjects/GeometryObject.py:792 appObjects/GeometryObject.py:940
+#: appPlugins/ToolMilling.py:3171 appPlugins/ToolMilling.py:3464
+msgid "G-Code parsing in progress..."
+msgstr ""
+
+#: appObjects/GeometryObject.py:794 appObjects/GeometryObject.py:942
+#: appPlugins/ToolMilling.py:3173 appPlugins/ToolMilling.py:3466
+msgid "G-Code parsing finished..."
+msgstr ""
+
+#: appObjects/GeometryObject.py:801 appObjects/GeometryObject.py:951
+#: appObjects/GeometryObject.py:1124 appPlugins/ToolMilling.py:3180
+#: appPlugins/ToolMilling.py:3475
+msgid "Finished G-Code processing"
+msgstr ""
+
+#: appObjects/GeometryObject.py:803 appObjects/GeometryObject.py:953
+#: appPlugins/ToolMilling.py:3182 appPlugins/ToolMilling.py:3477
+msgid "G-Code processing failed with error"
+msgstr ""
+
+#: appObjects/GeometryObject.py:846 appPlugins/ToolMilling.py:3225
+msgid "Cancelled. Empty file, it has no geometry"
+msgstr ""
+
+#: appObjects/GeometryObject.py:969 appObjects/GeometryObject.py:974
+#: appObjects/GeometryObject.py:1131 appPlugins/ToolMilling.py:3504
+#: appPlugins/ToolMilling.py:3519 appPlugins/ToolSolderPaste.py:1079
+msgid "CNCjob created"
+msgstr ""
+
+#: appObjects/GeometryObject.py:1157 appObjects/GeometryObject.py:1166
+#: appParsers/ParseGerber.py:2112 appParsers/ParseGerber.py:2122
+msgid "Scale factor has to be a number: integer or float."
+msgstr ""
+
+#: appObjects/GeometryObject.py:1246 appParsers/ParseGerber.py:2241
+msgid ""
+"An (x,y) pair of values are needed. Probable you entered only one value in the Offset "
+"field."
+msgstr ""
+
+#: appObjects/GeometryObject.py:1337
+msgid ""
+"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y)\n"
+"but now there is only one value, not two."
+msgstr ""
+
+#: appObjects/GerberObject.py:420 appPlugins/ToolIsolation.py:1586
+msgid "Buffering solid geometry"
+msgstr ""
+
+#: appObjects/GerberObject.py:465 appObjects/GerberObject.py:514
+msgid "Operation could not be done."
+msgstr ""
+
+#: appObjects/GerberObject.py:613 appObjects/GerberObject.py:688
+#: appPlugins/ToolIsolation.py:1827 appPlugins/ToolIsolation.py:2248
+#: appPlugins/ToolNCC.py:2052 appPlugins/ToolNCC.py:3072 appPlugins/ToolNCC.py:3453
+msgid "Isolation geometry could not be generated."
+msgstr ""
+
+#: appObjects/GerberObject.py:640 appObjects/GerberObject.py:731
+#: appPlugins/ToolIsolation.py:1925 appPlugins/ToolIsolation.py:2141
+#: appPlugins/ToolIsolation.py:2368
+msgid "Isolation geometry created"
+msgstr ""
+
+#: appObjects/ObjectCollection.py:268
msgid "Script"
msgstr ""
-#: appObjects/ObjectCollection.py:425
+#: appObjects/ObjectCollection.py:447
msgid "Batch Save"
msgstr ""
-#: appObjects/ObjectCollection.py:537
+#: appObjects/ObjectCollection.py:567
msgid "Object renamed from"
msgstr ""
-#: appObjects/ObjectCollection.py:961 appObjects/ObjectCollection.py:967
-#: appObjects/ObjectCollection.py:973 appObjects/ObjectCollection.py:979
-#: appObjects/ObjectCollection.py:985 appObjects/ObjectCollection.py:991 appMain.py:7863
-#: appMain.py:7869 appMain.py:7875 appMain.py:7881
-msgid "selected"
-msgstr ""
-
-#: appObjects/ObjectCollection.py:1037
+#: appObjects/ObjectCollection.py:1067
msgid "Cause of error"
msgstr ""
-#: appObjects/ObjectCollection.py:1237
+#: appObjects/ObjectCollection.py:1267
msgid "All objects are selected."
msgstr ""
-#: appObjects/ObjectCollection.py:1247
+#: appObjects/ObjectCollection.py:1277
msgid "Objects selection is cleared."
msgstr ""
@@ -11769,52 +13157,51 @@ msgstr ""
msgid "HPGL2 Parser ERROR"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:134
+#: appPlugins/ToolAlignObjects.py:121
msgid "Align Tool"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:185
+#: appPlugins/ToolAlignObjects.py:172
msgid "There is no aligned FlatCAM object selected..."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:195
+#: appPlugins/ToolAlignObjects.py:182
msgid "There is no aligner FlatCAM object selected..."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:217 appPlugins/ToolAlignObjects.py:281
+#: appPlugins/ToolAlignObjects.py:204 appPlugins/ToolAlignObjects.py:268
msgid "First Point"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:217 appPlugins/ToolAlignObjects.py:296
+#: appPlugins/ToolAlignObjects.py:204 appPlugins/ToolAlignObjects.py:283
msgid "Click on the START point."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:276 appPlugins/ToolCalibration.py:311
-#: appPlugins/ToolDblSided.py:494 appPlugins/ToolFiducials.py:752
-#: appPlugins/ToolMarkers.py:1048
+#: appPlugins/ToolAlignObjects.py:263 appPlugins/ToolDblSided.py:480
+#: appPlugins/ToolFiducials.py:826 appPlugins/ToolMarkers.py:1119
msgid "Cancelled by user request."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:281 appPlugins/ToolAlignObjects.py:303
-#: appPlugins/ToolDistance.py:383 appPlugins/ToolMove.py:136 appPlugins/ToolQRCode.py:292
+#: appPlugins/ToolAlignObjects.py:268 appPlugins/ToolAlignObjects.py:290
+#: appPlugins/ToolDistance.py:375 appPlugins/ToolMove.py:129 appPlugins/ToolQRCode.py:274
msgid "Click on the DESTINATION point ..."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:281 appPlugins/ToolAlignObjects.py:296
-#: appPlugins/ToolAlignObjects.py:303
+#: appPlugins/ToolAlignObjects.py:268 appPlugins/ToolAlignObjects.py:283
+#: appPlugins/ToolAlignObjects.py:290
msgid "Or right click to cancel."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:296 appPlugins/ToolAlignObjects.py:303
-#: appPlugins/ToolFiducials.py:922
+#: appPlugins/ToolAlignObjects.py:283 appPlugins/ToolAlignObjects.py:290
+#: appPlugins/ToolFiducials.py:1009
msgid "Second Point"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:430
+#: appPlugins/ToolAlignObjects.py:417
msgid "MOVING object"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:432
+#: appPlugins/ToolAlignObjects.py:419
msgid ""
"Specify the type of object to be aligned.\n"
"It can be of type: Gerber or Excellon.\n"
@@ -11822,15 +13209,15 @@ msgid ""
"in the Object combobox."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:461
+#: appPlugins/ToolAlignObjects.py:448
msgid "Object to be aligned."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:469
+#: appPlugins/ToolAlignObjects.py:456
msgid "DESTINATION object"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:471
+#: appPlugins/ToolAlignObjects.py:458
msgid ""
"Specify the type of object to be aligned to.\n"
"It can be of type: Gerber or Excellon.\n"
@@ -11838,15 +13225,15 @@ msgid ""
"in the Object combobox."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:500
+#: appPlugins/ToolAlignObjects.py:487
msgid "Object to be aligned to. Aligner."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:519
+#: appPlugins/ToolAlignObjects.py:506
msgid "Alignment Type"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:521
+#: appPlugins/ToolAlignObjects.py:508
msgid ""
"The type of alignment can be:\n"
"- Single Point -> it require a single point of sync, the action will be a translation\n"
@@ -11854,589 +13241,310 @@ msgid ""
"rotation"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:527
+#: appPlugins/ToolAlignObjects.py:514
msgid "Single Point"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:528
+#: appPlugins/ToolAlignObjects.py:515
msgid "Dual Point"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:537
+#: appPlugins/ToolAlignObjects.py:524
msgid "Align Object"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:540
+#: appPlugins/ToolAlignObjects.py:527
msgid ""
"Align the specified object to the aligner object.\n"
"If only one point is used then it assumes translation.\n"
"If tho points are used it assume translation and rotation."
msgstr ""
-#: appPlugins/ToolAlignObjects.py:555 appPlugins/ToolCalculators.py:1053
-#: appPlugins/ToolCalibration.py:1403 appPlugins/ToolCopperThieving.py:1792
-#: appPlugins/ToolCutOut.py:2805 appPlugins/ToolDblSided.py:1160
-#: appPlugins/ToolDrilling.py:3043 appPlugins/ToolEtchCompensation.py:513
-#: appPlugins/ToolExtract.py:1415 appPlugins/ToolFiducials.py:1118
-#: appPlugins/ToolFilm.py:1823 appPlugins/ToolFollow.py:787
-#: appPlugins/ToolInvertGerber.py:320 appPlugins/ToolIsolation.py:3945
-#: appPlugins/ToolLevelling.py:2354 appPlugins/ToolMarkers.py:1521
-#: appPlugins/ToolMilling.py:5108 appPlugins/ToolNCC.py:4643
-#: appPlugins/ToolObjectDistance.py:625 appPlugins/ToolOptimal.py:716
-#: appPlugins/ToolPaint.py:3383 appPlugins/ToolPanelize.py:1448
-#: appPlugins/ToolPunchGerber.py:2368 appPlugins/ToolQRCode.py:1030
-#: appPlugins/ToolRulesCheck.py:1795 appPlugins/ToolSolderPaste.py:1692
-#: appPlugins/ToolSub.py:977 appPlugins/ToolTransform.py:1027
+#: appPlugins/ToolAlignObjects.py:542 appPlugins/ToolCalculators.py:1050
+#: appPlugins/ToolCopperThieving.py:1772 appPlugins/ToolCutOut.py:2787
+#: appPlugins/ToolDblSided.py:1146 appPlugins/ToolDrilling.py:3023
+#: appPlugins/ToolEtchCompensation.py:499 appPlugins/ToolExtract.py:1446
+#: appPlugins/ToolFiducials.py:1213 appPlugins/ToolFilm.py:1800 appPlugins/ToolFollow.py:771
+#: appPlugins/ToolInvertGerber.py:307 appPlugins/ToolIsolation.py:4007
+#: appPlugins/ToolLevelling.py:2335 appPlugins/ToolMarkers.py:1613
+#: appPlugins/ToolMilling.py:5075 appPlugins/ToolNCC.py:4616
+#: appPlugins/ToolObjectDistance.py:612 appPlugins/ToolOptimal.py:702
+#: appPlugins/ToolPaint.py:3364 appPlugins/ToolPanelize.py:1432
+#: appPlugins/ToolPunchGerber.py:2381 appPlugins/ToolQRCode.py:1018
+#: appPlugins/ToolRulesCheck.py:1780 appPlugins/ToolSolderPaste.py:1761
+#: appPlugins/ToolSub.py:966 appPlugins/ToolTransform.py:1018
msgid "Reset Tool"
msgstr ""
-#: appPlugins/ToolAlignObjects.py:558 appPlugins/ToolCalculators.py:1056
-#: appPlugins/ToolCalibration.py:1406 appPlugins/ToolCopperThieving.py:1795
-#: appPlugins/ToolCutOut.py:2808 appPlugins/ToolDblSided.py:1163
-#: appPlugins/ToolDrilling.py:3046 appPlugins/ToolEtchCompensation.py:516
-#: appPlugins/ToolExtract.py:1418 appPlugins/ToolFiducials.py:1121
-#: appPlugins/ToolFilm.py:1826 appPlugins/ToolFollow.py:790
-#: appPlugins/ToolInvertGerber.py:323 appPlugins/ToolIsolation.py:3948
-#: appPlugins/ToolLevelling.py:2357 appPlugins/ToolMarkers.py:1524
-#: appPlugins/ToolMilling.py:5111 appPlugins/ToolNCC.py:4646
-#: appPlugins/ToolObjectDistance.py:628 appPlugins/ToolOptimal.py:719
-#: appPlugins/ToolPaint.py:3386 appPlugins/ToolPanelize.py:1451
-#: appPlugins/ToolPunchGerber.py:2371 appPlugins/ToolQRCode.py:1033
-#: appPlugins/ToolRulesCheck.py:1798 appPlugins/ToolSolderPaste.py:1695
-#: appPlugins/ToolSub.py:980 appPlugins/ToolTransform.py:1030
+#: appPlugins/ToolAlignObjects.py:545 appPlugins/ToolCalculators.py:1053
+#: appPlugins/ToolCopperThieving.py:1775 appPlugins/ToolCutOut.py:2790
+#: appPlugins/ToolDblSided.py:1149 appPlugins/ToolDrilling.py:3026
+#: appPlugins/ToolEtchCompensation.py:502 appPlugins/ToolExtract.py:1449
+#: appPlugins/ToolFiducials.py:1216 appPlugins/ToolFilm.py:1803 appPlugins/ToolFollow.py:774
+#: appPlugins/ToolInvertGerber.py:310 appPlugins/ToolIsolation.py:4010
+#: appPlugins/ToolLevelling.py:2338 appPlugins/ToolMarkers.py:1616
+#: appPlugins/ToolMilling.py:5078 appPlugins/ToolNCC.py:4619
+#: appPlugins/ToolObjectDistance.py:615 appPlugins/ToolOptimal.py:705
+#: appPlugins/ToolPaint.py:3367 appPlugins/ToolPanelize.py:1435
+#: appPlugins/ToolPunchGerber.py:2384 appPlugins/ToolQRCode.py:1021
+#: appPlugins/ToolRulesCheck.py:1783 appPlugins/ToolSolderPaste.py:1764
+#: appPlugins/ToolSub.py:969 appPlugins/ToolTransform.py:1021
msgid "Will reset the tool parameters."
msgstr ""
-#: appPlugins/ToolCalculators.py:210
+#: appPlugins/ToolCalculators.py:207
msgid "Cut width (tool diameter) calculated."
msgstr ""
-#: appPlugins/ToolCalculators.py:232
+#: appPlugins/ToolCalculators.py:229
msgid "Tool diameter (cut width) cannot be smaller than the tip diameter."
msgstr ""
-#: appPlugins/ToolCalculators.py:238
+#: appPlugins/ToolCalculators.py:235
msgid "Cut depth (Cut Z) calculated."
msgstr ""
-#: appPlugins/ToolCalculators.py:510
+#: appPlugins/ToolCalculators.py:502
msgid "V-Shape Tool"
msgstr ""
-#: appPlugins/ToolCalculators.py:511
+#: appPlugins/ToolCalculators.py:503
msgid "Units Conversion"
msgstr ""
-#: appPlugins/ToolCalculators.py:512
+#: appPlugins/ToolCalculators.py:504
msgid "ElectroPlating"
msgstr ""
-#: appPlugins/ToolCalculators.py:513
+#: appPlugins/ToolCalculators.py:505
msgid "Tinning"
msgstr ""
-#: appPlugins/ToolCalculators.py:557 appPlugins/ToolCalculators.py:572
-#: appPlugins/ToolCalculators.py:587
+#: appPlugins/ToolCalculators.py:550 appPlugins/ToolCalculators.py:565
+#: appPlugins/ToolCalculators.py:580
msgid "Here you enter the value to be converted from imperial to metric"
msgstr ""
-#: appPlugins/ToolCalculators.py:560 appPlugins/ToolCalculators.py:575
-#: appPlugins/ToolCalculators.py:590
+#: appPlugins/ToolCalculators.py:553 appPlugins/ToolCalculators.py:568
+#: appPlugins/ToolCalculators.py:583
msgid "Here you enter the value to be converted from metric to imperial"
msgstr ""
-#: appPlugins/ToolCalculators.py:566
+#: appPlugins/ToolCalculators.py:559
msgid "oz"
msgstr ""
-#: appPlugins/ToolCalculators.py:567
+#: appPlugins/ToolCalculators.py:560
msgid "gram"
msgstr ""
-#: appPlugins/ToolCalculators.py:581
+#: appPlugins/ToolCalculators.py:574
msgid "fl oz"
msgstr ""
-#: appPlugins/ToolCalculators.py:582 appPlugins/ToolCalculators.py:955
-#: appPlugins/ToolCalculators.py:975 appPlugins/ToolCalculators.py:1030
+#: appPlugins/ToolCalculators.py:575 appPlugins/ToolCalculators.py:952
+#: appPlugins/ToolCalculators.py:972 appPlugins/ToolCalculators.py:1027
msgid "mL"
msgstr ""
-#: appPlugins/ToolCalculators.py:628
+#: appPlugins/ToolCalculators.py:622
msgid ""
"This is the angle of the tip of the tool.\n"
"It is specified by manufacturer."
msgstr ""
-#: appPlugins/ToolCalculators.py:640
+#: appPlugins/ToolCalculators.py:634
msgid "This is the depth to cut into the material."
msgstr ""
-#: appPlugins/ToolCalculators.py:651
+#: appPlugins/ToolCalculators.py:645
msgid ""
"This is the actual tool diameter\n"
"at the desired depth of cut."
msgstr ""
-#: appPlugins/ToolCalculators.py:664
+#: appPlugins/ToolCalculators.py:658
msgid "Calculate either the depth of cut or the effective tool diameter."
msgstr ""
-#: appPlugins/ToolCalculators.py:689
+#: appPlugins/ToolCalculators.py:683
msgid "Area Calculation"
msgstr ""
-#: appPlugins/ToolCalculators.py:691
+#: appPlugins/ToolCalculators.py:688
msgid "Determine the board area."
msgstr ""
-#: appPlugins/ToolCalculators.py:703
+#: appPlugins/ToolCalculators.py:699
msgid "Board Length."
msgstr ""
-#: appPlugins/ToolCalculators.py:710 appPlugins/ToolCalculators.py:729
-#: appPlugins/ToolCalculators.py:748 appPlugins/ToolCopperThieving.py:1744
+#: appPlugins/ToolCalculators.py:706 appPlugins/ToolCalculators.py:725
+#: appPlugins/ToolCalculators.py:744 appPlugins/ToolCopperThieving.py:1724
msgid "cm"
msgstr ""
-#: appPlugins/ToolCalculators.py:741
+#: appPlugins/ToolCalculators.py:737
msgid "Board area."
msgstr ""
-#: appPlugins/ToolCalculators.py:765
+#: appPlugins/ToolCalculators.py:761
msgid ""
"Current density applied to the board. \n"
"In Amperes per Square Feet ASF."
msgstr ""
-#: appPlugins/ToolCalculators.py:786
+#: appPlugins/ToolCalculators.py:782
msgid "Thickness of the deposited copper."
msgstr ""
-#: appPlugins/ToolCalculators.py:794
+#: appPlugins/ToolCalculators.py:790
msgid "um"
msgstr ""
-#: appPlugins/ToolCalculators.py:805
+#: appPlugins/ToolCalculators.py:806
+msgid "Output"
+msgstr ""
+
+#: appPlugins/ToolCalculators.py:810
msgid "Current Value"
msgstr ""
-#: appPlugins/ToolCalculators.py:806
+#: appPlugins/ToolCalculators.py:811
msgid ""
"This is the current intensity value\n"
"to be set on the Power Supply."
msgstr ""
-#: appPlugins/ToolCalculators.py:827
+#: appPlugins/ToolCalculators.py:832
msgid "Time"
msgstr ""
-#: appPlugins/ToolCalculators.py:828
+#: appPlugins/ToolCalculators.py:833
msgid "The time calculated to deposit copper."
msgstr ""
-#: appPlugins/ToolCalculators.py:851
-msgid "Calculate the current intensity value and the procedure time."
-msgstr ""
-
-#: appPlugins/ToolCalculators.py:861
+#: appPlugins/ToolCalculators.py:858
msgid ""
"Calculator for chemical quantities\n"
"required for tinning PCB's."
msgstr ""
-#: appPlugins/ToolCalculators.py:873
+#: appPlugins/ToolCalculators.py:870
msgid "Solution"
msgstr ""
-#: appPlugins/ToolCalculators.py:875
+#: appPlugins/ToolCalculators.py:872
msgid "Choose one solution for tinning."
msgstr ""
-#: appPlugins/ToolCalculators.py:887
+#: appPlugins/ToolCalculators.py:884
msgid "Stannous Chloride."
msgstr ""
-#: appPlugins/ToolCalculators.py:895 appPlugins/ToolCalculators.py:915
-#: appPlugins/ToolCalculators.py:935 appPlugins/ToolCalculators.py:1006
+#: appPlugins/ToolCalculators.py:892 appPlugins/ToolCalculators.py:912
+#: appPlugins/ToolCalculators.py:932 appPlugins/ToolCalculators.py:1003
msgid "g"
msgstr ""
-#: appPlugins/ToolCalculators.py:906 appPlugins/ToolCalculators.py:907
+#: appPlugins/ToolCalculators.py:903 appPlugins/ToolCalculators.py:904
msgid "Thiourea"
msgstr ""
-#: appPlugins/ToolCalculators.py:927
+#: appPlugins/ToolCalculators.py:924
msgid "Sulfamic Acid."
msgstr ""
-#: appPlugins/ToolCalculators.py:947
+#: appPlugins/ToolCalculators.py:944
msgid "Distilled Water."
msgstr ""
-#: appPlugins/ToolCalculators.py:966
+#: appPlugins/ToolCalculators.py:963
msgid "Soap"
msgstr ""
-#: appPlugins/ToolCalculators.py:967
+#: appPlugins/ToolCalculators.py:964
msgid "Liquid soap."
msgstr ""
-#: appPlugins/ToolCalculators.py:990
+#: appPlugins/ToolCalculators.py:987
msgid "Optional"
msgstr ""
-#: appPlugins/ToolCalculators.py:996
+#: appPlugins/ToolCalculators.py:993
msgid ""
"Sodium hypophosphite.\n"
"Optional, for solution stability.\n"
"Warning: List 1 chemical in USA."
msgstr ""
-#: appPlugins/ToolCalculators.py:1022
+#: appPlugins/ToolCalculators.py:1019
msgid "Volume"
msgstr ""
-#: appPlugins/ToolCalculators.py:1023
+#: appPlugins/ToolCalculators.py:1020
msgid "Desired volume of tinning solution."
msgstr ""
-#: appPlugins/ToolCalculators.py:1044
+#: appPlugins/ToolCalculators.py:1041
msgid "Calculate the chemical quantities for the desired volume of tinning solution."
msgstr ""
-#: appPlugins/ToolCalibration.py:126 appPlugins/ToolCalibration.py:765
-msgid "Calibration"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:191
-msgid "Tool initialized"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:229
-msgid "There is no source FlatCAM object selected..."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:250
-msgid "Get First calibration point. Bottom Left..."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:317
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:321
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:325
-msgid "Get Forth calibration point. Top Right..."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:360
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:372 appPlugins/ToolCalibration.py:458
-msgid "Gcode Viewer"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:388
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:638 appPlugins/ToolCalibration.py:729
-#: appPlugins/ToolDblSided.py:512 appPlugins/ToolDblSided.py:600
-#: appPlugins/ToolExtract.py:385 appPlugins/ToolExtract.py:700 appPlugins/ToolExtract.py:803
-#: appPlugins/ToolFilm.py:318 appPlugins/ToolFilm.py:325 appPlugins/ToolFilm.py:329
-#: appPlugins/ToolMilling.py:2067 appPlugins/ToolMove.py:202
-#: appPlugins/ToolPunchGerber.py:511 appPlugins/ToolPunchGerber.py:515
-#: appPlugins/ToolReport.py:140 appPlugins/ToolTransform.py:176
-#: appPlugins/ToolTransform.py:327 appPlugins/ToolTransform.py:359
-#: appPlugins/ToolTransform.py:404 appPlugins/ToolTransform.py:438
-#: appPlugins/ToolTransform.py:473 appPlugins/ToolTransform.py:510 appMain.py:2583
-#: appMain.py:5290 appMain.py:5771 appMain.py:6180 appMain.py:6264 appMain.py:6444
-#: appMain.py:6753 appMain.py:6949 appMain.py:6995 appMain.py:7042 appMain.py:7097
-#: appMain.py:7145 appMain.py:7303 appMain.py:9736 appMain.py:9833 appMain.py:9875
-#: appMain.py:9917 appMain.py:9959 appMain.py:10000 appMain.py:10045 appMain.py:10090
-#: appMain.py:10617 appMain.py:10621 camlib.py:2464 camlib.py:2537 camlib.py:2605
-#: camlib.py:2680
-msgid "No object is selected."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:789
-msgid "Parameters used when creating the GCode in this tool."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:893
-msgid "STEP 1: Acquire Calibration Points"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:895
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:913 appPlugins/ToolImage.py:338
-#: appPlugins/ToolReport.py:205
-msgid "Object Type"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:930
-msgid "Source object selection"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:932
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:938
-msgid "Calibration Points"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:940
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:956
-msgid "Found Delta"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:968
-msgid "Bot Left X"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:977
-msgid "Bot Left Y"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:995
-msgid "Bot Right X"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1005
-msgid "Bot Right Y"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1020
-msgid "Top Left X"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1029
-msgid "Top Left Y"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1044
-msgid "Top Right X"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1054
-msgid "Top Right Y"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1087
-msgid "Get Points"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1089
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1110
-msgid "STEP 2: Verification GCode"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1112 appPlugins/ToolCalibration.py:1125
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1123
-msgid "Generate GCode"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1149
-msgid "STEP 3: Adjustments"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1151 appPlugins/ToolCalibration.py:1160
-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 ""
-
-#: appPlugins/ToolCalibration.py:1158
-msgid "Calculate Factors"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1180
-msgid "STEP 4: Adjusted GCode"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1182
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1187
-msgid "Scale Factor X:"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1189
-msgid "Factor for Scale action over X axis."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1199
-msgid "Scale Factor Y:"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1201
-msgid "Factor for Scale action over Y axis."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1211
-msgid "Apply Scale Factors"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1213
-msgid "Apply Scale factors on the calibration points."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1223
-msgid "Skew Angle X:"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1236
-msgid "Skew Angle Y:"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1249
-msgid "Apply Skew Factors"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1251
-msgid "Apply Skew factors on the calibration points."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1320
-msgid "Generate Adjusted GCode"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1322
-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 ""
-
-#: appPlugins/ToolCalibration.py:1343
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1345
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1357
-msgid "Adjusted object type"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1358
-msgid "Type of the Application Object to be adjusted."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1371
-msgid "Adjusted object selection"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1373
-msgid "The Application Object to be adjusted."
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1380
-msgid "Calibrate"
-msgstr ""
-
-#: appPlugins/ToolCalibration.py:1382
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-
-#: appPlugins/ToolCopperThieving.py:233 appPlugins/ToolCopperThieving.py:259
+#: appPlugins/ToolCopperThieving.py:216 appPlugins/ToolCopperThieving.py:242
msgid "Lines Grid works only for 'itself' reference ..."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:244
+#: appPlugins/ToolCopperThieving.py:227
msgid "Solid fill selected."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:249
+#: appPlugins/ToolCopperThieving.py:232
msgid "Dots grid fill selected."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:254
+#: appPlugins/ToolCopperThieving.py:237
msgid "Squares grid fill selected."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:277 appPlugins/ToolCopperThieving.py:375
-#: appPlugins/ToolCopperThieving.py:989 appPlugins/ToolFiducials.py:292
-#: appPlugins/ToolFiducials.py:594 appPlugins/ToolMarkers.py:322
-#: appPlugins/ToolMarkers.py:357 appPlugins/ToolMarkers.py:417 appPlugins/ToolMarkers.py:752
-#: appPlugins/ToolMarkers.py:861 appPlugins/ToolMarkers.py:973 appPlugins/ToolOptimal.py:223
-#: appPlugins/ToolQRCode.py:244
+#: appPlugins/ToolCopperThieving.py:260 appPlugins/ToolCopperThieving.py:358
+#: appPlugins/ToolCopperThieving.py:972 appPlugins/ToolFiducials.py:300
+#: appPlugins/ToolFiducials.py:615 appPlugins/ToolMarkers.py:356
+#: appPlugins/ToolMarkers.py:391 appPlugins/ToolMarkers.py:422 appPlugins/ToolMarkers.py:484
+#: appPlugins/ToolMarkers.py:819 appPlugins/ToolMarkers.py:928
+#: appPlugins/ToolMarkers.py:1040 appPlugins/ToolOptimal.py:209 appPlugins/ToolQRCode.py:226
msgid "There is no Gerber object loaded ..."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:290 appPlugins/ToolCopperThieving.py:889
+#: appPlugins/ToolCopperThieving.py:273 appPlugins/ToolCopperThieving.py:872
msgid "Append geometry"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:345 appPlugins/ToolCopperThieving.py:940
-#: appPlugins/ToolCopperThieving.py:1148
+#: appPlugins/ToolCopperThieving.py:328 appPlugins/ToolCopperThieving.py:923
+#: appPlugins/ToolCopperThieving.py:1131
msgid "Append source file"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:358 appPlugins/ToolCopperThieving.py:953
+#: appPlugins/ToolCopperThieving.py:341 appPlugins/ToolCopperThieving.py:936
msgid "Copper Thieving Tool done."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:385 appPlugins/ToolCopperThieving.py:405
-#: appPlugins/ToolCutOut.py:660 appPlugins/ToolCutOut.py:1041 appPlugins/ToolCutOut.py:1429
-#: appPlugins/ToolCutOut.py:1521 appPlugins/ToolCutOut.py:1565 appPlugins/ToolCutOut.py:1668
-#: appPlugins/ToolDrilling.py:945 appPlugins/ToolDrilling.py:1960
-#: appPlugins/ToolEtchCompensation.py:195 appPlugins/ToolFollow.py:210
-#: appPlugins/ToolFollow.py:260 appPlugins/ToolInvertGerber.py:143
-#: appPlugins/ToolIsolation.py:1177 appPlugins/ToolIsolation.py:1242
-#: appPlugins/ToolIsolation.py:1610 appPlugins/ToolIsolation.py:1637
-#: appPlugins/ToolIsolation.py:2564 appPlugins/ToolLevelling.py:345
-#: appPlugins/ToolMilling.py:681 appPlugins/ToolMilling.py:898
-#: appPlugins/ToolMilling.py:1385 appPlugins/ToolMilling.py:1729
-#: appPlugins/ToolMilling.py:1813 appPlugins/ToolMilling.py:2751
-#: appPlugins/ToolMilling.py:2774 appPlugins/ToolMilling.py:2939 appPlugins/ToolNCC.py:1018
-#: appPlugins/ToolNCC.py:1087 appPlugins/ToolNCC.py:1532 appPlugins/ToolNCC.py:1582
-#: appPlugins/ToolNCC.py:1617 appPlugins/ToolPaint.py:1154 appPlugins/ToolPaint.py:1243
-#: appPlugins/ToolPanelize.py:320 appPlugins/ToolPanelize.py:334 appPlugins/ToolSub.py:286
-#: appPlugins/ToolSub.py:304 appPlugins/ToolSub.py:518 appPlugins/ToolSub.py:531
+#: appPlugins/ToolCopperThieving.py:368 appPlugins/ToolCopperThieving.py:388
+#: appPlugins/ToolCutOut.py:642 appPlugins/ToolCutOut.py:1023 appPlugins/ToolCutOut.py:1411
+#: appPlugins/ToolCutOut.py:1503 appPlugins/ToolCutOut.py:1547 appPlugins/ToolCutOut.py:1650
+#: appPlugins/ToolDrilling.py:923 appPlugins/ToolDrilling.py:1938
+#: appPlugins/ToolEtchCompensation.py:181 appPlugins/ToolFollow.py:194
+#: appPlugins/ToolFollow.py:244 appPlugins/ToolInvertGerber.py:130
+#: appPlugins/ToolIsolation.py:1162 appPlugins/ToolIsolation.py:1226
+#: appPlugins/ToolIsolation.py:1594 appPlugins/ToolIsolation.py:1623
+#: appPlugins/ToolIsolation.py:2604 appPlugins/ToolLevelling.py:325
+#: appPlugins/ToolMilling.py:655 appPlugins/ToolMilling.py:872
+#: appPlugins/ToolMilling.py:1358 appPlugins/ToolMilling.py:1702
+#: appPlugins/ToolMilling.py:1786 appPlugins/ToolMilling.py:2715
+#: appPlugins/ToolMilling.py:2738 appPlugins/ToolMilling.py:2903 appPlugins/ToolNCC.py:999
+#: appPlugins/ToolNCC.py:1068 appPlugins/ToolNCC.py:1513 appPlugins/ToolNCC.py:1563
+#: appPlugins/ToolNCC.py:1598 appPlugins/ToolPaint.py:1134 appPlugins/ToolPaint.py:1223
+#: appPlugins/ToolPanelize.py:304 appPlugins/ToolPanelize.py:318 appPlugins/ToolSub.py:273
+#: appPlugins/ToolSub.py:292 appPlugins/ToolSub.py:506 appPlugins/ToolSub.py:519
#: tclCommands/TclCommandBuffer.py:87 tclCommands/TclCommandCopperClear.py:97
#: tclCommands/TclCommandCopperClear.py:252 tclCommands/TclCommandPaint.py:100
#: tclCommands/TclCommandPaint.py:273 tclCommands/TclCommandScale.py:110
@@ -12444,105 +13552,106 @@ msgstr ""
msgid "Could not retrieve object"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:433
+#: appPlugins/ToolCopperThieving.py:416
msgid "Click the end point of the filling area."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:560
+#: appPlugins/ToolCopperThieving.py:543
msgid "Copper Thieving Tool started. Reading parameters."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:586
+#: appPlugins/ToolCopperThieving.py:569
msgid "Copper Thieving Tool. Preparing isolation polygons."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:632
+#: appPlugins/ToolCopperThieving.py:615
msgid "Copper Thieving Tool. Preparing areas to fill with copper."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:676
+#: appPlugins/ToolCopperThieving.py:659
msgid "Geometry not supported for"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:682 appPlugins/ToolNCC.py:1911
-#: appPlugins/ToolNCC.py:1959 appPlugins/ToolNCC.py:2961 appPlugins/ToolPaint.py:2643
+#: appPlugins/ToolCopperThieving.py:665 appPlugins/ToolNCC.py:1884
+#: appPlugins/ToolNCC.py:1932 appPlugins/ToolNCC.py:2934 appPlugins/ToolPaint.py:2625
msgid "No object available."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:715 appPlugins/ToolNCC.py:1929
-#: appPlugins/ToolNCC.py:1982 appPlugins/ToolNCC.py:2994
+#: appPlugins/ToolCopperThieving.py:698 appPlugins/ToolNCC.py:1902
+#: appPlugins/ToolNCC.py:1955 appPlugins/ToolNCC.py:2967
msgid "The reference object type is not supported."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:720
+#: appPlugins/ToolCopperThieving.py:703
msgid "Copper Thieving Tool. Appending new geometry and buffering."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:756
+#: appPlugins/ToolCopperThieving.py:739
msgid "Create geometry"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:964 appPlugins/ToolCopperThieving.py:968
+#: appPlugins/ToolCopperThieving.py:947 appPlugins/ToolCopperThieving.py:951
msgid "P-Plating Mask"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:992
+#: appPlugins/ToolCopperThieving.py:975
msgid "Append PP-M geometry"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1168
+#: appPlugins/ToolCopperThieving.py:1151
msgid "Generating Pattern Plating Mask done."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1211
+#: appPlugins/ToolCopperThieving.py:1194
msgid "Copper Thieving Tool exit."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1297 appPlugins/ToolCopperThieving.py:1686
-#: appPlugins/ToolCutOut.py:2276 appPlugins/ToolDblSided.py:737
-#: appPlugins/ToolDrilling.py:2423 appPlugins/ToolEtchCompensation.py:330
-#: appPlugins/ToolExtract.py:984 appPlugins/ToolFiducials.py:853 appPlugins/ToolFilm.py:1278
-#: appPlugins/ToolFollow.py:714 appPlugins/ToolInvertGerber.py:236
-#: appPlugins/ToolIsolation.py:3348 appPlugins/ToolLevelling.py:1781
-#: appPlugins/ToolMarkers.py:1189 appPlugins/ToolMilling.py:3983 appPlugins/ToolNCC.py:4091
-#: appPlugins/ToolOptimal.py:498 appPlugins/ToolPaint.py:2968
-#: appPlugins/ToolPanelize.py:1179 appPlugins/ToolPunchGerber.py:2017
-#: appPlugins/ToolQRCode.py:773 appPlugins/ToolSolderPaste.py:1231
+#: appPlugins/ToolCopperThieving.py:1280 appPlugins/ToolCopperThieving.py:1666
+#: appPlugins/ToolCutOut.py:2258 appPlugins/ToolDblSided.py:723
+#: appPlugins/ToolDrilling.py:2403 appPlugins/ToolEtchCompensation.py:316
+#: appPlugins/ToolExtract.py:1014 appPlugins/ToolFiducials.py:940
+#: appPlugins/ToolFilm.py:1270 appPlugins/ToolFollow.py:698
+#: appPlugins/ToolInvertGerber.py:223 appPlugins/ToolIsolation.py:3394
+#: appPlugins/ToolLevelling.py:1762 appPlugins/ToolMarkers.py:1263
+#: appPlugins/ToolMilling.py:3950 appPlugins/ToolNCC.py:4064 appPlugins/ToolOptimal.py:484
+#: appPlugins/ToolPaint.py:2949 appPlugins/ToolPanelize.py:1163
+#: appPlugins/ToolPunchGerber.py:2030 appPlugins/ToolQRCode.py:761
+#: appPlugins/ToolSolderPaste.py:1264
msgid "Source Object"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1298
+#: appPlugins/ToolCopperThieving.py:1281
msgid "Gerber Object to which will be added a copper thieving."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1330
+#: appPlugins/ToolCopperThieving.py:1312
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 ""
-#: appPlugins/ToolCopperThieving.py:1394
+#: appPlugins/ToolCopperThieving.py:1376
msgid ""
"The type of FlatCAM object to be used as copper thieving reference.\n"
"It can be Gerber, Excellon or Geometry."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1594
+#: appPlugins/ToolCopperThieving.py:1576
msgid "Insert Copper thieving"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1597
+#: appPlugins/ToolCopperThieving.py:1579
msgid ""
"Will add a polygon (may be split in multiple parts)\n"
"that will surround the actual Gerber traces at a certain distance."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1660
+#: appPlugins/ToolCopperThieving.py:1641
msgid "Insert Robber Bar"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1663
+#: appPlugins/ToolCopperThieving.py:1644
msgid ""
"Will add a polygon with a defined thickness\n"
"that will surround the actual Gerber object\n"
@@ -12550,18 +13659,18 @@ msgid ""
"Required when doing holes pattern plating."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1688
+#: appPlugins/ToolCopperThieving.py:1668
msgid ""
"Gerber Object with the soldermask.\n"
"It will be used as a base for\n"
"the pattern plating mask."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1731
+#: appPlugins/ToolCopperThieving.py:1711
msgid "Plated area"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1733
+#: appPlugins/ToolCopperThieving.py:1713
msgid ""
"The area to be plated by pattern plating.\n"
"Basically is made from the openings in the plating mask.\n"
@@ -12572,170 +13681,156 @@ msgid ""
"calculated from the soldermask openings."
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1774
+#: appPlugins/ToolCopperThieving.py:1754
msgid "Generate pattern plating mask"
msgstr ""
-#: appPlugins/ToolCopperThieving.py:1777
+#: appPlugins/ToolCopperThieving.py:1757
msgid ""
"Will add to the soldermask gerber geometry\n"
"the geometries of the copper thieving and/or\n"
"the robber bar if those were generated."
msgstr ""
-#: appPlugins/ToolCutOut.py:429 appPlugins/ToolCutOut.py:2615
+#: appPlugins/ToolCutOut.py:411 appPlugins/ToolCutOut.py:2597
msgid "Any"
msgstr ""
-#: appPlugins/ToolCutOut.py:446 appPlugins/ToolIsolation.py:1025
-#: appPlugins/ToolIsolation.py:1347 appPlugins/ToolIsolation.py:1462
-#: appPlugins/ToolMilling.py:2089 appPlugins/ToolMilling.py:2202 appPlugins/ToolNCC.py:1202
-#: appPlugins/ToolNCC.py:1327 appPlugins/ToolNCC.py:1399 appPlugins/ToolPaint.py:682
-#: appPlugins/ToolPaint.py:849 appPlugins/ToolPaint.py:982 appPlugins/ToolSolderPaste.py:353
-#: appPlugins/ToolSolderPaste.py:527 appMain.py:5135
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-
-#: appPlugins/ToolCutOut.py:459 appPlugins/ToolDrilling.py:1162
-#: appPlugins/ToolIsolation.py:1365 appPlugins/ToolMilling.py:2101
+#: appPlugins/ToolCutOut.py:441 appPlugins/ToolDrilling.py:1140
+#: appPlugins/ToolIsolation.py:1349 appPlugins/ToolMilling.py:2075
msgid "Could not load Tools DB file."
msgstr ""
-#: appPlugins/ToolCutOut.py:513 appPlugins/ToolIsolation.py:1417
-#: appPlugins/ToolMilling.py:2155 appPlugins/ToolNCC.py:1276 appPlugins/ToolPaint.py:928
+#: appPlugins/ToolCutOut.py:495 appPlugins/ToolIsolation.py:1401
+#: appPlugins/ToolMilling.py:2129 appPlugins/ToolNCC.py:1257 appPlugins/ToolPaint.py:908
msgid "Tool not in Tools Database. Adding a default tool."
msgstr ""
-#: appPlugins/ToolCutOut.py:520 appPlugins/ToolDrilling.py:1227
-#: appPlugins/ToolIsolation.py:1423 appPlugins/ToolMilling.py:2163
-#: appPlugins/ToolNCC.py:1283 appPlugins/ToolPaint.py:936
+#: appPlugins/ToolCutOut.py:502 appPlugins/ToolDrilling.py:1205
+#: appPlugins/ToolIsolation.py:1407 appPlugins/ToolMilling.py:2137
+#: appPlugins/ToolNCC.py:1264 appPlugins/ToolPaint.py:916
msgid ""
"Cancelled.\n"
"Multiple tools for one tool diameter found in Tools Database."
msgstr ""
-#: appPlugins/ToolCutOut.py:539
+#: appPlugins/ToolCutOut.py:521
msgid "Updated tool from Tools Database."
msgstr ""
-#: appPlugins/ToolCutOut.py:565
+#: appPlugins/ToolCutOut.py:547
msgid "Default tool added."
msgstr ""
-#: appPlugins/ToolCutOut.py:579 appPlugins/ToolIsolation.py:2938 appPlugins/ToolNCC.py:3943
-#: appPlugins/ToolPaint.py:2811 appMain.py:6764 appMain.py:6785
-msgid "Selected tool can't be used here. Pick another."
-msgstr ""
-
-#: appPlugins/ToolCutOut.py:601
+#: appPlugins/ToolCutOut.py:583
msgid "Tool updated from Tools Database."
msgstr ""
-#: appPlugins/ToolCutOut.py:665 appPlugins/ToolCutOut.py:1434
+#: appPlugins/ToolCutOut.py:647 appPlugins/ToolCutOut.py:1416
msgid ""
"There is no object selected for Cutout.\n"
"Select one and try again."
msgstr ""
-#: appPlugins/ToolCutOut.py:671 appPlugins/ToolCutOut.py:1051 appPlugins/ToolCutOut.py:1537
+#: appPlugins/ToolCutOut.py:653 appPlugins/ToolCutOut.py:1033 appPlugins/ToolCutOut.py:1519
#: tclCommands/TclCommandGeoCutout.py:181
msgid "Tool Diameter is zero value. Change it to a positive real number."
msgstr ""
-#: appPlugins/ToolCutOut.py:684 appPlugins/ToolCutOut.py:1065
+#: appPlugins/ToolCutOut.py:666 appPlugins/ToolCutOut.py:1047
msgid "Number of gaps value is missing. Add it and retry."
msgstr ""
-#: appPlugins/ToolCutOut.py:689 appPlugins/ToolCutOut.py:1069
+#: appPlugins/ToolCutOut.py:671 appPlugins/ToolCutOut.py:1051
msgid ""
"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8.\n"
"Fill in a correct value and retry."
msgstr ""
-#: appPlugins/ToolCutOut.py:1014 appPlugins/ToolCutOut.py:1323 appPlugins/ToolCutOut.py:1889
+#: appPlugins/ToolCutOut.py:899 appPlugins/ToolCutOut.py:1305 appPlugins/ToolCutOut.py:1871
msgid "Mouse bites failed."
msgstr ""
-#: appPlugins/ToolCutOut.py:1024 tclCommands/TclCommandGeoCutout.py:294
+#: appPlugins/ToolCutOut.py:909 tclCommands/TclCommandGeoCutout.py:295
msgid "Any-form Cutout operation finished."
msgstr ""
-#: appPlugins/ToolCutOut.py:1045 appPlugins/ToolDrilling.py:1964
-#: appPlugins/ToolEtchCompensation.py:201 appPlugins/ToolFollow.py:214
-#: appPlugins/ToolFollow.py:264 appPlugins/ToolInvertGerber.py:149
-#: appPlugins/ToolIsolation.py:1181 appPlugins/ToolIsolation.py:1246
-#: appPlugins/ToolIsolation.py:1614 appPlugins/ToolIsolation.py:1641
-#: appPlugins/ToolIsolation.py:2568 appPlugins/ToolMilling.py:2755
-#: appPlugins/ToolMilling.py:2778 appPlugins/ToolMilling.py:2943 appPlugins/ToolNCC.py:1022
-#: appPlugins/ToolNCC.py:1091 appPlugins/ToolNCC.py:1536 appPlugins/ToolPaint.py:1158
-#: appPlugins/ToolPanelize.py:325 tclCommands/TclCommandBbox.py:71
+#: appPlugins/ToolCutOut.py:1027 appPlugins/ToolDrilling.py:1942
+#: appPlugins/ToolEtchCompensation.py:187 appPlugins/ToolFollow.py:198
+#: appPlugins/ToolFollow.py:248 appPlugins/ToolInvertGerber.py:136
+#: appPlugins/ToolIsolation.py:1166 appPlugins/ToolIsolation.py:1230
+#: appPlugins/ToolIsolation.py:1598 appPlugins/ToolIsolation.py:1627
+#: appPlugins/ToolIsolation.py:2608 appPlugins/ToolMilling.py:2719
+#: appPlugins/ToolMilling.py:2742 appPlugins/ToolMilling.py:2907 appPlugins/ToolNCC.py:1003
+#: appPlugins/ToolNCC.py:1072 appPlugins/ToolNCC.py:1517 appPlugins/ToolPaint.py:1138
+#: appPlugins/ToolPanelize.py:309 tclCommands/TclCommandBbox.py:71
#: tclCommands/TclCommandNregions.py:71
msgid "Object not found"
msgstr ""
-#: appPlugins/ToolCutOut.py:1171 appPlugins/ToolCutOut.py:1245
+#: appPlugins/ToolCutOut.py:1153 appPlugins/ToolCutOut.py:1227
msgid "Rectangular cutout with negative margin is not possible."
msgstr ""
-#: appPlugins/ToolCutOut.py:1332
+#: appPlugins/ToolCutOut.py:1314
msgid "Rectangular CutOut operation finished."
msgstr ""
-#: appPlugins/ToolCutOut.py:1447 appPlugins/ToolCutOut.py:1465 appPlugins/ToolCutOut.py:1479
+#: appPlugins/ToolCutOut.py:1429 appPlugins/ToolCutOut.py:1447 appPlugins/ToolCutOut.py:1461
msgid "Could not add drills."
msgstr ""
-#: appPlugins/ToolCutOut.py:1526 appPlugins/ToolCutOut.py:1596
+#: appPlugins/ToolCutOut.py:1508 appPlugins/ToolCutOut.py:1578
msgid "Geometry object for manual cutout not found"
msgstr ""
-#: appPlugins/ToolCutOut.py:1529
+#: appPlugins/ToolCutOut.py:1511
msgid "Click on the selected geometry object perimeter to create a bridge gap ..."
msgstr ""
-#: appPlugins/ToolCutOut.py:1635
+#: appPlugins/ToolCutOut.py:1617
msgid "No tool in the Geometry object."
msgstr ""
-#: appPlugins/ToolCutOut.py:1656
+#: appPlugins/ToolCutOut.py:1638
msgid "Added manual Bridge Gap. Left click to add another or right click to finish."
msgstr ""
-#: appPlugins/ToolCutOut.py:1673
+#: appPlugins/ToolCutOut.py:1655
msgid ""
"There is no Gerber object selected for Cutout.\n"
"Select one and try again."
msgstr ""
-#: appPlugins/ToolCutOut.py:1679
+#: appPlugins/ToolCutOut.py:1661
msgid ""
"The selected object has to be of Gerber type.\n"
"Select a Gerber file and try again."
msgstr ""
-#: appPlugins/ToolCutOut.py:1725
+#: appPlugins/ToolCutOut.py:1707
msgid "Geometry not supported"
msgstr ""
-#: appPlugins/ToolCutOut.py:1802
+#: appPlugins/ToolCutOut.py:1784
msgid "Making manual bridge gap..."
msgstr ""
-#: appPlugins/ToolCutOut.py:1894
+#: appPlugins/ToolCutOut.py:1876
msgid "Finished manual adding of gaps."
msgstr ""
-#: appPlugins/ToolCutOut.py:2258
+#: appPlugins/ToolCutOut.py:2240
msgid ""
"Create a Geometry object with toolpaths\n"
"for cutting out the object from the surrounding material."
msgstr ""
-#: appPlugins/ToolCutOut.py:2277
+#: appPlugins/ToolCutOut.py:2259
msgid "Object to be cutout"
msgstr ""
-#: appPlugins/ToolCutOut.py:2313
+#: appPlugins/ToolCutOut.py:2295
msgid ""
"Specify the type of object to be cutout.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -12743,18 +13838,18 @@ msgid ""
"of objects that will populate the 'Object' combobox."
msgstr ""
-#: appPlugins/ToolCutOut.py:2330
+#: appPlugins/ToolCutOut.py:2312
msgid "Cutout Tool"
msgstr ""
-#: appPlugins/ToolCutOut.py:2359 appPlugins/ToolIsolation.py:221
-#: appPlugins/ToolIsolation.py:3474 appPlugins/ToolMilling.py:4247
-#: appPlugins/ToolNCC.py:4263 appPlugins/ToolPaint.py:3119
+#: appPlugins/ToolCutOut.py:2341 appPlugins/ToolIsolation.py:202
+#: appPlugins/ToolIsolation.py:3520 appPlugins/ToolMilling.py:4214
+#: appPlugins/ToolNCC.py:4236 appPlugins/ToolPaint.py:3100
msgid "Search and Add"
msgstr ""
-#: appPlugins/ToolCutOut.py:2362 appPlugins/ToolIsolation.py:3477
-#: appPlugins/ToolMilling.py:4250 appPlugins/ToolNCC.py:4266 appPlugins/ToolPaint.py:3122
+#: appPlugins/ToolCutOut.py:2344 appPlugins/ToolIsolation.py:3523
+#: appPlugins/ToolMilling.py:4217 appPlugins/ToolNCC.py:4239 appPlugins/ToolPaint.py:3103
msgid ""
"Add a new tool to the Tool Table\n"
"with the diameter specified above.\n"
@@ -12763,14 +13858,14 @@ msgid ""
"in the Tools DB then a default tool is added."
msgstr ""
-#: appPlugins/ToolCutOut.py:2371 appPlugins/ToolIsolation.py:226
-#: appPlugins/ToolIsolation.py:3486 appPlugins/ToolMilling.py:425
-#: appPlugins/ToolMilling.py:4259 appPlugins/ToolNCC.py:4275 appPlugins/ToolPaint.py:3131
+#: appPlugins/ToolCutOut.py:2353 appPlugins/ToolIsolation.py:207
+#: appPlugins/ToolIsolation.py:3532 appPlugins/ToolMilling.py:399
+#: appPlugins/ToolMilling.py:4226 appPlugins/ToolNCC.py:4248 appPlugins/ToolPaint.py:3112
msgid "Pick from DB"
msgstr ""
-#: appPlugins/ToolCutOut.py:2374 appPlugins/ToolIsolation.py:3489
-#: appPlugins/ToolMilling.py:4262 appPlugins/ToolNCC.py:4278 appPlugins/ToolPaint.py:3134
+#: appPlugins/ToolCutOut.py:2356 appPlugins/ToolIsolation.py:3535
+#: appPlugins/ToolMilling.py:4229 appPlugins/ToolNCC.py:4251 appPlugins/ToolPaint.py:3115
msgid ""
"Add a new tool to the Tool Table\n"
"from the Tools Database.\n"
@@ -12778,185 +13873,185 @@ msgid ""
"Menu: Options -> Tools Database"
msgstr ""
-#: appPlugins/ToolCutOut.py:2567
+#: appPlugins/ToolCutOut.py:2549
msgid "Selection of the type of cutout."
msgstr ""
-#: appPlugins/ToolCutOut.py:2571 appPlugins/ToolPunchGerber.py:2326
+#: appPlugins/ToolCutOut.py:2553 appPlugins/ToolPunchGerber.py:2339
msgid "Automatic"
msgstr ""
-#: appPlugins/ToolCutOut.py:2612
+#: appPlugins/ToolCutOut.py:2594
msgid ""
"Checked: the cutout shape is rectangular.\n"
"Unchecked: any-form cutout shape."
msgstr ""
-#: appPlugins/ToolCutOut.py:2652
+#: appPlugins/ToolCutOut.py:2634
msgid "Manual cutout Geometry"
msgstr ""
-#: appPlugins/ToolCutOut.py:2654 appPlugins/ToolCutOut.py:2732
+#: appPlugins/ToolCutOut.py:2636 appPlugins/ToolCutOut.py:2714
msgid "Geometry object used to create the manual cutout."
msgstr ""
-#: appPlugins/ToolCutOut.py:2669
+#: appPlugins/ToolCutOut.py:2651
msgid "Manual Geometry"
msgstr ""
-#: appPlugins/ToolCutOut.py:2672
+#: appPlugins/ToolCutOut.py:2654
msgid "Generate a Geometry to be used as cutout."
msgstr ""
-#: appPlugins/ToolCutOut.py:2687
+#: appPlugins/ToolCutOut.py:2669
msgid ""
"Add new gaps on the selected Geometry object\n"
"by clicking mouse left button on the Geometry outline."
msgstr ""
-#: appPlugins/ToolCutOut.py:2697
+#: appPlugins/ToolCutOut.py:2679
msgid "Generate the cutout geometry."
msgstr ""
-#: appPlugins/ToolDblSided.py:306
+#: appPlugins/ToolDblSided.py:292
msgid "'Point' reference is selected and 'Point' coordinates are missing."
msgstr ""
-#: appPlugins/ToolDblSided.py:315
+#: appPlugins/ToolDblSided.py:301
msgid "Box reference object is missing."
msgstr ""
-#: appPlugins/ToolDblSided.py:323
+#: appPlugins/ToolDblSided.py:309
msgid "Not supported."
msgstr ""
-#: appPlugins/ToolDblSided.py:329
+#: appPlugins/ToolDblSided.py:315
msgid "Drill diameter is missing."
msgstr ""
-#: appPlugins/ToolDblSided.py:336
+#: appPlugins/ToolDblSided.py:322
msgid "Alignment drill coordinates are missing."
msgstr ""
-#: appPlugins/ToolDblSided.py:371
+#: appPlugins/ToolDblSided.py:357
msgid "Alignment Drills"
msgstr ""
-#: appPlugins/ToolDblSided.py:375
+#: appPlugins/ToolDblSided.py:361
msgid "Excellon object with alignment drills created..."
msgstr ""
-#: appPlugins/ToolDblSided.py:386 appPlugins/ToolPunchGerber.py:542
-#: appPlugins/ToolPunchGerber.py:580 appPlugins/ToolPunchGerber.py:685
+#: appPlugins/ToolDblSided.py:372 appPlugins/ToolPunchGerber.py:564
+#: appPlugins/ToolPunchGerber.py:602 appPlugins/ToolPunchGerber.py:707
msgid "There is no Excellon object loaded ..."
msgstr ""
-#: appPlugins/ToolDblSided.py:402
+#: appPlugins/ToolDblSided.py:388
msgid "Click on canvas within the desired Excellon drill hole"
msgstr ""
-#: appPlugins/ToolDblSided.py:446
+#: appPlugins/ToolDblSided.py:432
msgid "Mirror reference point set."
msgstr ""
-#: appPlugins/ToolDblSided.py:516
+#: appPlugins/ToolDblSided.py:502
msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
msgstr ""
-#: appPlugins/ToolDblSided.py:528
+#: appPlugins/ToolDblSided.py:514
msgid "There is no Box object loaded ..."
msgstr ""
-#: appPlugins/ToolDblSided.py:538
+#: appPlugins/ToolDblSided.py:524
msgid "There are no Point coordinates in the Point field. Add coords and try again ..."
msgstr ""
-#: appPlugins/ToolDblSided.py:545 camlib.py:2462
+#: appPlugins/ToolDblSided.py:531 camlib.py:2461
msgid "Object was mirrored"
msgstr ""
-#: appPlugins/ToolDblSided.py:715 appPlugins/ToolNCC.py:4069
+#: appPlugins/ToolDblSided.py:701 appPlugins/ToolNCC.py:4042
msgid ""
"Create a Geometry object with\n"
"toolpaths to cover the space outside the copper pattern."
msgstr ""
-#: appPlugins/ToolDblSided.py:738
+#: appPlugins/ToolDblSided.py:724
msgid "Objects to be mirrored"
msgstr ""
-#: appPlugins/ToolDblSided.py:751
+#: appPlugins/ToolDblSided.py:737
msgid "Select the type of application object to be processed in this tool."
msgstr ""
-#: appPlugins/ToolDblSided.py:770
+#: appPlugins/ToolDblSided.py:756
msgid "Bounds Values"
msgstr ""
-#: appPlugins/ToolDblSided.py:772
+#: appPlugins/ToolDblSided.py:758
msgid ""
"Select on canvas the object(s)\n"
"for which to calculate bounds values."
msgstr ""
-#: appPlugins/ToolDblSided.py:788
+#: appPlugins/ToolDblSided.py:774
msgid "X min"
msgstr ""
-#: appPlugins/ToolDblSided.py:790 appPlugins/ToolDblSided.py:804
+#: appPlugins/ToolDblSided.py:776 appPlugins/ToolDblSided.py:790
msgid "Minimum location."
msgstr ""
-#: appPlugins/ToolDblSided.py:802
+#: appPlugins/ToolDblSided.py:788
msgid "Y min"
msgstr ""
-#: appPlugins/ToolDblSided.py:816
+#: appPlugins/ToolDblSided.py:802
msgid "X max"
msgstr ""
-#: appPlugins/ToolDblSided.py:818 appPlugins/ToolDblSided.py:832
+#: appPlugins/ToolDblSided.py:804 appPlugins/ToolDblSided.py:818
msgid "Maximum location."
msgstr ""
-#: appPlugins/ToolDblSided.py:830
+#: appPlugins/ToolDblSided.py:816
msgid "Y max"
msgstr ""
-#: appPlugins/ToolDblSided.py:841
+#: appPlugins/ToolDblSided.py:827
msgid "Center point coordinates"
msgstr ""
-#: appPlugins/ToolDblSided.py:843
+#: appPlugins/ToolDblSided.py:829
msgid "Centroid"
msgstr ""
-#: appPlugins/ToolDblSided.py:845
+#: appPlugins/ToolDblSided.py:831
msgid ""
"The center point location for the rectangular\n"
"bounding shape. Centroid. Format is (x, y)."
msgstr ""
-#: appPlugins/ToolDblSided.py:854
+#: appPlugins/ToolDblSided.py:840
msgid "Calculate Bounds Values"
msgstr ""
-#: appPlugins/ToolDblSided.py:856
+#: appPlugins/ToolDblSided.py:842
msgid ""
"Calculate the enveloping rectangular shape coordinates,\n"
"for the selection of objects.\n"
"The envelope shape is parallel with the X, Y axis."
msgstr ""
-#: appPlugins/ToolDblSided.py:872
+#: appPlugins/ToolDblSided.py:858
msgid "Parameters for the mirror operation"
msgstr ""
-#: appPlugins/ToolDblSided.py:935
+#: appPlugins/ToolDblSided.py:921
msgid "Point coordinates"
msgstr ""
-#: appPlugins/ToolDblSided.py:947
+#: appPlugins/ToolDblSided.py:933
msgid ""
"Add the coordinates in format
(x, y) through which the mirroring axis\n"
" selected in 'MIRROR AXIS' pass.\n"
@@ -12964,53 +14059,53 @@ msgid ""
"and left mouse button click on canvas or you can enter the coordinates manually."
msgstr ""
-#: appPlugins/ToolDblSided.py:972
+#: appPlugins/ToolDblSided.py:958
msgid ""
"It can be of type: Gerber or Excellon or Geometry.\n"
"The coordinates of the center of the bounding box are used\n"
"as reference for mirror operation."
msgstr ""
-#: appPlugins/ToolDblSided.py:999
+#: appPlugins/ToolDblSided.py:985
msgid "Object that holds holes that can be picked as reference for mirroring."
msgstr ""
-#: appPlugins/ToolDblSided.py:1011
+#: appPlugins/ToolDblSided.py:997
msgid "Pick hole"
msgstr ""
-#: appPlugins/ToolDblSided.py:1013
+#: appPlugins/ToolDblSided.py:999
msgid ""
"Click inside a drill hole that belong to the selected Excellon object,\n"
"and the hole center coordinates will be copied to the Point field."
msgstr ""
-#: appPlugins/ToolDblSided.py:1025
+#: appPlugins/ToolDblSided.py:1011
msgid ""
"Mirrors (flips) the specified object around \n"
"the specified axis. Does not create a new \n"
"object, but modifies it."
msgstr ""
-#: appPlugins/ToolDblSided.py:1043 appPlugins/ToolDblSided.py:1145
+#: appPlugins/ToolDblSided.py:1029 appPlugins/ToolDblSided.py:1131
msgid ""
"Creates an Excellon Object containing the\n"
"specified alignment holes and their mirror\n"
"images."
msgstr ""
-#: appPlugins/ToolDblSided.py:1094 appPlugins/ToolDblSided.py:1101
+#: appPlugins/ToolDblSided.py:1080 appPlugins/ToolDblSided.py:1087
msgid ""
"The reference point used to create the second alignment drill\n"
"from the first alignment drill, by doing mirror.\n"
"It can be modified in the Mirror Parameters -> Reference section"
msgstr ""
-#: appPlugins/ToolDblSided.py:1111
+#: appPlugins/ToolDblSided.py:1097
msgid "Drill Coordinates"
msgstr ""
-#: appPlugins/ToolDblSided.py:1113
+#: appPlugins/ToolDblSided.py:1099
msgid ""
"Alignment holes (x1, y1), (x2, y2), ... \n"
"If the type is X or Y then for each pair of coordinates\n"
@@ -13022,310 +14117,308 @@ msgid ""
"Ctrl + Shift + mouse click will accumulate sets of coordinates. "
msgstr ""
-#: appPlugins/ToolDblSided.py:1126
+#: appPlugins/ToolDblSided.py:1112
msgid "Drill coordinates"
msgstr ""
-#: appPlugins/ToolDblSided.py:1131
+#: appPlugins/ToolDblSided.py:1117
msgid "Delete the last coordinates tuple in the list."
msgstr ""
-#: appPlugins/ToolDblSided.py:1142 appPlugins/ToolMarkers.py:1434
-#: appPlugins/ToolMarkers.py:1454
+#: appPlugins/ToolDblSided.py:1128 appPlugins/ToolMarkers.py:1522
+#: appPlugins/ToolMarkers.py:1542
msgid "Create Excellon Object"
msgstr ""
-#: appPlugins/ToolDistance.py:214
+#: appPlugins/ToolDistance.py:256
msgid "MEASURING: Click on the Start point ..."
msgstr ""
-#: appPlugins/ToolDistance.py:304 appPlugins/ToolDistance.py:835
-#: appPlugins/ToolObjectDistance.py:613
+#: appPlugins/ToolDistance.py:346 appPlugins/ToolDistance.py:980
+#: appPlugins/ToolObjectDistance.py:600
msgid "Measure"
msgstr ""
-#: appPlugins/ToolDistance.py:428
+#: appPlugins/ToolDistance.py:418
msgid "Click to add next point or right click to finish."
msgstr ""
-#: appPlugins/ToolDistance.py:475
+#: appPlugins/ToolDistance.py:465
msgid "Pads overlapped. Aborting."
msgstr ""
-#: appPlugins/ToolDistance.py:708
+#: appPlugins/ToolDistance.py:834
msgid "Snap to center"
msgstr ""
-#: appPlugins/ToolDistance.py:710
+#: appPlugins/ToolDistance.py:836
msgid ""
"Mouse cursor will snap to the center of the pad/drill\n"
"when it is hovering over the geometry of the pad/drill."
msgstr ""
-#: appPlugins/ToolDistance.py:715
+#: appPlugins/ToolDistance.py:841
msgid "Multi-Point"
msgstr ""
-#: appPlugins/ToolDistance.py:717
+#: appPlugins/ToolDistance.py:843
msgid "Make a measurement over multiple distance segments."
msgstr ""
-#: appPlugins/ToolDistance.py:739 appPlugins/ToolObjectDistance.py:504
+#: appPlugins/ToolDistance.py:850 appPlugins/ToolFiducials.py:1175
+#: appPlugins/ToolMarkers.py:1464
+msgid "Use a big cursor."
+msgstr ""
+
+#: appPlugins/ToolDistance.py:871 appPlugins/ToolObjectDistance.py:491
msgid "Start point"
msgstr ""
-#: appPlugins/ToolDistance.py:740 appPlugins/ToolDistance.py:745
-#: appPlugins/ToolObjectDistance.py:505 appPlugins/ToolObjectDistance.py:510
+#: appPlugins/ToolDistance.py:872 appPlugins/ToolDistance.py:877
+#: appPlugins/ToolObjectDistance.py:492 appPlugins/ToolObjectDistance.py:497
msgid "This is measuring Start point coordinates."
msgstr ""
-#: appPlugins/ToolDistance.py:752 appPlugins/ToolObjectDistance.py:517
+#: appPlugins/ToolDistance.py:884 appPlugins/ToolObjectDistance.py:504
msgid "End point"
msgstr ""
-#: appPlugins/ToolDistance.py:753 appPlugins/ToolDistance.py:758
-#: appPlugins/ToolObjectDistance.py:518 appPlugins/ToolObjectDistance.py:523
+#: appPlugins/ToolDistance.py:885 appPlugins/ToolDistance.py:890
+#: appPlugins/ToolObjectDistance.py:505 appPlugins/ToolObjectDistance.py:510
msgid "This is the measuring Stop point coordinates."
msgstr ""
-#: appPlugins/ToolDistance.py:767 appPlugins/ToolObjectDistance.py:532
+#: appPlugins/ToolDistance.py:899 appPlugins/ToolObjectDistance.py:519
msgid "Results"
msgstr ""
-#: appPlugins/ToolDistance.py:777 appPlugins/ToolObjectDistance.py:542
+#: appPlugins/ToolDistance.py:909 appPlugins/ToolObjectDistance.py:529
msgid "Dx"
msgstr ""
-#: appPlugins/ToolDistance.py:778 appPlugins/ToolDistance.py:783
-#: appPlugins/ToolObjectDistance.py:543 appPlugins/ToolObjectDistance.py:548
+#: appPlugins/ToolDistance.py:910 appPlugins/ToolDistance.py:915
+#: appPlugins/ToolObjectDistance.py:530 appPlugins/ToolObjectDistance.py:535
msgid "This is the distance measured over the X axis."
msgstr ""
-#: appPlugins/ToolDistance.py:790 appPlugins/ToolObjectDistance.py:555
+#: appPlugins/ToolDistance.py:922 appPlugins/ToolObjectDistance.py:542
msgid "Dy"
msgstr ""
-#: appPlugins/ToolDistance.py:791 appPlugins/ToolDistance.py:796
-#: appPlugins/ToolObjectDistance.py:556 appPlugins/ToolObjectDistance.py:561
+#: appPlugins/ToolDistance.py:923 appPlugins/ToolDistance.py:928
+#: appPlugins/ToolObjectDistance.py:543 appPlugins/ToolObjectDistance.py:548
msgid "This is the distance measured over the Y axis."
msgstr ""
-#: appPlugins/ToolDistance.py:804 appPlugins/ToolDistance.py:809
-#: appPlugins/ToolObjectDistance.py:569 appPlugins/ToolObjectDistance.py:574
+#: appPlugins/ToolDistance.py:936 appPlugins/ToolDistance.py:941
+#: appPlugins/ToolDistance.py:949 appPlugins/ToolDistance.py:954
+#: appPlugins/ToolObjectDistance.py:556 appPlugins/ToolObjectDistance.py:561
msgid "This is orientation angle of the measuring line."
msgstr ""
-#: appPlugins/ToolDistance.py:821 appPlugins/ToolObjectDistance.py:586
+#: appPlugins/ToolDistance.py:966 appPlugins/ToolObjectDistance.py:573
msgid "DISTANCE"
msgstr ""
-#: appPlugins/ToolDistance.py:822 appPlugins/ToolDistance.py:828
-#: appPlugins/ToolObjectDistance.py:587 appPlugins/ToolObjectDistance.py:593
+#: appPlugins/ToolDistance.py:967 appPlugins/ToolDistance.py:973
+#: appPlugins/ToolObjectDistance.py:574 appPlugins/ToolObjectDistance.py:580
msgid "This is the point to point Euclidian distance."
msgstr ""
-#: appPlugins/ToolDrilling.py:309 appPlugins/ToolMilling.py:439
+#: appPlugins/ToolDrilling.py:287 appPlugins/ToolMilling.py:413
msgid "coords"
msgstr ""
-#: appPlugins/ToolDrilling.py:924 appPlugins/ToolDrilling.py:930
-#: appPlugins/ToolDrilling.py:975 appPlugins/ToolDrilling.py:1255
-#: appPlugins/ToolDrilling.py:1262 appPlugins/ToolDrilling.py:1294
-#: appPlugins/ToolDrilling.py:1307 appPlugins/ToolDrilling.py:1311
-#: appPlugins/ToolDrilling.py:2513 appPlugins/ToolIsolation.py:664
-#: appPlugins/ToolIsolation.py:858 appPlugins/ToolIsolation.py:863
-#: appPlugins/ToolIsolation.py:893 appPlugins/ToolIsolation.py:918
-#: appPlugins/ToolIsolation.py:931 appPlugins/ToolIsolation.py:3512
-#: appPlugins/ToolMilling.py:994 appPlugins/ToolMilling.py:1113
-#: appPlugins/ToolMilling.py:1675 appPlugins/ToolMilling.py:1683
-#: appPlugins/ToolMilling.py:1687 appPlugins/ToolMilling.py:1744
-#: appPlugins/ToolMilling.py:1756 appPlugins/ToolMilling.py:1760
-#: appPlugins/ToolMilling.py:4287 appPlugins/ToolNCC.py:554 appPlugins/ToolNCC.py:559
-#: appPlugins/ToolNCC.py:589 appPlugins/ToolNCC.py:612 appPlugins/ToolNCC.py:625
-#: appPlugins/ToolNCC.py:840 appPlugins/ToolNCC.py:4300 appPlugins/ToolPaint.py:514
-#: appPlugins/ToolPaint.py:519 appPlugins/ToolPaint.py:568 appPlugins/ToolPaint.py:590
-#: appPlugins/ToolPaint.py:602 appPlugins/ToolPaint.py:818 appPlugins/ToolPaint.py:3156
+#: appPlugins/ToolDrilling.py:902 appPlugins/ToolDrilling.py:908
+#: appPlugins/ToolDrilling.py:953 appPlugins/ToolDrilling.py:1233
+#: appPlugins/ToolDrilling.py:1240 appPlugins/ToolDrilling.py:1272
+#: appPlugins/ToolDrilling.py:1285 appPlugins/ToolDrilling.py:1289
+#: appPlugins/ToolDrilling.py:2493 appPlugins/ToolIsolation.py:648
+#: appPlugins/ToolIsolation.py:842 appPlugins/ToolIsolation.py:847
+#: appPlugins/ToolIsolation.py:877 appPlugins/ToolIsolation.py:902
+#: appPlugins/ToolIsolation.py:915 appPlugins/ToolIsolation.py:3558
+#: appPlugins/ToolMilling.py:968 appPlugins/ToolMilling.py:1087
+#: appPlugins/ToolMilling.py:1648 appPlugins/ToolMilling.py:1656
+#: appPlugins/ToolMilling.py:1660 appPlugins/ToolMilling.py:1717
+#: appPlugins/ToolMilling.py:1729 appPlugins/ToolMilling.py:1733
+#: appPlugins/ToolMilling.py:4254 appPlugins/ToolNCC.py:534 appPlugins/ToolNCC.py:539
+#: appPlugins/ToolNCC.py:569 appPlugins/ToolNCC.py:592 appPlugins/ToolNCC.py:605
+#: appPlugins/ToolNCC.py:821 appPlugins/ToolNCC.py:4273 appPlugins/ToolPaint.py:493
+#: appPlugins/ToolPaint.py:498 appPlugins/ToolPaint.py:547 appPlugins/ToolPaint.py:569
+#: appPlugins/ToolPaint.py:581 appPlugins/ToolPaint.py:798 appPlugins/ToolPaint.py:3137
msgid "Parameters for"
msgstr ""
-#: appPlugins/ToolDrilling.py:924 appPlugins/ToolDrilling.py:1262
-#: appPlugins/ToolDrilling.py:1311 appPlugins/ToolIsolation.py:664
-#: appPlugins/ToolIsolation.py:863 appPlugins/ToolIsolation.py:931
-#: appPlugins/ToolMilling.py:994 appPlugins/ToolMilling.py:1113
-#: appPlugins/ToolMilling.py:1687 appPlugins/ToolMilling.py:1760 appPlugins/ToolNCC.py:559
-#: appPlugins/ToolNCC.py:625 appPlugins/ToolNCC.py:840 appPlugins/ToolPaint.py:519
-#: appPlugins/ToolPaint.py:602 appPlugins/ToolPaint.py:818
+#: appPlugins/ToolDrilling.py:902 appPlugins/ToolDrilling.py:1240
+#: appPlugins/ToolDrilling.py:1289 appPlugins/ToolIsolation.py:648
+#: appPlugins/ToolIsolation.py:847 appPlugins/ToolIsolation.py:915
+#: appPlugins/ToolMilling.py:968 appPlugins/ToolMilling.py:1087
+#: appPlugins/ToolMilling.py:1660 appPlugins/ToolMilling.py:1733 appPlugins/ToolNCC.py:539
+#: appPlugins/ToolNCC.py:605 appPlugins/ToolNCC.py:821 appPlugins/ToolPaint.py:498
+#: appPlugins/ToolPaint.py:581 appPlugins/ToolPaint.py:798
msgid "Multiple Tools"
msgstr ""
-#: appPlugins/ToolDrilling.py:975 appPlugins/ToolDrilling.py:1255
-#: appPlugins/ToolDrilling.py:1294 appPlugins/ToolIsolation.py:858
-#: appPlugins/ToolIsolation.py:893 appPlugins/ToolMilling.py:1675
-#: appPlugins/ToolMilling.py:1744 appPlugins/ToolNCC.py:554 appPlugins/ToolNCC.py:589
-#: appPlugins/ToolPaint.py:514 appPlugins/ToolPaint.py:568 appMain.py:2622
-msgid "No Tool Selected"
-msgstr ""
-
-#: appPlugins/ToolDrilling.py:1473 appPlugins/ToolIsolation.py:999
-#: appPlugins/ToolMilling.py:2056 appPlugins/ToolNCC.py:732 appPlugins/ToolPaint.py:667
+#: appPlugins/ToolDrilling.py:1451 appPlugins/ToolIsolation.py:983
+#: appPlugins/ToolMilling.py:2030 appPlugins/ToolNCC.py:712 appPlugins/ToolPaint.py:646
msgid "Current Tool parameters were applied to all tools."
msgstr ""
-#: appPlugins/ToolDrilling.py:1535 appPlugins/ToolMilling.py:3588
+#: appPlugins/ToolDrilling.py:1513 appPlugins/ToolMilling.py:3555
msgid "Focus Z"
msgstr ""
-#: appPlugins/ToolDrilling.py:1557 appPlugins/ToolMilling.py:3610
+#: appPlugins/ToolDrilling.py:1535 appPlugins/ToolMilling.py:3577
msgid "Laser Power"
msgstr ""
-#: appPlugins/ToolDrilling.py:1559 appPlugins/ToolMilling.py:3612
+#: appPlugins/ToolDrilling.py:1537 appPlugins/ToolMilling.py:3579
msgid "The laser power when the laser is cutting."
msgstr ""
-#: appPlugins/ToolDrilling.py:1678 appPlugins/ToolMilling.py:3775
+#: appPlugins/ToolDrilling.py:1656 appPlugins/ToolMilling.py:3742
msgid "Delete failed. There are no exclusion areas to delete."
msgstr ""
-#: appPlugins/ToolDrilling.py:1695 appPlugins/ToolMilling.py:3792
+#: appPlugins/ToolDrilling.py:1673 appPlugins/ToolMilling.py:3759
msgid "Delete failed. Nothing is selected."
msgstr ""
-#: appPlugins/ToolDrilling.py:1712 appPlugins/ToolMilling.py:3809
+#: appPlugins/ToolDrilling.py:1690 appPlugins/ToolMilling.py:3776
msgid "Only one selected row is allowed."
msgstr ""
-#: appPlugins/ToolDrilling.py:1813 appPlugins/ToolDrilling.py:1828
-#: appPlugins/ToolMilling.py:3910 appPlugins/ToolMilling.py:3925
+#: appPlugins/ToolDrilling.py:1791 appPlugins/ToolDrilling.py:1806
+#: appPlugins/ToolMilling.py:3877 appPlugins/ToolMilling.py:3892
msgid "Value edited in Exclusion Table."
msgstr ""
-#: appPlugins/ToolDrilling.py:1982 camlib.py:4281
+#: appPlugins/ToolDrilling.py:1960 camlib.py:4289
msgid "The loaded Excellon file has no drills"
msgstr ""
-#: appPlugins/ToolDrilling.py:2028 camlib.py:4201
+#: appPlugins/ToolDrilling.py:2006 camlib.py:4209
msgid "Creating a list of points to drill..."
msgstr ""
-#: appPlugins/ToolDrilling.py:2035
+#: appPlugins/ToolDrilling.py:2013
msgid "Drill points inside the exclusion zones."
msgstr ""
-#: appPlugins/ToolDrilling.py:2051 camlib.py:4271 camlib.py:5719 camlib.py:6158
+#: appPlugins/ToolDrilling.py:2029 camlib.py:4279 camlib.py:5727 camlib.py:6166
msgid "Starting G-Code"
msgstr ""
-#: appPlugins/ToolDrilling.py:2056
+#: appPlugins/ToolDrilling.py:2034
msgid "Generating CNCJob..."
msgstr ""
-#: appPlugins/ToolDrilling.py:2205 camlib.py:3361 camlib.py:3844 camlib.py:6015
+#: appPlugins/ToolDrilling.py:2185 camlib.py:3362 camlib.py:3848 camlib.py:6023
msgid "The Toolchange X,Y format has to be (x, y)."
msgstr ""
-#: appPlugins/ToolDrilling.py:2356
+#: appPlugins/ToolDrilling.py:2336
msgid "Generating CNC Code"
msgstr ""
-#: appPlugins/ToolDrilling.py:2425 appPlugins/ToolFilm.py:1280
+#: appPlugins/ToolDrilling.py:2405 appPlugins/ToolFilm.py:1272
msgid "Excellon object for drilling/milling operation."
msgstr ""
-#: appPlugins/ToolDrilling.py:2453
+#: appPlugins/ToolDrilling.py:2433
msgid "Tools in the object used for drilling."
msgstr ""
-#: appPlugins/ToolDrilling.py:2500
+#: appPlugins/ToolDrilling.py:2480
msgid "Search DB"
msgstr ""
-#: appPlugins/ToolDrilling.py:2503
+#: appPlugins/ToolDrilling.py:2483
msgid ""
"Will search and try to replace the tools from Tools Table\n"
"with tools from DB that have a close diameter value."
msgstr ""
-#: appPlugins/ToolDrilling.py:2516 appPlugins/ToolIsolation.py:3515
-#: appPlugins/ToolMilling.py:4290 appPlugins/ToolNCC.py:4302 appPlugins/ToolPaint.py:3159
+#: appPlugins/ToolDrilling.py:2496 appPlugins/ToolIsolation.py:3561
+#: appPlugins/ToolMilling.py:4257 appPlugins/ToolNCC.py:4275 appPlugins/ToolPaint.py:3140
msgid ""
"The data used for creating GCode.\n"
"Each tool store it's own set of such data."
msgstr ""
-#: appPlugins/ToolDrilling.py:2755 appPlugins/ToolIsolation.py:3715
-#: appPlugins/ToolMilling.py:4787 appPlugins/ToolNCC.py:4462 appPlugins/ToolPaint.py:3253
+#: appPlugins/ToolDrilling.py:2735 appPlugins/ToolIsolation.py:3761
+#: appPlugins/ToolMilling.py:4754 appPlugins/ToolNCC.py:4435 appPlugins/ToolPaint.py:3234
msgid "Apply parameters to all tools"
msgstr ""
-#: appPlugins/ToolDrilling.py:2758 appPlugins/ToolIsolation.py:3718
-#: appPlugins/ToolMilling.py:4790 appPlugins/ToolNCC.py:4465 appPlugins/ToolPaint.py:3256
+#: appPlugins/ToolDrilling.py:2738 appPlugins/ToolIsolation.py:3764
+#: appPlugins/ToolMilling.py:4757 appPlugins/ToolNCC.py:4438 appPlugins/ToolPaint.py:3237
msgid ""
"The parameters in the current form will be applied\n"
"on all the tools from the Tool Table."
msgstr ""
-#: appPlugins/ToolDrilling.py:2780 appPlugins/ToolMilling.py:4812
+#: appPlugins/ToolDrilling.py:2760 appPlugins/ToolMilling.py:4779
msgid "Tool change Z"
msgstr ""
-#: appPlugins/ToolDrilling.py:2856 appPlugins/ToolMilling.py:4875
+#: appPlugins/ToolDrilling.py:2836 appPlugins/ToolMilling.py:4842
msgid "X,Y coordinates"
msgstr ""
-#: appPlugins/ToolDrilling.py:2902
+#: appPlugins/ToolDrilling.py:2882
msgid ""
"The preprocessor JSON file that dictates\n"
"Gcode output for Excellon Objects."
msgstr ""
-#: appPlugins/ToolDrilling.py:2917 appPlugins/ToolMilling.py:4982
+#: appPlugins/ToolDrilling.py:2897 appPlugins/ToolMilling.py:4949
msgid "Add exclusion areas"
msgstr ""
-#: appPlugins/ToolDrilling.py:2944 appPlugins/ToolMilling.py:5010
+#: appPlugins/ToolDrilling.py:2924 appPlugins/ToolMilling.py:4977
msgid "This is the Area ID."
msgstr ""
-#: appPlugins/ToolDrilling.py:2946 appPlugins/ToolMilling.py:5012
+#: appPlugins/ToolDrilling.py:2926 appPlugins/ToolMilling.py:4979
msgid "Type of the object where the exclusion area was added."
msgstr ""
-#: appPlugins/ToolDrilling.py:2948 appPlugins/ToolMilling.py:5014
+#: appPlugins/ToolDrilling.py:2928 appPlugins/ToolMilling.py:4981
msgid "The strategy used for exclusion area. Go around the exclusion areas or over it."
msgstr ""
-#: appPlugins/ToolDrilling.py:2950 appPlugins/ToolMilling.py:5016
+#: appPlugins/ToolDrilling.py:2930 appPlugins/ToolMilling.py:4983
msgid ""
"If the strategy is to go over the area then this is the height at which the tool will go "
"to avoid the exclusion area."
msgstr ""
-#: appPlugins/ToolDrilling.py:2984 appPlugins/ToolMilling.py:5050
+#: appPlugins/ToolDrilling.py:2964 appPlugins/ToolMilling.py:5017
msgid "Add Area:"
msgstr ""
-#: appPlugins/ToolDrilling.py:2985 appPlugins/ToolMilling.py:5051
+#: appPlugins/ToolDrilling.py:2965 appPlugins/ToolMilling.py:5018
msgid "Add an Exclusion Area."
msgstr ""
-#: appPlugins/ToolDrilling.py:3003 appPlugins/ToolMilling.py:5069
+#: appPlugins/ToolDrilling.py:2983 appPlugins/ToolMilling.py:5036
msgid "Delete all exclusion areas."
msgstr ""
-#: appPlugins/ToolDrilling.py:3006 appPlugins/ToolMilling.py:5072
+#: appPlugins/ToolDrilling.py:2986 appPlugins/ToolMilling.py:5039
msgid "Delete Selected"
msgstr ""
-#: appPlugins/ToolDrilling.py:3007 appPlugins/ToolMilling.py:5073
+#: appPlugins/ToolDrilling.py:2987 appPlugins/ToolMilling.py:5040
msgid "Delete all exclusion areas that are selected in the table."
msgstr ""
-#: appPlugins/ToolDrilling.py:3023 appPlugins/ToolMilling.py:5088
+#: appPlugins/ToolDrilling.py:3003 appPlugins/ToolMilling.py:5055
msgid "Generate CNCJob object"
msgstr ""
-#: appPlugins/ToolDrilling.py:3026 appPlugins/ToolMilling.py:5091
+#: appPlugins/ToolDrilling.py:3006 appPlugins/ToolMilling.py:5058
msgid ""
"Generate the CNC Job.\n"
"If milling then an additional Geometry object will be created.\n"
@@ -13334,71 +14427,71 @@ msgid ""
"for custom selection of tools."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:104 appPlugins/ToolEtchCompensation.py:302
+#: appPlugins/ToolEtchCompensation.py:90 appPlugins/ToolEtchCompensation.py:288
msgid "Etch Compensation"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:207 appPlugins/ToolEtchCompensation.py:221
+#: appPlugins/ToolEtchCompensation.py:193 appPlugins/ToolEtchCompensation.py:207
msgid "Missing parameter value."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:332
+#: appPlugins/ToolEtchCompensation.py:318
msgid "Gerber object that will be compensated."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:349
+#: appPlugins/ToolEtchCompensation.py:335
msgid "Conversion utilities"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:360
+#: appPlugins/ToolEtchCompensation.py:346
msgid "Oz to Microns"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:362
+#: appPlugins/ToolEtchCompensation.py:348
msgid ""
"Will convert from oz thickness to microns [um].\n"
"Can use formulas with operators: /, *, +, -, %, .\n"
"The real numbers use the dot decimals separator."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:371
+#: appPlugins/ToolEtchCompensation.py:357
msgid "Oz value"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:373 appPlugins/ToolEtchCompensation.py:395
+#: appPlugins/ToolEtchCompensation.py:359 appPlugins/ToolEtchCompensation.py:381
msgid "Microns value"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:382
+#: appPlugins/ToolEtchCompensation.py:368
msgid "Mils to Microns"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:384
+#: appPlugins/ToolEtchCompensation.py:370
msgid ""
"Will convert from mils to microns [um].\n"
"Can use formulas with operators: /, *, +, -, %, .\n"
"The real numbers use the dot decimals separator."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:393
+#: appPlugins/ToolEtchCompensation.py:379
msgid "Mils value"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:417
+#: appPlugins/ToolEtchCompensation.py:403
msgid "Copper Thickness"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:419
+#: appPlugins/ToolEtchCompensation.py:405
msgid ""
"The thickness of the copper foil.\n"
"In microns [um]."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:429
+#: appPlugins/ToolEtchCompensation.py:415 appPlugins/ToolImage.py:832
msgid "Ratio"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:431
+#: appPlugins/ToolEtchCompensation.py:417
msgid ""
"The ratio of lateral etch versus depth etch.\n"
"Can be:\n"
@@ -13406,141 +14499,141 @@ msgid ""
"- preselection -> value which depends on a selection of etchants"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:437 appPlugins/ToolEtchCompensation.py:462
+#: appPlugins/ToolEtchCompensation.py:423 appPlugins/ToolEtchCompensation.py:448
msgid "Etch Factor"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:438
+#: appPlugins/ToolEtchCompensation.py:424
msgid "Etchants list"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:439
+#: appPlugins/ToolEtchCompensation.py:425
msgid "Manual offset"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:451
+#: appPlugins/ToolEtchCompensation.py:437
msgid "Etchants"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:453
+#: appPlugins/ToolEtchCompensation.py:439
msgid "A list of etchants."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:456
+#: appPlugins/ToolEtchCompensation.py:442
msgid "Alkaline baths"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:464
+#: appPlugins/ToolEtchCompensation.py:450
msgid ""
"The ratio between depth etch and lateral etch .\n"
"Accepts real numbers and formulas using the operators: /,*,+,-,%"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:468
+#: appPlugins/ToolEtchCompensation.py:454
msgid "Real number or formula"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:476
+#: appPlugins/ToolEtchCompensation.py:462
msgid ""
"Value with which to increase or decrease (buffer)\n"
"the copper features. In microns [um]."
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:497
+#: appPlugins/ToolEtchCompensation.py:483
msgid "Compensate"
msgstr ""
-#: appPlugins/ToolEtchCompensation.py:500
+#: appPlugins/ToolEtchCompensation.py:486
msgid "Will increase the copper features thickness to compensate the lateral etch."
msgstr ""
-#: appPlugins/ToolExtract.py:387
+#: appPlugins/ToolExtract.py:410
msgid "extracted"
msgstr ""
-#: appPlugins/ToolExtract.py:465 appPlugins/ToolExtract.py:570 appPlugins/ToolExtract.py:670
+#: appPlugins/ToolExtract.py:488 appPlugins/ToolExtract.py:593 appPlugins/ToolExtract.py:693
msgid "No drills extracted. Try different parameters."
msgstr ""
-#: appPlugins/ToolExtract.py:767
+#: appPlugins/ToolExtract.py:790
msgid "No soldermask extracted."
msgstr ""
-#: appPlugins/ToolExtract.py:816 appPlugins/ToolExtract.py:825 appPlugins/ToolExtract.py:829
+#: appPlugins/ToolExtract.py:839 appPlugins/ToolExtract.py:848 appPlugins/ToolExtract.py:852
msgid "No cutout extracted."
msgstr ""
-#: appPlugins/ToolExtract.py:985
+#: appPlugins/ToolExtract.py:1015
msgid "Gerber object from which to extract drill holes or soldermask."
msgstr ""
-#: appPlugins/ToolExtract.py:1027 appPlugins/ToolPunchGerber.py:2058
+#: appPlugins/ToolExtract.py:1057 appPlugins/ToolPunchGerber.py:2071
msgid "Process all Pads."
msgstr ""
-#: appPlugins/ToolExtract.py:1104 appPlugins/ToolExtract.py:1292
+#: appPlugins/ToolExtract.py:1135 appPlugins/ToolExtract.py:1323
msgid "Extract Drills"
msgstr ""
-#: appPlugins/ToolExtract.py:1106
+#: appPlugins/ToolExtract.py:1137
msgid "Extract an Excellon object from the Gerber pads."
msgstr ""
-#: appPlugins/ToolExtract.py:1295
+#: appPlugins/ToolExtract.py:1326
msgid "Extract drills from a given Gerber file."
msgstr ""
-#: appPlugins/ToolFiducials.py:349
+#: appPlugins/ToolFiducials.py:357
msgid "Click to add first Fiducial. Bottom Left..."
msgstr ""
-#: appPlugins/ToolFiducials.py:644
+#: appPlugins/ToolFiducials.py:665
msgid "Click to add the last fiducial. Top Right..."
msgstr ""
-#: appPlugins/ToolFiducials.py:649
+#: appPlugins/ToolFiducials.py:670
msgid "Click to add the second fiducial. Top Left or Bottom Right..."
msgstr ""
-#: appPlugins/ToolFiducials.py:755
+#: appPlugins/ToolFiducials.py:829
msgid "Fiducials Tool exit."
msgstr ""
-#: appPlugins/ToolFiducials.py:855
+#: appPlugins/ToolFiducials.py:942
msgid "Gerber object for adding fiducials and soldermask openings."
msgstr ""
-#: appPlugins/ToolFiducials.py:872
+#: appPlugins/ToolFiducials.py:959
msgid ""
"A table with the fiducial points coordinates,\n"
"in the format (x, y)."
msgstr ""
-#: appPlugins/ToolFiducials.py:910 appPlugins/ToolMarkers.py:1342
+#: appPlugins/ToolFiducials.py:997 appPlugins/ToolMarkers.py:1416
msgid "Top Right"
msgstr ""
-#: appPlugins/ToolFiducials.py:1042
+#: appPlugins/ToolFiducials.py:1131
msgid "Thickness of the line that makes the fiducial."
msgstr ""
-#: appPlugins/ToolFiducials.py:1075
+#: appPlugins/ToolFiducials.py:1164
msgid "Mode:"
msgstr ""
-#: appPlugins/ToolFiducials.py:1086
+#: appPlugins/ToolFiducials.py:1181
msgid "Add Fiducial"
msgstr ""
-#: appPlugins/ToolFiducials.py:1089
+#: appPlugins/ToolFiducials.py:1184
msgid "Will add a polygon on the copper layer to serve as fiducial."
msgstr ""
-#: appPlugins/ToolFiducials.py:1100
+#: appPlugins/ToolFiducials.py:1195
msgid "Add Soldermask Opening"
msgstr ""
-#: appPlugins/ToolFiducials.py:1102
+#: appPlugins/ToolFiducials.py:1197
msgid ""
"Will add a polygon on the soldermask layer\n"
"to serve as fiducial opening.\n"
@@ -13548,56 +14641,56 @@ msgid ""
"for the copper fiducial."
msgstr ""
-#: appPlugins/ToolFilm.py:318
+#: appPlugins/ToolFilm.py:302
msgid "Load an object for Film and retry."
msgstr ""
-#: appPlugins/ToolFilm.py:325
+#: appPlugins/ToolFilm.py:309
msgid "Load an object for Box and retry."
msgstr ""
-#: appPlugins/ToolFilm.py:340
+#: appPlugins/ToolFilm.py:324
msgid "Generating Film ..."
msgstr ""
-#: appPlugins/ToolFilm.py:403 appPlugins/ToolFilm.py:408
+#: appPlugins/ToolFilm.py:387 appPlugins/ToolFilm.py:392
msgid "Export positive film"
msgstr ""
-#: appPlugins/ToolFilm.py:440
+#: appPlugins/ToolFilm.py:424
msgid "No Excellon object selected. Load an object for punching reference and retry."
msgstr ""
-#: appPlugins/ToolFilm.py:464 appPlugins/ToolFilm.py:476 appPlugins/ToolPunchGerber.py:804
-#: appPlugins/ToolPunchGerber.py:937
+#: appPlugins/ToolFilm.py:448 appPlugins/ToolFilm.py:460 appPlugins/ToolPunchGerber.py:826
+#: appPlugins/ToolPunchGerber.py:959
msgid "Failed. Punch hole size is bigger than some of the apertures in the Gerber object."
msgstr ""
-#: appPlugins/ToolFilm.py:494 appPlugins/ToolPunchGerber.py:877
-#: appPlugins/ToolPunchGerber.py:972
+#: appPlugins/ToolFilm.py:478 appPlugins/ToolPunchGerber.py:899
+#: appPlugins/ToolPunchGerber.py:994
msgid ""
"Failed. The new object geometry is the same as the one in the source object geometry..."
msgstr ""
-#: appPlugins/ToolFilm.py:559 appPlugins/ToolFilm.py:564
+#: appPlugins/ToolFilm.py:550 appPlugins/ToolFilm.py:555
msgid "Export negative film"
msgstr ""
-#: appPlugins/ToolFilm.py:641 appPlugins/ToolFilm.py:863 appPlugins/ToolPanelize.py:338
+#: appPlugins/ToolFilm.py:632 appPlugins/ToolFilm.py:854 appPlugins/ToolPanelize.py:322
msgid "No object Box. Using instead"
msgstr ""
-#: appPlugins/ToolFilm.py:697 appPlugins/ToolFilm.py:920
+#: appPlugins/ToolFilm.py:688 appPlugins/ToolFilm.py:911
msgid "Film file exported to"
msgstr ""
-#: appPlugins/ToolFilm.py:1029
+#: appPlugins/ToolFilm.py:1020
msgid ""
"The artwork has to be within the selected page size in order to be visible.\n"
"For 'Bounds' page size, it needs to be in the first quadrant."
msgstr ""
-#: appPlugins/ToolFilm.py:1296
+#: appPlugins/ToolFilm.py:1288
msgid ""
"Specify the type of object for which to create the film.\n"
"The object can be of type: Gerber or Geometry.\n"
@@ -13605,7 +14698,7 @@ msgid ""
"in the Film Object combobox."
msgstr ""
-#: appPlugins/ToolFilm.py:1319
+#: appPlugins/ToolFilm.py:1311
msgid ""
"Specify the type of object to be used as an container for\n"
"film creation. It can be: Gerber or Geometry type.The selection here decide the type of "
@@ -13613,56 +14706,56 @@ msgid ""
"in the Box Object combobox."
msgstr ""
-#: appPlugins/ToolFilm.py:1447
+#: appPlugins/ToolFilm.py:1429
msgid ""
"'Length' -> deform by a length value\n"
"'Angle' -> deform by an angle\n"
"'Ratio' -> deform by a ratio between what should be and what is"
msgstr ""
-#: appPlugins/ToolFilm.py:1622
+#: appPlugins/ToolFilm.py:1599
msgid "Punch drill holes"
msgstr ""
-#: appPlugins/ToolFilm.py:1623
+#: appPlugins/ToolFilm.py:1600
msgid ""
"When checked the generated film will have holes in pads when\n"
"the generated film is positive. This is done to help drilling,\n"
"when done manually."
msgstr ""
-#: appPlugins/ToolFilm.py:1639
+#: appPlugins/ToolFilm.py:1616
msgid "Source"
msgstr ""
-#: appPlugins/ToolFilm.py:1641
+#: appPlugins/ToolFilm.py:1618
msgid ""
"The punch hole source can be:\n"
"- Excellon -> an Excellon holes center will serve as reference.\n"
"- Pad Center -> will try to use the pads center as reference."
msgstr ""
-#: appPlugins/ToolFilm.py:1646
+#: appPlugins/ToolFilm.py:1623
msgid "Pad center"
msgstr ""
-#: appPlugins/ToolFilm.py:1653
+#: appPlugins/ToolFilm.py:1630
msgid "Remove the geometry of Excellon from the Film to create the holes in pads."
msgstr ""
-#: appPlugins/ToolFilm.py:1664
+#: appPlugins/ToolFilm.py:1641
msgid "Punch Size"
msgstr ""
-#: appPlugins/ToolFilm.py:1665
+#: appPlugins/ToolFilm.py:1642
msgid "The value here will control how big is the punch hole in the pads."
msgstr ""
-#: appPlugins/ToolFilm.py:1804
+#: appPlugins/ToolFilm.py:1781
msgid "Save Film"
msgstr ""
-#: appPlugins/ToolFilm.py:1807
+#: appPlugins/ToolFilm.py:1784
msgid ""
"Create a Film for the selected object, within\n"
"the specified box. Does not create a new \n"
@@ -13670,96 +14763,107 @@ msgid ""
"selected format."
msgstr ""
-#: appPlugins/ToolFilm.py:1887
+#: appPlugins/ToolFilm.py:1864
msgid ""
"Using the Pad center does not work on Geometry objects. Only a Gerber object has pads."
msgstr ""
-#: appPlugins/ToolFollow.py:336 appPlugins/ToolFollow.py:404
+#: appPlugins/ToolFollow.py:320 appPlugins/ToolFollow.py:388
msgid "Failed to create Follow Geometry."
msgstr ""
-#: appPlugins/ToolFollow.py:693
+#: appPlugins/ToolFollow.py:677
msgid ""
"Create a Geometry object with\n"
"toolpaths to cut through the middle of polygons."
msgstr ""
-#: appPlugins/ToolFollow.py:716
+#: appPlugins/ToolFollow.py:700
msgid ""
"A Gerber object to be followed.\n"
"Create a Geometry object with a path\n"
"following the Gerber traces."
msgstr ""
-#: appPlugins/ToolFollow.py:745
+#: appPlugins/ToolFollow.py:729
msgid ""
"Selection of area to be processed.\n"
"- 'All Polygons' - the process will start after click.\n"
"- 'Area Selection' - left mouse click to start selection of the area to be processed."
msgstr ""
-#: appPlugins/ToolImage.py:99 appPlugins/ToolImage.py:309
+#: appPlugins/ToolImage.py:91 appPlugins/ToolImage.py:511
msgid "Image Import"
msgstr ""
-#: appPlugins/ToolImage.py:138 appPlugins/ToolImage.py:141
+#: appPlugins/ToolImage.py:161
+msgid "Import warning"
+msgstr ""
+
+#: appPlugins/ToolImage.py:162
+msgid ""
+"The tracing require Chromium,\n"
+"but it was not detected.\n"
+"\n"
+"Do you want to download it (about 300MB)?"
+msgstr ""
+
+#: appPlugins/ToolImage.py:182
+msgid ""
+"Please be patient. Chromium is being downloaded in the background.\n"
+"The app will resume after it is installed."
+msgstr ""
+
+#: appPlugins/ToolImage.py:191 appPlugins/ToolImage.py:194
msgid "Import IMAGE"
msgstr ""
-#: appPlugins/ToolImage.py:176 appPlugins/ToolPDF.py:114 appMain.py:11339 appMain.py:11395
-#: appMain.py:11490 appMain.py:11529 appMain.py:11597 appMain.py:11754 appMain.py:11841
-msgid "File no longer available."
+#: appPlugins/ToolImage.py:257
+msgid "Only Geometry and Gerber objects are supported"
msgstr ""
-#: appPlugins/ToolImage.py:188 appMain.py:11349 appMain.py:11405
-msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported"
+#: appPlugins/ToolImage.py:542 appPlugins/ToolReport.py:192
+msgid "Object Type"
msgstr ""
-#: appPlugins/ToolImage.py:216 appPlugins/ToolPcbWizard.py:373 appMain.py:11368
-#: appMain.py:11425 tclCommands/TclCommandImportSvg.py:84
-msgid "Importing"
-msgstr ""
-
-#: appPlugins/ToolImage.py:228 appPlugins/ToolPDF.py:230 appMain.py:11366 appMain.py:11423
-#: appMain.py:11511 appMain.py:11580 appMain.py:11650 appMain.py:11715 appMain.py:11775
-msgid "Opened"
-msgstr ""
-
-#: appPlugins/ToolImage.py:340
+#: appPlugins/ToolImage.py:544
msgid ""
"Specify the type of object to create from the image.\n"
"It can be of type: Gerber or Geometry."
msgstr ""
-#: appPlugins/ToolImage.py:350
+#: appPlugins/ToolImage.py:560
msgid "DPI value"
msgstr ""
-#: appPlugins/ToolImage.py:351
+#: appPlugins/ToolImage.py:561
msgid "Specify a DPI value for the image."
msgstr ""
-#: appPlugins/ToolImage.py:357
-msgid "Level of detail"
+#: appPlugins/ToolImage.py:566
+msgid "Area:"
msgstr ""
-#: appPlugins/ToolImage.py:363
-msgid "Image type"
+#: appPlugins/ToolImage.py:568
+msgid "Polygons inside the image with less area are discarded."
msgstr ""
-#: appPlugins/ToolImage.py:365
+#: appPlugins/ToolImage.py:584 appPlugins/ToolImage.py:602
msgid ""
"Choose a method for the image interpretation.\n"
"B/W means a black & white image. Color means a colored image."
msgstr ""
-#: appPlugins/ToolImage.py:375 appPlugins/ToolImage.py:391 appPlugins/ToolImage.py:405
-#: appPlugins/ToolImage.py:419
+#: appPlugins/ToolImage.py:622
+msgid "Level of detail"
+msgstr ""
+
+#: appPlugins/ToolImage.py:629 appPlugins/ToolImage.py:645 appPlugins/ToolImage.py:659
+#: appPlugins/ToolImage.py:673
msgid "Mask value"
msgstr ""
-#: appPlugins/ToolImage.py:377
+#: appPlugins/ToolImage.py:631
msgid ""
"Mask for monochrome image.\n"
"Takes values between [0 ... 255].\n"
@@ -13769,7 +14873,7 @@ msgid ""
"(which is totally black)."
msgstr ""
-#: appPlugins/ToolImage.py:393
+#: appPlugins/ToolImage.py:647
msgid ""
"Mask for RED color.\n"
"Takes values between [0 ... 255].\n"
@@ -13777,7 +14881,7 @@ msgid ""
"in the resulting geometry."
msgstr ""
-#: appPlugins/ToolImage.py:407
+#: appPlugins/ToolImage.py:661
msgid ""
"Mask for GREEN color.\n"
"Takes values between [0 ... 255].\n"
@@ -13785,7 +14889,7 @@ msgid ""
"in the resulting geometry."
msgstr ""
-#: appPlugins/ToolImage.py:421
+#: appPlugins/ToolImage.py:675
msgid ""
"Mask for BLUE color.\n"
"Takes values between [0 ... 255].\n"
@@ -13793,163 +14897,280 @@ msgid ""
"in the resulting geometry."
msgstr ""
-#: appPlugins/ToolImage.py:430
+#: appPlugins/ToolImage.py:694 appPlugins/ToolLevelling.py:1125
+#: appPlugins/ToolLevelling.py:1147 appPlugins/ToolLevelling.py:2010
+#: appPlugins/ToolLevelling.py:2025
+msgid "Control"
+msgstr ""
+
+#: appPlugins/ToolImage.py:696
+msgid "Tracing control."
+msgstr ""
+
+#: appPlugins/ToolImage.py:700 appPlugins/ToolImage.py:719
+msgid "Presets"
+msgstr ""
+
+#: appPlugins/ToolImage.py:721
+msgid "Options presets to control the tracing."
+msgstr ""
+
+#: appPlugins/ToolImage.py:745
+msgid "Error Threshold"
+msgstr ""
+
+#: appPlugins/ToolImage.py:747
+msgid "Error threshold for straight lines and quadratic splines."
+msgstr ""
+
+#: appPlugins/ToolImage.py:762
+msgid "Splines"
+msgstr ""
+
+#: appPlugins/ToolImage.py:772
+msgid "Enhance R Angle"
+msgstr ""
+
+#: appPlugins/ToolImage.py:774
+msgid "Enhance right angle corners."
+msgstr ""
+
+#: appPlugins/ToolImage.py:784
+msgid "Noise Reduction"
+msgstr ""
+
+#: appPlugins/ToolImage.py:788
+msgid "Path Omit"
+msgstr ""
+
+#: appPlugins/ToolImage.py:790
+msgid "Edge node paths shorter than this will be discarded for noise reduction."
+msgstr ""
+
+#: appPlugins/ToolImage.py:800
+msgid "Line Filter"
+msgstr ""
+
+#: appPlugins/ToolImage.py:813
+msgid "Sampling"
+msgstr ""
+
+#: appPlugins/ToolImage.py:815
+msgid "Palette"
+msgstr ""
+
+#: appPlugins/ToolImage.py:815
+msgid "Random"
+msgstr ""
+
+#: appPlugins/ToolImage.py:815
+msgid "Deterministic"
+msgstr ""
+
+#: appPlugins/ToolImage.py:822
+msgid "Number of colors to use on palette."
+msgstr ""
+
+#: appPlugins/ToolImage.py:834
+msgid ""
+"Color quantization will randomize a color if fewer pixels than (total pixels * ratio) has "
+"it."
+msgstr ""
+
+#: appPlugins/ToolImage.py:844
+msgid "Cycles"
+msgstr ""
+
+#: appPlugins/ToolImage.py:846
+msgid "Color quantization will be repeated this many times."
+msgstr ""
+
+#: appPlugins/ToolImage.py:865
+msgid "Stroke"
+msgstr ""
+
+#: appPlugins/ToolImage.py:867
+msgid "Width of the stroke to be applied to the shape."
+msgstr ""
+
+#: appPlugins/ToolImage.py:878
+msgid "Rounding"
+msgstr ""
+
+#: appPlugins/ToolImage.py:880
+msgid "Rounding coordinates to a given decimal place."
+msgstr ""
+
+#: appPlugins/ToolImage.py:895
+msgid "Blur"
+msgstr ""
+
+#: appPlugins/ToolImage.py:901
+msgid "Selective Gaussian blur preprocessing."
+msgstr ""
+
+#: appPlugins/ToolImage.py:911
+msgid "Delta"
+msgstr ""
+
+#: appPlugins/ToolImage.py:913
+msgid "RGBA delta threshold for selective Gaussian blur preprocessing."
+msgstr ""
+
+#: appPlugins/ToolImage.py:926
msgid "Import image"
msgstr ""
-#: appPlugins/ToolImage.py:432
+#: appPlugins/ToolImage.py:929
msgid "Open a image of raster type and then import it in FlatCAM."
msgstr ""
-#: appPlugins/ToolInvertGerber.py:237
+#: appPlugins/ToolInvertGerber.py:224
msgid "Gerber object that will be inverted."
msgstr ""
-#: appPlugins/ToolInvertGerber.py:258
+#: appPlugins/ToolInvertGerber.py:245
msgid "Parameters for this tool"
msgstr ""
-#: appPlugins/ToolInvertGerber.py:305
+#: appPlugins/ToolInvertGerber.py:292
msgid ""
"Will invert the Gerber object: areas that have copper\n"
"will be empty of copper and previous empty area will be\n"
"filled with copper."
msgstr ""
-#: appPlugins/ToolIsolation.py:1135 appPlugins/ToolIsolation.py:1274
-#: appPlugins/ToolNCC.py:976 appPlugins/ToolNCC.py:1120 appPlugins/ToolOptimal.py:263
+#: appPlugins/ToolIsolation.py:1119 appPlugins/ToolIsolation.py:1258
+#: appPlugins/ToolNCC.py:957 appPlugins/ToolNCC.py:1101 appPlugins/ToolOptimal.py:249
msgid ""
"The Gerber object has one Polygon as geometry.\n"
"There are no distances between geometry elements to be found."
msgstr ""
-#: appPlugins/ToolIsolation.py:1168 appPlugins/ToolIsolation.py:1233
-#: appPlugins/ToolNCC.py:1009 appPlugins/ToolNCC.py:1078
+#: appPlugins/ToolIsolation.py:1153 appPlugins/ToolIsolation.py:1217
+#: appPlugins/ToolNCC.py:990 appPlugins/ToolNCC.py:1059
msgid "Checking tools for validity."
msgstr ""
-#: appPlugins/ToolIsolation.py:1185 appPlugins/ToolIsolation.py:1250
-#: appPlugins/ToolNCC.py:1026 appPlugins/ToolNCC.py:1095
+#: appPlugins/ToolIsolation.py:1170 appPlugins/ToolIsolation.py:1234
+#: appPlugins/ToolNCC.py:1007 appPlugins/ToolNCC.py:1076
msgid "Checking ..."
msgstr ""
-#: appPlugins/ToolIsolation.py:1211 appPlugins/ToolIsolation.py:1669
-#: appPlugins/ToolIsolation.py:1990 appPlugins/ToolIsolation.py:2538
-#: appPlugins/ToolIsolation.py:2782 appPlugins/ToolNCC.py:1051 appPlugins/ToolNCC.py:1570
-#: appPlugins/ToolPaint.py:1186 appPlugins/ToolPaint.py:1895
+#: appPlugins/ToolIsolation.py:1194 appPlugins/ToolIsolation.py:1655
+#: appPlugins/ToolIsolation.py:1996 appPlugins/ToolIsolation.py:2578
+#: appPlugins/ToolIsolation.py:2822 appPlugins/ToolNCC.py:1032 appPlugins/ToolNCC.py:1551
+#: appPlugins/ToolPaint.py:1166 appPlugins/ToolPaint.py:1876
msgid "There are no tools selected in the Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:1219
+#: appPlugins/ToolIsolation.py:1202
msgid "Incomplete isolation. At least one tool could not do a complete isolation."
msgstr ""
-#: appPlugins/ToolIsolation.py:1320 appPlugins/ToolNCC.py:1165
+#: appPlugins/ToolIsolation.py:1304 appPlugins/ToolNCC.py:1146
msgid "Optimal tool diameter found"
msgstr ""
-#: appPlugins/ToolIsolation.py:1453 appPlugins/ToolMilling.py:2194
-#: appPlugins/ToolNCC.py:1314 appPlugins/ToolPaint.py:969
+#: appPlugins/ToolIsolation.py:1437 appPlugins/ToolMilling.py:2168
+#: appPlugins/ToolNCC.py:1295 appPlugins/ToolPaint.py:949
msgid "New tool added to Tool Table from Tools Database."
msgstr ""
-#: appPlugins/ToolIsolation.py:1501 appPlugins/ToolNCC.py:1374 appPlugins/ToolPaint.py:1028
+#: appPlugins/ToolIsolation.py:1485 appPlugins/ToolNCC.py:1355 appPlugins/ToolPaint.py:1008
msgid "Default tool added to Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:1532 appPlugins/ToolNCC.py:1431 appPlugins/ToolPaint.py:1053
+#: appPlugins/ToolIsolation.py:1516 appPlugins/ToolNCC.py:1412 appPlugins/ToolPaint.py:1033
+#: appPlugins/ToolSolderPaste.py:630
msgid "Tool from Tool Table was edited."
msgstr ""
-#: appPlugins/ToolIsolation.py:1544 appPlugins/ToolNCC.py:1444 appPlugins/ToolPaint.py:1066
-#: appPlugins/ToolSolderPaste.py:612
+#: appPlugins/ToolIsolation.py:1528 appPlugins/ToolNCC.py:1425 appPlugins/ToolPaint.py:1046
msgid "Cancelled. New diameter value is already in the Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:1592 appPlugins/ToolNCC.py:1495 appPlugins/ToolPaint.py:1116
-#: appPlugins/ToolSolderPaste.py:657
+#: appPlugins/ToolIsolation.py:1576 appPlugins/ToolNCC.py:1476 appPlugins/ToolPaint.py:1096
+#: appPlugins/ToolSolderPaste.py:687
msgid "Delete failed. Select a tool to delete."
msgstr ""
-#: appPlugins/ToolIsolation.py:1598 appPlugins/ToolNCC.py:1501 appPlugins/ToolPaint.py:1122
-msgid "Tool(s) deleted from Tool Table."
+#: appPlugins/ToolIsolation.py:1582 appPlugins/ToolNCC.py:1482 appPlugins/ToolPaint.py:1102
+#: appPlugins/ToolSolderPaste.py:692
+msgid "Tools deleted from Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:1648
+#: appPlugins/ToolIsolation.py:1634
msgid "Isolating"
msgstr ""
-#: appPlugins/ToolIsolation.py:1702
+#: appPlugins/ToolIsolation.py:1688
msgid "Click on a polygon to isolate it."
msgstr ""
-#: appPlugins/ToolIsolation.py:1871 appPlugins/ToolIsolation.py:1896
-#: appPlugins/ToolIsolation.py:2050 appPlugins/ToolIsolation.py:2258
+#: appPlugins/ToolIsolation.py:1866 appPlugins/ToolIsolation.py:1894
+#: appPlugins/ToolIsolation.py:2056 appPlugins/ToolIsolation.py:2283
msgid "Subtracting Geo"
msgstr ""
-#: appPlugins/ToolIsolation.py:1875 appPlugins/ToolIsolation.py:2054
-#: appPlugins/ToolIsolation.py:2262
+#: appPlugins/ToolIsolation.py:1870 appPlugins/ToolIsolation.py:2060
+#: appPlugins/ToolIsolation.py:2287
msgid "Intersecting Geo"
msgstr ""
-#: appPlugins/ToolIsolation.py:1922 appPlugins/ToolIsolation.py:2119
-#: appPlugins/ToolIsolation.py:2327
+#: appPlugins/ToolIsolation.py:1920 appPlugins/ToolIsolation.py:2137
+#: appPlugins/ToolIsolation.py:2364
msgid "Empty Geometry in"
msgstr ""
-#: appPlugins/ToolIsolation.py:2128
+#: appPlugins/ToolIsolation.py:2149
msgid ""
"Partial failure. The geometry was processed with all tools.\n"
"But there are still not-isolated geometry elements. Try to include a tool with smaller "
"diameter."
msgstr ""
-#: appPlugins/ToolIsolation.py:2131
+#: appPlugins/ToolIsolation.py:2152
msgid "The following are coordinates for the copper features that could not be isolated:"
msgstr ""
-#: appPlugins/ToolIsolation.py:2504 appPlugins/ToolPaint.py:1297
+#: appPlugins/ToolIsolation.py:2544 appPlugins/ToolPaint.py:1277
msgid "Removed polygon"
msgstr ""
-#: appPlugins/ToolIsolation.py:2505 appPlugins/ToolPaint.py:1298
+#: appPlugins/ToolIsolation.py:2545 appPlugins/ToolPaint.py:1278
msgid "Click to add/remove next polygon or right click to start."
msgstr ""
-#: appPlugins/ToolIsolation.py:2510 appPlugins/ToolPaint.py:1303
+#: appPlugins/ToolIsolation.py:2550 appPlugins/ToolPaint.py:1283
msgid "No polygon detected under click position."
msgstr ""
-#: appPlugins/ToolIsolation.py:2552 appPlugins/ToolPaint.py:1333
-#: appPlugins/ToolPunchGerber.py:1765
+#: appPlugins/ToolIsolation.py:2592 appPlugins/ToolPaint.py:1313
+#: appPlugins/ToolPunchGerber.py:1787
msgid "List of single polygons is empty. Aborting."
msgstr ""
-#: appPlugins/ToolIsolation.py:2687
+#: appPlugins/ToolIsolation.py:2727
msgid "Click the end point of the paint area."
msgstr ""
-#: appPlugins/ToolIsolation.py:2951 appPlugins/ToolNCC.py:3956 appPlugins/ToolPaint.py:2824
-#: appMain.py:6776 appMain.py:6795
-msgid "Tool from DB added in Tool Table."
-msgstr ""
-
-#: appPlugins/ToolIsolation.py:3001 appPlugins/ToolNCC.py:4005 appPlugins/ToolPaint.py:2880
+#: appPlugins/ToolIsolation.py:3041 appPlugins/ToolNCC.py:3978 appPlugins/ToolPaint.py:2861
+#: appPlugins/ToolSolderPaste.py:589
msgid "New tool added to Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:3349
+#: appPlugins/ToolIsolation.py:3395
msgid "Gerber object for isolation routing."
msgstr ""
-#: appPlugins/ToolIsolation.py:3373 appPlugins/ToolNCC.py:4143
+#: appPlugins/ToolIsolation.py:3419 appPlugins/ToolNCC.py:4116
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for copper clearing."
msgstr ""
-#: appPlugins/ToolIsolation.py:3397
+#: appPlugins/ToolIsolation.py:3443
msgid ""
"This is the Tool Number.\n"
"Isolation routing will start with the tool with the biggest \n"
@@ -13959,26 +15180,26 @@ msgid ""
"this function will not be able to create routing geometry."
msgstr ""
-#: appPlugins/ToolIsolation.py:3439 appPlugins/ToolMilling.py:4223 appPlugins/ToolNCC.py:230
-#: appPlugins/ToolNCC.py:4223 appPlugins/ToolPaint.py:227 appPlugins/ToolPaint.py:3093
+#: appPlugins/ToolIsolation.py:3485 appPlugins/ToolMilling.py:4190 appPlugins/ToolNCC.py:210
+#: appPlugins/ToolNCC.py:4196 appPlugins/ToolPaint.py:206 appPlugins/ToolPaint.py:3074
msgid "Add from DB"
msgstr ""
-#: appPlugins/ToolIsolation.py:3461 appPlugins/ToolNCC.py:4250
+#: appPlugins/ToolIsolation.py:3507 appPlugins/ToolNCC.py:4223
msgid ""
"Find a tool diameter that is guaranteed\n"
"to do a complete isolation."
msgstr ""
-#: appPlugins/ToolIsolation.py:3500 appPlugins/ToolMilling.py:4273
-#: appPlugins/ToolNCC.py:4289 appPlugins/ToolPaint.py:3145
-#: appPlugins/ToolSolderPaste.py:1303
+#: appPlugins/ToolIsolation.py:3546 appPlugins/ToolMilling.py:4240
+#: appPlugins/ToolNCC.py:4262 appPlugins/ToolPaint.py:3126
+#: appPlugins/ToolSolderPaste.py:1337
msgid ""
"Delete a selection of tools in the Tool Table\n"
"by first selecting a row in the Tool Table."
msgstr ""
-#: appPlugins/ToolIsolation.py:3795
+#: appPlugins/ToolIsolation.py:3857
msgid ""
"Specify the type of object to be excepted from isolation.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -13986,19 +15207,19 @@ msgid ""
"of objects that will populate the 'Object' combobox."
msgstr ""
-#: appPlugins/ToolIsolation.py:3805
+#: appPlugins/ToolIsolation.py:3867
msgid "Object whose area will be removed from isolation geometry."
msgstr ""
-#: appPlugins/ToolIsolation.py:3876 appPlugins/ToolPunchGerber.py:2338
+#: appPlugins/ToolIsolation.py:3938 appPlugins/ToolPunchGerber.py:2351
msgid "Select all available."
msgstr ""
-#: appPlugins/ToolIsolation.py:3882 appPlugins/ToolPunchGerber.py:2344
+#: appPlugins/ToolIsolation.py:3944 appPlugins/ToolPunchGerber.py:2357
msgid "Clear the selection."
msgstr ""
-#: appPlugins/ToolIsolation.py:3921
+#: appPlugins/ToolIsolation.py:3983
msgid ""
"Create a Geometry object with toolpaths to cut \n"
"isolation outside, inside or on both sides of the\n"
@@ -14011,301 +15232,296 @@ msgid ""
"diameter above."
msgstr ""
-#: appPlugins/ToolLevelling.py:574 appPlugins/ToolLevelling.py:904
+#: appPlugins/ToolLevelling.py:555 appPlugins/ToolLevelling.py:885
msgid ""
"Voronoi function can not be loaded.\n"
"Shapely >= 1.8 is required"
msgstr ""
-#: appPlugins/ToolLevelling.py:602
+#: appPlugins/ToolLevelling.py:583
msgid "Click on canvas to add a Probe Point..."
msgstr ""
-#: appPlugins/ToolLevelling.py:850
+#: appPlugins/ToolLevelling.py:831
msgid "Point is not within the object area. Choose another point."
msgstr ""
-#: appPlugins/ToolLevelling.py:870
+#: appPlugins/ToolLevelling.py:851
msgid "Added a Probe Point... Click again to add another or right click to finish ..."
msgstr ""
-#: appPlugins/ToolLevelling.py:892
+#: appPlugins/ToolLevelling.py:873
msgid "Finished adding Probe Points..."
msgstr ""
-#: appPlugins/ToolLevelling.py:1102
+#: appPlugins/ToolLevelling.py:1083
msgid "COM list updated ..."
msgstr ""
-#: appPlugins/ToolLevelling.py:1138
+#: appPlugins/ToolLevelling.py:1119
msgid "Connected"
msgstr ""
-#: appPlugins/ToolLevelling.py:1144 appPlugins/ToolLevelling.py:1166
-#: appPlugins/ToolLevelling.py:2029 appPlugins/ToolLevelling.py:2044
-msgid "Control"
-msgstr ""
-
-#: appPlugins/ToolLevelling.py:1146 appPlugins/ToolLevelling.py:1168
-#: appPlugins/ToolLevelling.py:2039 appPlugins/ToolLevelling.py:2046
+#: appPlugins/ToolLevelling.py:1127 appPlugins/ToolLevelling.py:1149
+#: appPlugins/ToolLevelling.py:2020 appPlugins/ToolLevelling.py:2027
msgid "Sender"
msgstr ""
-#: appPlugins/ToolLevelling.py:1149
+#: appPlugins/ToolLevelling.py:1130
msgid "Port connected"
msgstr ""
-#: appPlugins/ToolLevelling.py:1153
+#: appPlugins/ToolLevelling.py:1134
msgid "Could not connect to GRBL on port"
msgstr ""
-#: appPlugins/ToolLevelling.py:1160 appPlugins/ToolLevelling.py:2120
+#: appPlugins/ToolLevelling.py:1141 appPlugins/ToolLevelling.py:2101
msgid "Disconnected"
msgstr ""
-#: appPlugins/ToolLevelling.py:1170
+#: appPlugins/ToolLevelling.py:1151
msgid "Port is connected. Disconnecting"
msgstr ""
-#: appPlugins/ToolLevelling.py:1172
+#: appPlugins/ToolLevelling.py:1153
msgid "Could not connect to port"
msgstr ""
-#: appPlugins/ToolLevelling.py:1202 appPlugins/ToolLevelling.py:1636
+#: appPlugins/ToolLevelling.py:1183 appPlugins/ToolLevelling.py:1617
msgid "Sending"
msgstr ""
-#: appPlugins/ToolLevelling.py:1331
+#: appPlugins/ToolLevelling.py:1312
msgid "GRBL is doing a home cycle."
msgstr ""
-#: appPlugins/ToolLevelling.py:1337
+#: appPlugins/ToolLevelling.py:1318
msgid "GRBL software reset was sent."
msgstr ""
-#: appPlugins/ToolLevelling.py:1345
+#: appPlugins/ToolLevelling.py:1326
msgid "GRBL resumed."
msgstr ""
-#: appPlugins/ToolLevelling.py:1349
+#: appPlugins/ToolLevelling.py:1330
msgid "GRBL paused."
msgstr ""
-#: appPlugins/ToolLevelling.py:1523
+#: appPlugins/ToolLevelling.py:1504
msgid "There is nothing to view"
msgstr ""
-#: appPlugins/ToolLevelling.py:1529
+#: appPlugins/ToolLevelling.py:1510
msgid "Code Viewer"
msgstr ""
-#: appPlugins/ToolLevelling.py:1567
+#: appPlugins/ToolLevelling.py:1548
msgid "Loaded Machine Code into Code Viewer"
msgstr ""
-#: appPlugins/ToolLevelling.py:1581 appPlugins/ToolLevelling.py:1585
-#: appPlugins/ToolLevelling.py:2334
+#: appPlugins/ToolLevelling.py:1562 appPlugins/ToolLevelling.py:1566
+#: appPlugins/ToolLevelling.py:2315
msgid "Import Height Map"
msgstr ""
-#: appPlugins/ToolLevelling.py:1612
+#: appPlugins/ToolLevelling.py:1593
msgid "Failed to open height map file"
msgstr ""
-#: appPlugins/ToolLevelling.py:1662
+#: appPlugins/ToolLevelling.py:1643
msgid "Finished probing. Doing the autolevelling."
msgstr ""
-#: appPlugins/ToolLevelling.py:1667
+#: appPlugins/ToolLevelling.py:1648
msgid "Sending probing GCode to the GRBL controller."
msgstr ""
-#: appPlugins/ToolLevelling.py:1710
+#: appPlugins/ToolLevelling.py:1691
msgid "Empty GRBL heightmap."
msgstr ""
-#: appPlugins/ToolLevelling.py:1714
+#: appPlugins/ToolLevelling.py:1695
msgid "Finished autolevelling."
msgstr ""
-#: appPlugins/ToolLevelling.py:1783
+#: appPlugins/ToolLevelling.py:1764
msgid "CNCJob source object to be levelled."
msgstr ""
-#: appPlugins/ToolLevelling.py:1816
+#: appPlugins/ToolLevelling.py:1797
msgid "Probe Points Table"
msgstr ""
-#: appPlugins/ToolLevelling.py:1817
+#: appPlugins/ToolLevelling.py:1798
msgid "Generate GCode that will obtain the height map"
msgstr ""
-#: appPlugins/ToolLevelling.py:1819
+#: appPlugins/ToolLevelling.py:1800
msgid "Show"
msgstr ""
-#: appPlugins/ToolLevelling.py:1820
+#: appPlugins/ToolLevelling.py:1801
msgid "Toggle the display of the Probe Points table."
msgstr ""
-#: appPlugins/ToolLevelling.py:1843
+#: appPlugins/ToolLevelling.py:1824
msgid "X-Y Coordinates"
msgstr ""
-#: appPlugins/ToolLevelling.py:1843
+#: appPlugins/ToolLevelling.py:1824
msgid "Height"
msgstr ""
-#: appPlugins/ToolLevelling.py:1847
+#: appPlugins/ToolLevelling.py:1828
msgid "Plot probing points"
msgstr ""
-#: appPlugins/ToolLevelling.py:1849
+#: appPlugins/ToolLevelling.py:1830
msgid ""
"Plot the probing points in the table.\n"
"If a Voronoi method is used then\n"
"the Voronoi areas are also plotted."
msgstr ""
-#: appPlugins/ToolLevelling.py:1860
+#: appPlugins/ToolLevelling.py:1841
msgid ""
"Will create a GCode which will be sent to the controller,\n"
"either through a file or directly, with the intent to get the height map\n"
"that is to modify the original GCode to level the cutting height."
msgstr ""
-#: appPlugins/ToolLevelling.py:1969
+#: appPlugins/ToolLevelling.py:1950
msgid "Add Probe Points"
msgstr ""
-#: appPlugins/ToolLevelling.py:2060
+#: appPlugins/ToolLevelling.py:2041
msgid "COM list"
msgstr ""
-#: appPlugins/ToolLevelling.py:2062 appPlugins/ToolLevelling.py:2077
+#: appPlugins/ToolLevelling.py:2043 appPlugins/ToolLevelling.py:2058
msgid "Lists the available serial ports."
msgstr ""
-#: appPlugins/ToolLevelling.py:2066
+#: appPlugins/ToolLevelling.py:2047
msgid "Search"
msgstr ""
-#: appPlugins/ToolLevelling.py:2068
+#: appPlugins/ToolLevelling.py:2049
msgid "Search for the available serial ports."
msgstr ""
-#: appPlugins/ToolLevelling.py:2075
+#: appPlugins/ToolLevelling.py:2056
msgid "Baud rates"
msgstr ""
-#: appPlugins/ToolLevelling.py:2094
+#: appPlugins/ToolLevelling.py:2075
msgid "New, custom baudrate."
msgstr ""
-#: appPlugins/ToolLevelling.py:2102
+#: appPlugins/ToolLevelling.py:2083
msgid "Add the specified custom baudrate to the list."
msgstr ""
-#: appPlugins/ToolLevelling.py:2108
+#: appPlugins/ToolLevelling.py:2089
msgid "Delete selected baudrate"
msgstr ""
-#: appPlugins/ToolLevelling.py:2112
+#: appPlugins/ToolLevelling.py:2093
msgid "Reset"
msgstr ""
-#: appPlugins/ToolLevelling.py:2114
+#: appPlugins/ToolLevelling.py:2095
msgid "Software reset of the controller."
msgstr ""
-#: appPlugins/ToolLevelling.py:2122
+#: appPlugins/ToolLevelling.py:2103
msgid "Connect to the selected port with the selected baud rate."
msgstr ""
-#: appPlugins/ToolLevelling.py:2146
+#: appPlugins/ToolLevelling.py:2127
msgid "Jog"
msgstr ""
-#: appPlugins/ToolLevelling.py:2154
+#: appPlugins/ToolLevelling.py:2135
msgid "Zero Axes"
msgstr ""
-#: appPlugins/ToolLevelling.py:2188
+#: appPlugins/ToolLevelling.py:2169
msgid "Pause/Resume"
msgstr ""
-#: appPlugins/ToolLevelling.py:2247
+#: appPlugins/ToolLevelling.py:2228
msgid "Send Command"
msgstr ""
-#: appPlugins/ToolLevelling.py:2249 appPlugins/ToolLevelling.py:2259
+#: appPlugins/ToolLevelling.py:2230 appPlugins/ToolLevelling.py:2240
msgid "Send a custom command to GRBL."
msgstr ""
-#: appPlugins/ToolLevelling.py:2254
+#: appPlugins/ToolLevelling.py:2235
msgid "Type GRBL command ..."
msgstr ""
-#: appPlugins/ToolLevelling.py:2257
+#: appPlugins/ToolLevelling.py:2238
msgid "Send"
msgstr ""
-#: appPlugins/ToolLevelling.py:2265
+#: appPlugins/ToolLevelling.py:2246
msgid "Get Config parameter"
msgstr ""
-#: appPlugins/ToolLevelling.py:2267
+#: appPlugins/ToolLevelling.py:2248
msgid "A GRBL configuration parameter."
msgstr ""
-#: appPlugins/ToolLevelling.py:2272
+#: appPlugins/ToolLevelling.py:2253
msgid "Type GRBL parameter ..."
msgstr ""
-#: appPlugins/ToolLevelling.py:2275
+#: appPlugins/ToolLevelling.py:2256
msgid "Get"
msgstr ""
-#: appPlugins/ToolLevelling.py:2277
+#: appPlugins/ToolLevelling.py:2258
msgid "Get the value of a specified GRBL parameter."
msgstr ""
-#: appPlugins/ToolLevelling.py:2285
+#: appPlugins/ToolLevelling.py:2266
msgid "Get Report"
msgstr ""
-#: appPlugins/ToolLevelling.py:2287
+#: appPlugins/ToolLevelling.py:2268
msgid "Print in shell the GRBL report."
msgstr ""
-#: appPlugins/ToolLevelling.py:2293
+#: appPlugins/ToolLevelling.py:2274
msgid "Apply AutoLevelling"
msgstr ""
-#: appPlugins/ToolLevelling.py:2295
+#: appPlugins/ToolLevelling.py:2276
msgid ""
"Will send the probing GCode to the GRBL controller,\n"
"wait for the Z probing data and then apply this data\n"
"over the original GCode therefore doing autolevelling."
msgstr ""
-#: appPlugins/ToolLevelling.py:2304
+#: appPlugins/ToolLevelling.py:2285
msgid "Will save the GRBL height map."
msgstr ""
-#: appPlugins/ToolLevelling.py:2314
+#: appPlugins/ToolLevelling.py:2295
msgid "Save Probing GCode"
msgstr ""
-#: appPlugins/ToolLevelling.py:2316
+#: appPlugins/ToolLevelling.py:2297
msgid "Will save the probing GCode."
msgstr ""
-#: appPlugins/ToolLevelling.py:2327
+#: appPlugins/ToolLevelling.py:2308
msgid "View/Edit the probing GCode."
msgstr ""
-#: appPlugins/ToolLevelling.py:2336
+#: appPlugins/ToolLevelling.py:2317
msgid ""
"Import the file that has the Z heights\n"
"obtained through probing and then apply this data\n"
@@ -14313,85 +15529,93 @@ msgid ""
"doing autolevelling."
msgstr ""
-#: appPlugins/ToolMarkers.py:300 appPlugins/ToolMarkers.py:1110
+#: appPlugins/ToolMarkers.py:319 appPlugins/ToolMarkers.py:1181
msgid "Click to add next marker or right click to finish."
msgstr ""
-#: appPlugins/ToolMarkers.py:447 appPlugins/ToolMarkers.py:758 appPlugins/ToolMarkers.py:804
-#: appPlugins/ToolMarkers.py:867 appPlugins/ToolMarkers.py:913
+#: appPlugins/ToolMarkers.py:514 appPlugins/ToolMarkers.py:825 appPlugins/ToolMarkers.py:871
+#: appPlugins/ToolMarkers.py:934 appPlugins/ToolMarkers.py:980
msgid "Please select at least a location"
msgstr ""
-#: appPlugins/ToolMarkers.py:735 appPlugins/ToolMarkers.py:844
+#: appPlugins/ToolMarkers.py:802 appPlugins/ToolMarkers.py:911
msgid "The tool diameter is zero."
msgstr ""
-#: appPlugins/ToolMarkers.py:836 appPlugins/ToolMarkers.py:952
+#: appPlugins/ToolMarkers.py:903 appPlugins/ToolMarkers.py:1019
msgid "Excellon object with corner drills created."
msgstr ""
-#: appPlugins/ToolMarkers.py:988 appPlugins/ToolSolderPaste.py:932
+#: appPlugins/ToolMarkers.py:1055 appPlugins/ToolSolderPaste.py:966
msgid "There is no Geometry object available."
msgstr ""
-#: appPlugins/ToolMarkers.py:1052
+#: appPlugins/ToolMarkers.py:1123
msgid "A Gerber object with corner markers was created."
msgstr ""
-#: appPlugins/ToolMarkers.py:1109
+#: appPlugins/ToolMarkers.py:1180
msgid "Added marker"
msgstr ""
-#: appPlugins/ToolMarkers.py:1190
+#: appPlugins/ToolMarkers.py:1264
msgid "The Gerber object to which will be added corner markers."
msgstr ""
-#: appPlugins/ToolMarkers.py:1276
+#: appPlugins/ToolMarkers.py:1350
msgid ""
"Reference for offseting the marker locations.\n"
"- Edge - referenced from the bounding box edge\n"
"- Center - referenced from the bounding box center"
msgstr ""
-#: appPlugins/ToolMarkers.py:1326
+#: appPlugins/ToolMarkers.py:1400
msgid "Locations"
msgstr ""
-#: appPlugins/ToolMarkers.py:1327
+#: appPlugins/ToolMarkers.py:1401
msgid "Locations where to place corner markers."
msgstr ""
-#: appPlugins/ToolMarkers.py:1359
+#: appPlugins/ToolMarkers.py:1433
msgid "Toggle ALL"
msgstr ""
-#: appPlugins/ToolMarkers.py:1378
+#: appPlugins/ToolMarkers.py:1452
msgid ""
"When the manual type is chosen, the markers\n"
"are manually placed on canvas."
msgstr ""
-#: appPlugins/ToolMarkers.py:1393
+#: appPlugins/ToolMarkers.py:1457
+msgid "Numeric"
+msgstr ""
+
+#: appPlugins/ToolMarkers.py:1470
+msgid "Tuple of marker coordinates."
+msgstr ""
+
+#: appPlugins/ToolMarkers.py:1481
msgid "Add Marker"
msgstr ""
-#: appPlugins/ToolMarkers.py:1396 appPlugins/ToolMarkers.py:1506
+#: appPlugins/ToolMarkers.py:1484 appPlugins/ToolMarkers.py:1598
msgid "Will add corner markers to the selected object."
msgstr ""
-#: appPlugins/ToolMarkers.py:1410
+#: appPlugins/ToolMarkers.py:1498
msgid "Drills in Locations"
msgstr ""
-#: appPlugins/ToolMarkers.py:1437
+#: appPlugins/ToolMarkers.py:1525
msgid "Will add drill holes in the center of the markers."
msgstr ""
-#: appPlugins/ToolMarkers.py:1450
+#: appPlugins/ToolMarkers.py:1538
msgid "Check in Locations"
msgstr ""
-#: appPlugins/ToolMarkers.py:1457
+#: appPlugins/ToolMarkers.py:1545
msgid ""
"Will create an Excellon object using a special preprocessor.\n"
"The spindle will not start and the mounted probe will move to\n"
@@ -14399,37 +15623,43 @@ msgid ""
"move to the next location until the last one."
msgstr ""
-#: appPlugins/ToolMarkers.py:1473
+#: appPlugins/ToolMarkers.py:1561
msgid "Insert Markers"
msgstr ""
-#: appPlugins/ToolMarkers.py:1484
+#: appPlugins/ToolMarkers.py:1563
+msgid ""
+"Enabled only if markers are available (added to an object).\n"
+"Those markers will be inserted in yet another object."
+msgstr ""
+
+#: appPlugins/ToolMarkers.py:1576
msgid "Specify the type of object where the markers are inserted."
msgstr ""
-#: appPlugins/ToolMarkers.py:1503
+#: appPlugins/ToolMarkers.py:1595
msgid "Insert Marker"
msgstr ""
-#: appPlugins/ToolMilling.py:911
+#: appPlugins/ToolMilling.py:885
msgid "Could not build the Plugin UI"
msgstr ""
-#: appPlugins/ToolMilling.py:1372
+#: appPlugins/ToolMilling.py:1345
msgid "Milling Tool"
msgstr ""
-#: appPlugins/ToolMilling.py:1442
+#: appPlugins/ToolMilling.py:1415
msgid "Pressure"
msgstr ""
-#: appPlugins/ToolMilling.py:1444
+#: appPlugins/ToolMilling.py:1417
msgid ""
"Negative value. The higher the absolute value\n"
"the stronger the pressure of the brush on the material."
msgstr ""
-#: appPlugins/ToolMilling.py:1970
+#: appPlugins/ToolMilling.py:1944
msgid ""
"For V-shape tools the depth of cut is\n"
"calculated from other parameters like:\n"
@@ -14439,70 +15669,62 @@ msgid ""
"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
msgstr ""
-#: appPlugins/ToolMilling.py:2252
+#: appPlugins/ToolMilling.py:2226
msgid "Tool added in Tool Table."
msgstr ""
-#: appPlugins/ToolMilling.py:2367
+#: appPlugins/ToolMilling.py:2341
msgid "Tool was edited in Tool Table."
msgstr ""
-#: appPlugins/ToolMilling.py:2396 appPlugins/ToolMilling.py:2405
+#: appPlugins/ToolMilling.py:2370 appPlugins/ToolMilling.py:2379
msgid "Failed. Select a tool to copy."
msgstr ""
-#: appPlugins/ToolMilling.py:2429
+#: appPlugins/ToolMilling.py:2403
msgid "Tool was copied in Tool Table."
msgstr ""
-#: appPlugins/ToolMilling.py:2461 appPlugins/ToolMilling.py:2470
+#: appPlugins/ToolMilling.py:2431 appPlugins/ToolMilling.py:2440
msgid "Failed. Select a tool to delete."
msgstr ""
-#: appPlugins/ToolMilling.py:2491
+#: appPlugins/ToolMilling.py:2461
msgid "Tool was deleted in Tool Table."
msgstr ""
-#: appPlugins/ToolMilling.py:2594
-msgid "Generating drills milling geometry..."
-msgstr ""
-
-#: appPlugins/ToolMilling.py:2693
-msgid "Generating slot milling geometry..."
-msgstr ""
-
-#: appPlugins/ToolMilling.py:2785 appPlugins/ToolMilling.py:2950
+#: appPlugins/ToolMilling.py:2749 appPlugins/ToolMilling.py:2914
msgid "This Geometry can't be processed because it is"
msgstr ""
-#: appPlugins/ToolMilling.py:2818 appPlugins/ToolMilling.py:2984
+#: appPlugins/ToolMilling.py:2782 appPlugins/ToolMilling.py:2948
msgid "Failed. No tool selected in the tool table ..."
msgstr ""
-#: appPlugins/ToolMilling.py:3328 appPlugins/ToolPaint.py:1839
+#: appPlugins/ToolMilling.py:3295 appPlugins/ToolPaint.py:1820
msgid "Geometry could not be painted completely"
msgstr ""
-#: appPlugins/ToolMilling.py:3985 appPlugins/ToolNCC.py:4093 appPlugins/ToolPaint.py:2970
+#: appPlugins/ToolMilling.py:3952 appPlugins/ToolNCC.py:4066 appPlugins/ToolPaint.py:2951
msgid "Source object for milling operation."
msgstr ""
-#: appPlugins/ToolMilling.py:3998
+#: appPlugins/ToolMilling.py:3965
msgid "Object for milling operation."
msgstr ""
-#: appPlugins/ToolMilling.py:4037
+#: appPlugins/ToolMilling.py:4004
msgid "Tools in the object used for milling."
msgstr ""
-#: appPlugins/ToolMilling.py:4185
+#: appPlugins/ToolMilling.py:4152
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 ""
-#: appPlugins/ToolMilling.py:4195
+#: appPlugins/ToolMilling.py:4162
msgid ""
"Plot column. It is visible only for MultiGeo geometries, meaning geometries that holds "
"the geometry\n"
@@ -14513,11 +15735,11 @@ msgid ""
"for the corresponding tool."
msgstr ""
-#: appPlugins/ToolMilling.py:4355
+#: appPlugins/ToolMilling.py:4322
msgid "Offset Type"
msgstr ""
-#: appPlugins/ToolMilling.py:4358
+#: appPlugins/ToolMilling.py:4325
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"
@@ -14526,7 +15748,7 @@ msgid ""
"- Custom -> The tool will cut at an chosen offset."
msgstr ""
-#: appPlugins/ToolMilling.py:4378
+#: appPlugins/ToolMilling.py:4345
msgid ""
"The value to offset the cut when \n"
"the Offset type selected is 'Custom'.\n"
@@ -14534,167 +15756,167 @@ msgid ""
"cut and negative for 'inside' cut."
msgstr ""
-#: appPlugins/ToolMilling.py:4921
+#: appPlugins/ToolMilling.py:4888
msgid ""
"The preprocessor JSON file that dictates\n"
"Gcode output for Geometry (Milling) Objects."
msgstr ""
-#: appPlugins/ToolMilling.py:4932
+#: appPlugins/ToolMilling.py:4899
msgid "Allow levelling"
msgstr ""
-#: appPlugins/ToolMilling.py:4934
+#: appPlugins/ToolMilling.py:4901
msgid "Allow levelling by having segments size more than zero."
msgstr ""
-#: appPlugins/ToolMove.py:102
+#: appPlugins/ToolMove.py:95
msgid "MOVE: Click on the Start point ..."
msgstr ""
-#: appPlugins/ToolMove.py:113
+#: appPlugins/ToolMove.py:106
msgid "Cancelled. No object(s) to move."
msgstr ""
-#: appPlugins/ToolMove.py:162
+#: appPlugins/ToolMove.py:155
msgid "Error when mouse left click."
msgstr ""
-#: appPlugins/ToolNCC.py:1063
+#: appPlugins/ToolNCC.py:1044
msgid "Incomplete isolation. None of the selected tools could do a complete isolation."
msgstr ""
-#: appPlugins/ToolNCC.py:1066
+#: appPlugins/ToolNCC.py:1047
msgid "At least one of the selected tools can do a complete isolation."
msgstr ""
-#: appPlugins/ToolNCC.py:1211 appPlugins/ToolNCC.py:1290 appPlugins/ToolNCC.py:1348
-#: appPlugins/ToolNCC.py:3992 appPlugins/ToolPaint.py:857 appPlugins/ToolPaint.py:943
-#: appPlugins/ToolPaint.py:1003 appPlugins/ToolPaint.py:2867
-#: appPlugins/ToolSolderPaste.py:552
-msgid "Cancelled. Tool already in Tool Table."
+#: appPlugins/ToolNCC.py:1192 appPlugins/ToolNCC.py:1271 appPlugins/ToolNCC.py:1329
+#: appPlugins/ToolNCC.py:3965 appPlugins/ToolPaint.py:837 appPlugins/ToolPaint.py:923
+#: appPlugins/ToolPaint.py:983 appPlugins/ToolPaint.py:2848
+#: appPlugins/ToolSolderPaste.py:584
+msgid "Tool already in Tool Table."
msgstr ""
-#: appPlugins/ToolNCC.py:1947 appPlugins/ToolNCC.py:2933
+#: appPlugins/ToolNCC.py:1920 appPlugins/ToolNCC.py:2906
msgid "NCC Tool. Preparing non-copper polygons."
msgstr ""
-#: appPlugins/ToolNCC.py:2007 appPlugins/ToolNCC.py:3052
+#: appPlugins/ToolNCC.py:1980 appPlugins/ToolNCC.py:3025
msgid "NCC Tool. Calculate 'empty' area."
msgstr ""
-#: appPlugins/ToolNCC.py:2018 appPlugins/ToolNCC.py:2047 appPlugins/ToolNCC.py:2153
-#: appPlugins/ToolNCC.py:2166 appPlugins/ToolNCC.py:3067 appPlugins/ToolNCC.py:3172
-#: appPlugins/ToolNCC.py:3187 appPlugins/ToolNCC.py:3455 appPlugins/ToolNCC.py:3556
-#: appPlugins/ToolNCC.py:3571
+#: appPlugins/ToolNCC.py:1991 appPlugins/ToolNCC.py:2020 appPlugins/ToolNCC.py:2126
+#: appPlugins/ToolNCC.py:2139 appPlugins/ToolNCC.py:3040 appPlugins/ToolNCC.py:3145
+#: appPlugins/ToolNCC.py:3160 appPlugins/ToolNCC.py:3428 appPlugins/ToolNCC.py:3529
+#: appPlugins/ToolNCC.py:3544
msgid "Buffering finished"
msgstr ""
-#: appPlugins/ToolNCC.py:2022 appPlugins/ToolNCC.py:2051 appPlugins/ToolNCC.py:2157
-#: appPlugins/ToolNCC.py:2169 appPlugins/ToolNCC.py:3075 appPlugins/ToolNCC.py:3194
-#: appPlugins/ToolNCC.py:3462 appPlugins/ToolNCC.py:3578
+#: appPlugins/ToolNCC.py:1995 appPlugins/ToolNCC.py:2024 appPlugins/ToolNCC.py:2130
+#: appPlugins/ToolNCC.py:2142 appPlugins/ToolNCC.py:3048 appPlugins/ToolNCC.py:3167
+#: appPlugins/ToolNCC.py:3435 appPlugins/ToolNCC.py:3551
msgid "Could not get the extent of the area to be non copper cleared."
msgstr ""
-#: appPlugins/ToolNCC.py:2030 appPlugins/ToolNCC.py:2180 appPlugins/ToolNCC.py:3205
+#: appPlugins/ToolNCC.py:2003 appPlugins/ToolNCC.py:2153 appPlugins/ToolNCC.py:3178
msgid "NCC Tool. Finished calculation of 'empty' area."
msgstr ""
-#: appPlugins/ToolNCC.py:2083 appPlugins/ToolNCC.py:3102 appPlugins/ToolNCC.py:3179
-#: appPlugins/ToolNCC.py:3482 appPlugins/ToolNCC.py:3563
+#: appPlugins/ToolNCC.py:2056 appPlugins/ToolNCC.py:3075 appPlugins/ToolNCC.py:3152
+#: appPlugins/ToolNCC.py:3455 appPlugins/ToolNCC.py:3536
msgid "Isolation geometry is broken. Margin is less than isolation tool diameter."
msgstr ""
-#: appPlugins/ToolNCC.py:2173 appPlugins/ToolNCC.py:3198 appPlugins/ToolNCC.py:3581
+#: appPlugins/ToolNCC.py:2146 appPlugins/ToolNCC.py:3171 appPlugins/ToolNCC.py:3554
msgid "The selected object is not suitable for copper clearing."
msgstr ""
-#: appPlugins/ToolNCC.py:2223
+#: appPlugins/ToolNCC.py:2196
msgid "Clearing the polygon with the method: lines."
msgstr ""
-#: appPlugins/ToolNCC.py:2233
+#: appPlugins/ToolNCC.py:2206
msgid "Failed. Clearing the polygon with the method: seed."
msgstr ""
-#: appPlugins/ToolNCC.py:2242
+#: appPlugins/ToolNCC.py:2215
msgid "Failed. Clearing the polygon with the method: standard."
msgstr ""
-#: appPlugins/ToolNCC.py:2258
+#: appPlugins/ToolNCC.py:2231
msgid "Polygon could not be cleared. Location:"
msgstr ""
-#: appPlugins/ToolNCC.py:2311
+#: appPlugins/ToolNCC.py:2284
msgid "There is no copper clearing tool in the selection and at least one is needed."
msgstr ""
-#: appPlugins/ToolNCC.py:2326 appPlugins/ToolNCC.py:3020
+#: appPlugins/ToolNCC.py:2299 appPlugins/ToolNCC.py:2993
msgid "NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
msgstr ""
-#: appPlugins/ToolNCC.py:2354 appPlugins/ToolNCC.py:2592
+#: appPlugins/ToolNCC.py:2327 appPlugins/ToolNCC.py:2565
msgid "NCC Tool failed creating bounding box."
msgstr ""
-#: appPlugins/ToolNCC.py:2374 appPlugins/ToolNCC.py:2635 appPlugins/ToolNCC.py:3219
-#: appPlugins/ToolNCC.py:3606
+#: appPlugins/ToolNCC.py:2347 appPlugins/ToolNCC.py:2608 appPlugins/ToolNCC.py:3192
+#: appPlugins/ToolNCC.py:3579
msgid "NCC Tool clearing with tool diameter"
msgstr ""
-#: appPlugins/ToolNCC.py:2374 appPlugins/ToolNCC.py:2635 appPlugins/ToolNCC.py:3219
-#: appPlugins/ToolNCC.py:3606
+#: appPlugins/ToolNCC.py:2347 appPlugins/ToolNCC.py:2608 appPlugins/ToolNCC.py:3192
+#: appPlugins/ToolNCC.py:3579
msgid "started."
msgstr ""
-#: appPlugins/ToolNCC.py:2509
+#: appPlugins/ToolNCC.py:2482
msgid "Could not use the tool for copper clear."
msgstr ""
-#: appPlugins/ToolNCC.py:2532 appPlugins/ToolNCC.py:3381
+#: appPlugins/ToolNCC.py:2505 appPlugins/ToolNCC.py:3354
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 ""
-#: appPlugins/ToolNCC.py:2542 appPlugins/ToolNCC.py:3390
+#: appPlugins/ToolNCC.py:2515 appPlugins/ToolNCC.py:3363
msgid "NCC Tool clear all done."
msgstr ""
-#: appPlugins/ToolNCC.py:2545 appPlugins/ToolNCC.py:3393
+#: appPlugins/ToolNCC.py:2518 appPlugins/ToolNCC.py:3366
msgid "NCC Tool clear all done but the copper features isolation is broken for"
msgstr ""
-#: appPlugins/ToolNCC.py:2547 appPlugins/ToolNCC.py:2797 appPlugins/ToolNCC.py:3395
-#: appPlugins/ToolNCC.py:3778
+#: appPlugins/ToolNCC.py:2520 appPlugins/ToolNCC.py:2770 appPlugins/ToolNCC.py:3368
+#: appPlugins/ToolNCC.py:3751
msgid "tools"
msgstr ""
-#: appPlugins/ToolNCC.py:2574
+#: appPlugins/ToolNCC.py:2547
msgid "NCC Tool. Rest machining copper clearing task started."
msgstr ""
-#: appPlugins/ToolNCC.py:2793 appPlugins/ToolNCC.py:3774
+#: appPlugins/ToolNCC.py:2766 appPlugins/ToolNCC.py:3747
msgid "NCC Tool Rest Machining clear all done."
msgstr ""
-#: appPlugins/ToolNCC.py:2796 appPlugins/ToolNCC.py:3777
+#: appPlugins/ToolNCC.py:2769 appPlugins/ToolNCC.py:3750
msgid ""
"NCC Tool Rest Machining clear all done but the copper features isolation is broken for"
msgstr ""
-#: appPlugins/ToolNCC.py:2894
+#: appPlugins/ToolNCC.py:2867
msgid "NCC Tool started. Reading parameters."
msgstr ""
-#: appPlugins/ToolNCC.py:3883
+#: appPlugins/ToolNCC.py:3856
msgid ""
"Try to use the Buffering Type = Full in Preferences -> Gerber General. Reload the Gerber "
"file after this change."
msgstr ""
-#: appPlugins/ToolNCC.py:4109
+#: appPlugins/ToolNCC.py:4082
msgid ""
"Specify the type of object to be cleared of excess copper.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -14702,7 +15924,7 @@ msgid ""
"of objects that will populate the 'Object' combobox."
msgstr ""
-#: appPlugins/ToolNCC.py:4167
+#: appPlugins/ToolNCC.py:4140
msgid ""
"This is the Tool Number.\n"
"Non copper clearing will start with the tool with the biggest \n"
@@ -14712,285 +15934,277 @@ msgid ""
"this function will not be able to create painting geometry."
msgstr ""
-#: appPlugins/ToolNCC.py:4576
+#: appPlugins/ToolNCC.py:4549
msgid ""
"The type of FlatCAM object to be used as non copper clearing reference.\n"
"It can be Gerber, Excellon or Geometry."
msgstr ""
-#: appPlugins/ToolObjectDistance.py:99 appPlugins/ToolObjectDistance.py:445
+#: appPlugins/ToolObjectDistance.py:86 appPlugins/ToolObjectDistance.py:432
msgid "Object Distance"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:201
+#: appPlugins/ToolObjectDistance.py:188
msgid "Objects intersects or touch at"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:212 appPlugins/ToolObjectDistance.py:236
-#: appPlugins/ToolObjectDistance.py:246 appPlugins/ToolObjectDistance.py:257
-#: appPlugins/ToolObjectDistance.py:280 appPlugins/ToolObjectDistance.py:309
-#: appPlugins/ToolObjectDistance.py:327 appPlugins/ToolObjectDistance.py:346
+#: appPlugins/ToolObjectDistance.py:199 appPlugins/ToolObjectDistance.py:223
+#: appPlugins/ToolObjectDistance.py:233 appPlugins/ToolObjectDistance.py:244
+#: appPlugins/ToolObjectDistance.py:267 appPlugins/ToolObjectDistance.py:296
+#: appPlugins/ToolObjectDistance.py:314 appPlugins/ToolObjectDistance.py:333
msgid "Select two objects and no more. Currently the selection has objects: "
msgstr ""
-#: appPlugins/ToolObjectDistance.py:373
+#: appPlugins/ToolObjectDistance.py:360
msgid "Jumped to the half point between the two selected objects"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:476
+#: appPlugins/ToolObjectDistance.py:463
msgid ""
"The type of distance to be calculated.\n"
"- Nearest points - minimal distance between objects\n"
"- Center points - distance between the center of the bounding boxes"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:482
+#: appPlugins/ToolObjectDistance.py:469
msgid "Nearest points"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:482
+#: appPlugins/ToolObjectDistance.py:469
msgid "Center points"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:600
+#: appPlugins/ToolObjectDistance.py:587
msgid "Half Point"
msgstr ""
-#: appPlugins/ToolObjectDistance.py:601 appPlugins/ToolObjectDistance.py:606
+#: appPlugins/ToolObjectDistance.py:588 appPlugins/ToolObjectDistance.py:593
msgid "This is the middle point of the point to point Euclidean distance."
msgstr ""
-#: appPlugins/ToolObjectDistance.py:616
+#: appPlugins/ToolObjectDistance.py:603
msgid "Jump to Half Point"
msgstr ""
-#: appPlugins/ToolOptimal.py:116 appPlugins/ToolOptimal.py:475
+#: appPlugins/ToolOptimal.py:102 appPlugins/ToolOptimal.py:461
msgid "Find Optimal"
msgstr ""
-#: appPlugins/ToolOptimal.py:227
+#: appPlugins/ToolOptimal.py:213
msgid "Only Gerber objects can be evaluated."
msgstr ""
-#: appPlugins/ToolOptimal.py:233
+#: appPlugins/ToolOptimal.py:219
msgid "Optimal Tool. Started to search for the minimum distance between copper features."
msgstr ""
-#: appPlugins/ToolOptimal.py:243
+#: appPlugins/ToolOptimal.py:229
msgid "Optimal Tool. Parsing geometry for aperture"
msgstr ""
-#: appPlugins/ToolOptimal.py:254
+#: appPlugins/ToolOptimal.py:240
msgid "Optimal Tool. Creating a buffer for the object geometry."
msgstr ""
-#: appPlugins/ToolOptimal.py:268
+#: appPlugins/ToolOptimal.py:254
msgid "Optimal Tool. Finding the distances between each two elements. Iterations"
msgstr ""
-#: appPlugins/ToolOptimal.py:302
+#: appPlugins/ToolOptimal.py:288
msgid "Optimal Tool. Finding the minimum distance."
msgstr ""
-#: appPlugins/ToolOptimal.py:319
+#: appPlugins/ToolOptimal.py:305
msgid "Optimal Tool. Finished successfully."
msgstr ""
-#: appPlugins/ToolOptimal.py:511
+#: appPlugins/ToolOptimal.py:497
msgid "GERBER"
msgstr ""
-#: appPlugins/ToolOptimal.py:537
+#: appPlugins/ToolOptimal.py:523
msgid "Number of decimals kept for found distances."
msgstr ""
-#: appPlugins/ToolOptimal.py:548
+#: appPlugins/ToolOptimal.py:534
msgid "Minimum distance"
msgstr ""
-#: appPlugins/ToolOptimal.py:549
+#: appPlugins/ToolOptimal.py:535
msgid "Display minimum distance between copper features."
msgstr ""
-#: appPlugins/ToolOptimal.py:559
+#: appPlugins/ToolOptimal.py:545
msgid "Determined"
msgstr ""
-#: appPlugins/ToolOptimal.py:571
+#: appPlugins/ToolOptimal.py:557
msgid "Occurring"
msgstr ""
-#: appPlugins/ToolOptimal.py:572
+#: appPlugins/ToolOptimal.py:558
msgid "How many times this minimum is found."
msgstr ""
-#: appPlugins/ToolOptimal.py:580
+#: appPlugins/ToolOptimal.py:566
msgid "Minimum points coordinates"
msgstr ""
-#: appPlugins/ToolOptimal.py:581 appPlugins/ToolOptimal.py:587
+#: appPlugins/ToolOptimal.py:567 appPlugins/ToolOptimal.py:573
msgid "Coordinates for points where minimum distance was found."
msgstr ""
-#: appPlugins/ToolOptimal.py:600 appPlugins/ToolOptimal.py:685
+#: appPlugins/ToolOptimal.py:586 appPlugins/ToolOptimal.py:671
msgid "Jump to selected position"
msgstr ""
-#: appPlugins/ToolOptimal.py:602 appPlugins/ToolOptimal.py:687
+#: appPlugins/ToolOptimal.py:588 appPlugins/ToolOptimal.py:673
msgid ""
"Select a position in the Locations text box and then\n"
"click this button."
msgstr ""
-#: appPlugins/ToolOptimal.py:612
+#: appPlugins/ToolOptimal.py:598
msgid "Other distances"
msgstr ""
-#: appPlugins/ToolOptimal.py:613
+#: appPlugins/ToolOptimal.py:599
msgid ""
"Will display other distances in the Gerber file ordered from\n"
"the minimum to the maximum, not including the absolute minimum."
msgstr ""
-#: appPlugins/ToolOptimal.py:624
+#: appPlugins/ToolOptimal.py:610
msgid "Other distances points coordinates"
msgstr ""
-#: appPlugins/ToolOptimal.py:625 appPlugins/ToolOptimal.py:640 appPlugins/ToolOptimal.py:647
-#: appPlugins/ToolOptimal.py:664 appPlugins/ToolOptimal.py:671
+#: appPlugins/ToolOptimal.py:611 appPlugins/ToolOptimal.py:626 appPlugins/ToolOptimal.py:633
+#: appPlugins/ToolOptimal.py:650 appPlugins/ToolOptimal.py:657
msgid ""
"Other distances and the coordinates for points\n"
"where the distance was found."
msgstr ""
-#: appPlugins/ToolOptimal.py:639
+#: appPlugins/ToolOptimal.py:625
msgid "Gerber distances"
msgstr ""
-#: appPlugins/ToolOptimal.py:663
+#: appPlugins/ToolOptimal.py:649
msgid "Points coordinates"
msgstr ""
-#: appPlugins/ToolOptimal.py:695
+#: appPlugins/ToolOptimal.py:681
msgid "Find Minimum"
msgstr ""
-#: appPlugins/ToolOptimal.py:698
+#: appPlugins/ToolOptimal.py:684
msgid ""
"Calculate the minimum distance between copper features,\n"
"this will allow the determination of the right tool to\n"
"use for isolation or copper clearing."
msgstr ""
-#: appPlugins/ToolPDF.py:96 appPlugins/ToolPDF.py:100
+#: appPlugins/ToolPDF.py:78 appPlugins/ToolPDF.py:82
msgid "Open PDF"
msgstr ""
-#: appPlugins/ToolPDF.py:103
+#: appPlugins/ToolPDF.py:85
msgid "Open PDF cancelled"
msgstr ""
-#: appPlugins/ToolPDF.py:131
+#: appPlugins/ToolPDF.py:113
msgid "Parsing"
msgstr ""
-#: appPlugins/ToolPDF.py:212 appMain.py:11615
-msgid "Failed to open"
-msgstr ""
-
-#: appPlugins/ToolPDF.py:288 appPlugins/ToolPcbWizard.py:368 appMain.py:11560
-msgid "No geometry found in file"
-msgstr ""
-
-#: appPlugins/ToolPDF.py:291 appPlugins/ToolPDF.py:364
+#: appPlugins/ToolPDF.py:273 appPlugins/ToolPDF.py:346
#, python-format
msgid "Rendering PDF layer #%d ..."
msgstr ""
-#: appPlugins/ToolPDF.py:295 appPlugins/ToolPDF.py:368
+#: appPlugins/ToolPDF.py:277 appPlugins/ToolPDF.py:350
msgid "Open PDF file failed."
msgstr ""
-#: appPlugins/ToolPDF.py:300 appPlugins/ToolPDF.py:373
+#: appPlugins/ToolPDF.py:282 appPlugins/ToolPDF.py:355
msgid "Rendered"
msgstr ""
-#: appPlugins/ToolPaint.py:1164
+#: appPlugins/ToolPaint.py:1144
msgid "Can't do Paint on MultiGeo geometries"
msgstr ""
-#: appPlugins/ToolPaint.py:1201
+#: appPlugins/ToolPaint.py:1181
msgid "Click on a polygon to paint it."
msgstr ""
-#: appPlugins/ToolPaint.py:1800
+#: appPlugins/ToolPaint.py:1781
msgid "Painting polygon with method: lines."
msgstr ""
-#: appPlugins/ToolPaint.py:1812
+#: appPlugins/ToolPaint.py:1793
msgid "Failed. Painting polygon with method: seed."
msgstr ""
-#: appPlugins/ToolPaint.py:1823
+#: appPlugins/ToolPaint.py:1804
msgid "Failed. Painting polygon with method: standard."
msgstr ""
-#: appPlugins/ToolPaint.py:1915 appPlugins/ToolPaint.py:2104
+#: appPlugins/ToolPaint.py:1896 appPlugins/ToolPaint.py:2085
msgid "Painting with tool diameter = "
msgstr ""
-#: appPlugins/ToolPaint.py:1918 appPlugins/ToolPaint.py:2107
+#: appPlugins/ToolPaint.py:1899 appPlugins/ToolPaint.py:2088
msgid "started"
msgstr ""
-#: appPlugins/ToolPaint.py:1945 appPlugins/ToolPaint.py:2094
+#: appPlugins/ToolPaint.py:1926 appPlugins/ToolPaint.py:2075
msgid "There is no geometry to process or the tool diameter is too big."
msgstr ""
-#: appPlugins/ToolPaint.py:2060 appPlugins/ToolPaint.py:2286
+#: appPlugins/ToolPaint.py:2041 appPlugins/ToolPaint.py:2267
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 ""
-#: appPlugins/ToolPaint.py:2340
+#: appPlugins/ToolPaint.py:2321
msgid "Painting ..."
msgstr ""
-#: appPlugins/ToolPaint.py:2374 appPlugins/ToolPaint.py:2379 appPlugins/ToolPaint.py:2387
-#: appPlugins/ToolPaint.py:2476 appPlugins/ToolPaint.py:2479 appPlugins/ToolPaint.py:2487
-#: appPlugins/ToolPaint.py:2558 appPlugins/ToolPaint.py:2563 appPlugins/ToolPaint.py:2569
+#: appPlugins/ToolPaint.py:2355 appPlugins/ToolPaint.py:2360 appPlugins/ToolPaint.py:2368
+#: appPlugins/ToolPaint.py:2457 appPlugins/ToolPaint.py:2461 appPlugins/ToolPaint.py:2469
+#: appPlugins/ToolPaint.py:2540 appPlugins/ToolPaint.py:2545 appPlugins/ToolPaint.py:2551
msgid "Paint Plugin."
msgstr ""
-#: appPlugins/ToolPaint.py:2375 appPlugins/ToolPaint.py:2379 appPlugins/ToolPaint.py:2387
+#: appPlugins/ToolPaint.py:2356 appPlugins/ToolPaint.py:2360 appPlugins/ToolPaint.py:2368
msgid "Normal painting polygon task started."
msgstr ""
-#: appPlugins/ToolPaint.py:2376 appPlugins/ToolPaint.py:2476 appPlugins/ToolPaint.py:2560
+#: appPlugins/ToolPaint.py:2357 appPlugins/ToolPaint.py:2458 appPlugins/ToolPaint.py:2542
msgid "Buffering geometry..."
msgstr ""
-#: appPlugins/ToolPaint.py:2401 appPlugins/ToolPaint.py:2494 appPlugins/ToolPaint.py:2607
+#: appPlugins/ToolPaint.py:2382 appPlugins/ToolPaint.py:2476 appPlugins/ToolPaint.py:2589
msgid "No polygon found."
msgstr ""
-#: appPlugins/ToolPaint.py:2476 appPlugins/ToolPaint.py:2479 appPlugins/ToolPaint.py:2487
+#: appPlugins/ToolPaint.py:2457 appPlugins/ToolPaint.py:2461 appPlugins/ToolPaint.py:2469
msgid "Paint all polygons task started."
msgstr ""
-#: appPlugins/ToolPaint.py:2559 appPlugins/ToolPaint.py:2563 appPlugins/ToolPaint.py:2569
+#: appPlugins/ToolPaint.py:2541 appPlugins/ToolPaint.py:2545 appPlugins/ToolPaint.py:2551
msgid "Painting area task started."
msgstr ""
-#: appPlugins/ToolPaint.py:2947
+#: appPlugins/ToolPaint.py:2928
msgid ""
"Create a Geometry object with toolpaths\n"
"that cover only the copper pattern."
msgstr ""
-#: appPlugins/ToolPaint.py:2986
+#: appPlugins/ToolPaint.py:2967
msgid ""
"Specify the type of object to be painted.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -14998,13 +16212,13 @@ msgid ""
"of objects that will populate the 'Object' combobox."
msgstr ""
-#: appPlugins/ToolPaint.py:3020
+#: appPlugins/ToolPaint.py:3001
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for painting."
msgstr ""
-#: appPlugins/ToolPaint.py:3043
+#: appPlugins/ToolPaint.py:3024
msgid ""
"This is the Tool Number.\n"
"Painting will start with the tool with the biggest diameter,\n"
@@ -15014,55 +16228,55 @@ msgid ""
"this function will not be able to create painting geometry."
msgstr ""
-#: appPlugins/ToolPaint.py:3326
+#: appPlugins/ToolPaint.py:3307
msgid ""
"The type of FlatCAM object to be used as paint reference.\n"
"It can be Gerber, Excellon or Geometry."
msgstr ""
-#: appPlugins/ToolPaint.py:3370
+#: appPlugins/ToolPaint.py:3351
msgid "Create a Geometry Object which paints the polygons."
msgstr ""
-#: appPlugins/ToolPanelize.py:112 appPlugins/ToolPanelize.py:1136
+#: appPlugins/ToolPanelize.py:96 appPlugins/ToolPanelize.py:1120
msgid "Panelization"
msgstr ""
-#: appPlugins/ToolPanelize.py:365
+#: appPlugins/ToolPanelize.py:349
msgid "Columns or Rows are zero value. Change them to a positive integer."
msgstr ""
-#: appPlugins/ToolPanelize.py:408
+#: appPlugins/ToolPanelize.py:392
msgid "Generating panel ... "
msgstr ""
-#: appPlugins/ToolPanelize.py:503 appPlugins/ToolPanelize.py:816
-#: appPlugins/ToolPanelize.py:1088 tclCommands/TclCommandPanelize.py:292
+#: appPlugins/ToolPanelize.py:487 appPlugins/ToolPanelize.py:800
+#: appPlugins/ToolPanelize.py:1072 tclCommands/TclCommandPanelize.py:292
msgid "Generating panel ... Adding the source code."
msgstr ""
-#: appPlugins/ToolPanelize.py:744
+#: appPlugins/ToolPanelize.py:728
msgid "Optimizing the overlapping paths."
msgstr ""
-#: appPlugins/ToolPanelize.py:776
+#: appPlugins/ToolPanelize.py:760
msgid "Optimization complete."
msgstr ""
-#: appPlugins/ToolPanelize.py:1097
+#: appPlugins/ToolPanelize.py:1081
msgid "Generating panel... Spawning copies"
msgstr ""
-#: appPlugins/ToolPanelize.py:1113
+#: appPlugins/ToolPanelize.py:1097
#, python-brace-format
msgid "{text} Too big for the constrain area. Final panel has {col} columns and {row} rows"
msgstr ""
-#: appPlugins/ToolPanelize.py:1121
+#: appPlugins/ToolPanelize.py:1105
msgid "Panel created successfully."
msgstr ""
-#: appPlugins/ToolPanelize.py:1181
+#: appPlugins/ToolPanelize.py:1165
msgid ""
"Specify the type of object to be panelized\n"
"It can be of type: Gerber, Excellon or Geometry.\n"
@@ -15070,13 +16284,13 @@ msgid ""
"in the Object combobox."
msgstr ""
-#: appPlugins/ToolPanelize.py:1214
+#: appPlugins/ToolPanelize.py:1198
msgid ""
"Object to be panelized. This means that it will\n"
"be duplicated in an array of rows and columns."
msgstr ""
-#: appPlugins/ToolPanelize.py:1226
+#: appPlugins/ToolPanelize.py:1210
msgid ""
"Choose the reference for panelization:\n"
"- Object = the bounding box of a different object\n"
@@ -15088,7 +16302,7 @@ msgid ""
"objects in sync."
msgstr ""
-#: appPlugins/ToolPanelize.py:1259
+#: appPlugins/ToolPanelize.py:1243
msgid ""
"Specify the type of object to be used as an container for\n"
"panelization. It can be: Gerber or Geometry type.\n"
@@ -15096,17 +16310,17 @@ msgid ""
"in the Box Object combobox."
msgstr ""
-#: appPlugins/ToolPanelize.py:1274
+#: appPlugins/ToolPanelize.py:1258
msgid ""
"The actual object that is used as container for the\n"
" selected object that is to be panelized."
msgstr ""
-#: appPlugins/ToolPanelize.py:1282
+#: appPlugins/ToolPanelize.py:1266
msgid "Panel Data"
msgstr ""
-#: appPlugins/ToolPanelize.py:1284
+#: appPlugins/ToolPanelize.py:1268
msgid ""
"This informations will shape the resulting panel.\n"
"The number of rows and columns will set how many\n"
@@ -15116,127 +16330,123 @@ msgid ""
"elements of the panel array."
msgstr ""
-#: appPlugins/ToolPanelize.py:1383
+#: appPlugins/ToolPanelize.py:1367
msgid "Constrain panel within"
msgstr ""
-#: appPlugins/ToolPanelize.py:1430
+#: appPlugins/ToolPanelize.py:1414
msgid "Panelize Object"
msgstr ""
-#: appPlugins/ToolPanelize.py:1433 appPlugins/ToolRulesCheck.py:1776
+#: appPlugins/ToolPanelize.py:1417 appPlugins/ToolRulesCheck.py:1761
msgid ""
"Panelize the specified object around the specified box.\n"
"In other words it creates multiple copies of the source object,\n"
"arranged in a 2D array of rows and columns."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:113 appPlugins/ToolPcbWizard.py:397
+#: appPlugins/ToolPcbWizard.py:102 appPlugins/ToolPcbWizard.py:386
msgid "PcbWizard Import"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:214 appPlugins/ToolPcbWizard.py:218
+#: appPlugins/ToolPcbWizard.py:203 appPlugins/ToolPcbWizard.py:207
msgid "Load PcbWizard Excellon file"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:237 appPlugins/ToolPcbWizard.py:241
+#: appPlugins/ToolPcbWizard.py:226 appPlugins/ToolPcbWizard.py:230
msgid "Load PcbWizard INF file"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:289
+#: appPlugins/ToolPcbWizard.py:278
msgid ""
"The INF file does not contain the tool table.\n"
"Try to open the Excellon file from File -> Open -> Excellon\n"
"and edit the drill diameters manually."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:309
+#: appPlugins/ToolPcbWizard.py:298
msgid "PcbWizard .INF file loaded."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:313
+#: appPlugins/ToolPcbWizard.py:302
msgid "Main PcbWizard Excellon file loaded."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:346 appMain.py:11539
-msgid "This is not Excellon file."
-msgstr ""
-
-#: appPlugins/ToolPcbWizard.py:349
+#: appPlugins/ToolPcbWizard.py:338
msgid "Cannot parse file"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:380
+#: appPlugins/ToolPcbWizard.py:369
msgid "Import Excellon file failed."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:387
+#: appPlugins/ToolPcbWizard.py:376
msgid "Imported"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:390
+#: appPlugins/ToolPcbWizard.py:379
msgid "Excellon merging is in progress. Please wait..."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:392
+#: appPlugins/ToolPcbWizard.py:381
msgid "The imported Excellon file is empty."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:416
+#: appPlugins/ToolPcbWizard.py:405
msgid "Load files"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:422
+#: appPlugins/ToolPcbWizard.py:411
msgid "Excellon file"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:424
+#: appPlugins/ToolPcbWizard.py:413
msgid ""
"Load the Excellon file.\n"
"Usually it has a .DRL extension"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:431
+#: appPlugins/ToolPcbWizard.py:420
msgid "INF file"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:433
+#: appPlugins/ToolPcbWizard.py:422
msgid "Load the INF file."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:446
+#: appPlugins/ToolPcbWizard.py:435
msgid "Tool Number"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:448
+#: appPlugins/ToolPcbWizard.py:437
msgid "Tool diameter in file units."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:463
+#: appPlugins/ToolPcbWizard.py:452
msgid "Int. digits"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:465
+#: appPlugins/ToolPcbWizard.py:454
msgid "The number of digits for the integral part of the coordinates."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:473
+#: appPlugins/ToolPcbWizard.py:462
msgid "Frac. digits"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:475
+#: appPlugins/ToolPcbWizard.py:464
msgid "The number of digits for the fractional part of the coordinates."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:483
+#: appPlugins/ToolPcbWizard.py:472
msgid "No Suppression"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:484
+#: appPlugins/ToolPcbWizard.py:473
msgid "Zeros supp."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:486
+#: appPlugins/ToolPcbWizard.py:475
msgid ""
"The type of zeros suppression used.\n"
"Can be of type:\n"
@@ -15245,17 +16455,17 @@ msgid ""
"- No Suppression = no zero suppression"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:500
+#: appPlugins/ToolPcbWizard.py:489
msgid ""
"The type of units that the coordinates and tool\n"
"diameters are using. Can be INCH or MM."
msgstr ""
-#: appPlugins/ToolPcbWizard.py:508
+#: appPlugins/ToolPcbWizard.py:497
msgid "Import Excellon"
msgstr ""
-#: appPlugins/ToolPcbWizard.py:510
+#: appPlugins/ToolPcbWizard.py:499
msgid ""
"Import an Excellon file\n"
"that store it's information's in 2 files.\n"
@@ -15263,398 +16473,371 @@ msgid ""
"the other has .INF extension."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:158
-msgid "Punch Geber"
-msgstr ""
-
-#: appPlugins/ToolPunchGerber.py:552
+#: appPlugins/ToolPunchGerber.py:574
msgid "Click on a pad to select it."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:801 appPlugins/ToolPunchGerber.py:934
+#: appPlugins/ToolPunchGerber.py:823 appPlugins/ToolPunchGerber.py:956
msgid "The value of the fixed diameter is 0.0. Aborting."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1710
+#: appPlugins/ToolPunchGerber.py:1732
msgid "Added pad"
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1711
+#: appPlugins/ToolPunchGerber.py:1733
msgid "Click to add next pad or right click to start."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1723
+#: appPlugins/ToolPunchGerber.py:1745
msgid "Removed pad"
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1724
+#: appPlugins/ToolPunchGerber.py:1746
msgid "Click to add/remove next pad or right click to start."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1729
+#: appPlugins/ToolPunchGerber.py:1751
msgid "No pad detected under click position."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1931
+#: appPlugins/ToolPunchGerber.py:1939
msgid "All selectable pads are selected."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:1948
+#: appPlugins/ToolPunchGerber.py:1956
msgid "Selection cleared."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:2018
+#: appPlugins/ToolPunchGerber.py:2031
msgid "Gerber into which to punch holes"
msgstr ""
-#: appPlugins/ToolPunchGerber.py:2165
+#: appPlugins/ToolPunchGerber.py:2178
msgid "Remove the geometry of Excellon from the Gerber to create the holes in pads."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:2320
+#: appPlugins/ToolPunchGerber.py:2333
msgid ""
"When the manual type is chosen, the pads to be punched\n"
"are selected on the canvas but only those that\n"
"are in the processed pads."
msgstr ""
-#: appPlugins/ToolPunchGerber.py:2354
+#: appPlugins/ToolPunchGerber.py:2367
msgid ""
"Create a Gerber object from the selected object, within\n"
"the specified box."
msgstr ""
-#: appPlugins/ToolQRCode.py:233 appPlugins/ToolQRCode.py:573 appPlugins/ToolQRCode.py:624
+#: appPlugins/ToolQRCode.py:215 appPlugins/ToolQRCode.py:561 appPlugins/ToolQRCode.py:612
msgid "Cancelled. There is no QRCode Data in the text box."
msgstr ""
-#: appPlugins/ToolQRCode.py:410
+#: appPlugins/ToolQRCode.py:392
msgid "QRCode Tool done."
msgstr ""
-#: appPlugins/ToolQRCode.py:775
+#: appPlugins/ToolQRCode.py:763
msgid "Gerber Object to which the QRCode will be added."
msgstr ""
-#: appPlugins/ToolQRCode.py:815
+#: appPlugins/ToolQRCode.py:803
msgid "The parameters used to shape the QRCode."
msgstr ""
-#: appPlugins/ToolQRCode.py:925
+#: appPlugins/ToolQRCode.py:913
msgid "Export QRCode"
msgstr ""
-#: appPlugins/ToolQRCode.py:927
+#: appPlugins/ToolQRCode.py:915
msgid ""
"Show a set of controls allowing to export the QRCode\n"
"to a SVG file or an PNG file."
msgstr ""
-#: appPlugins/ToolQRCode.py:963
+#: appPlugins/ToolQRCode.py:951
msgid "Transparent back color"
msgstr ""
-#: appPlugins/ToolQRCode.py:988
+#: appPlugins/ToolQRCode.py:976
msgid "Export QRCode SVG"
msgstr ""
-#: appPlugins/ToolQRCode.py:990
+#: appPlugins/ToolQRCode.py:978
msgid "Export a SVG file with the QRCode content."
msgstr ""
-#: appPlugins/ToolQRCode.py:1001
+#: appPlugins/ToolQRCode.py:989
msgid "Export QRCode PNG"
msgstr ""
-#: appPlugins/ToolQRCode.py:1003
+#: appPlugins/ToolQRCode.py:991
msgid "Export a PNG image file with the QRCode content."
msgstr ""
-#: appPlugins/ToolQRCode.py:1014
+#: appPlugins/ToolQRCode.py:1002
msgid "Insert QRCode"
msgstr ""
-#: appPlugins/ToolQRCode.py:1017
+#: appPlugins/ToolQRCode.py:1005
msgid "Create the QRCode object."
msgstr ""
-#: appPlugins/ToolReport.py:31 appPlugins/ToolReport.py:161
+#: appPlugins/ToolReport.py:18 appPlugins/ToolReport.py:148
msgid "Object Report"
msgstr ""
-#: appPlugins/ToolReport.py:156
+#: appPlugins/ToolReport.py:143
msgid "Object Properties are displayed."
msgstr ""
-#: appPlugins/ToolReport.py:178
+#: appPlugins/ToolReport.py:165
msgid "TYPE"
msgstr ""
-#: appPlugins/ToolReport.py:179
+#: appPlugins/ToolReport.py:166
msgid "NAME"
msgstr ""
-#: appPlugins/ToolReport.py:209
+#: appPlugins/ToolReport.py:196
msgid "Geo Type"
msgstr ""
-#: appPlugins/ToolReport.py:212
+#: appPlugins/ToolReport.py:199
msgid "Single-Geo"
msgstr ""
-#: appPlugins/ToolReport.py:213
+#: appPlugins/ToolReport.py:200
msgid "Multi-Geo"
msgstr ""
-#: appPlugins/ToolReport.py:368 appPlugins/ToolReport.py:373 appPlugins/ToolReport.py:375
+#: appPlugins/ToolReport.py:355 appPlugins/ToolReport.py:360 appPlugins/ToolReport.py:362
msgid "Metric"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:119 appPlugins/ToolRulesCheck.py:1177
+#: appPlugins/ToolRulesCheck.py:105 appPlugins/ToolRulesCheck.py:1162
msgid "Check Rules"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:692 appPlugins/ToolRulesCheck.py:752
-#: appPlugins/ToolRulesCheck.py:789 appPlugins/ToolRulesCheck.py:861
-#: appPlugins/ToolRulesCheck.py:915 appPlugins/ToolRulesCheck.py:953
-#: appPlugins/ToolRulesCheck.py:1018
+#: appPlugins/ToolRulesCheck.py:677 appPlugins/ToolRulesCheck.py:737
+#: appPlugins/ToolRulesCheck.py:774 appPlugins/ToolRulesCheck.py:846
+#: appPlugins/ToolRulesCheck.py:900 appPlugins/ToolRulesCheck.py:938
+#: appPlugins/ToolRulesCheck.py:1003
msgid "Value is not valid."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:706
+#: appPlugins/ToolRulesCheck.py:691
msgid "TOP -> Copper to Copper clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:717
+#: appPlugins/ToolRulesCheck.py:702
msgid "BOTTOM -> Copper to Copper clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:722 appPlugins/ToolRulesCheck.py:816
-#: appPlugins/ToolRulesCheck.py:980
+#: appPlugins/ToolRulesCheck.py:707 appPlugins/ToolRulesCheck.py:801
+#: appPlugins/ToolRulesCheck.py:965
msgid "At least one Gerber object has to be selected for this rule but none is selected."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:758
+#: appPlugins/ToolRulesCheck.py:743
msgid "One of the copper Gerber objects or the Outline Gerber object is not valid."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:771 appPlugins/ToolRulesCheck.py:935
+#: appPlugins/ToolRulesCheck.py:756 appPlugins/ToolRulesCheck.py:920
msgid "Outline Gerber object presence is mandatory for this rule but it is not selected."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:788 appPlugins/ToolRulesCheck.py:815
+#: appPlugins/ToolRulesCheck.py:773 appPlugins/ToolRulesCheck.py:800
msgid "Silk to Silk clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:801
+#: appPlugins/ToolRulesCheck.py:786
msgid "TOP -> Silk to Silk clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:811
+#: appPlugins/ToolRulesCheck.py:796
msgid "BOTTOM -> Silk to Silk clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:867
+#: appPlugins/ToolRulesCheck.py:852
msgid "One or more of the Gerber objects is not valid."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:875
+#: appPlugins/ToolRulesCheck.py:860
msgid "TOP -> Silk to Solder Mask Clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:881
+#: appPlugins/ToolRulesCheck.py:866
msgid "BOTTOM -> Silk to Solder Mask Clearance"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:885
+#: appPlugins/ToolRulesCheck.py:870
msgid "Both Silk and Solder Mask Gerber objects has to be either both Top or both Bottom."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:921
+#: appPlugins/ToolRulesCheck.py:906
msgid "One of the Silk Gerber objects or the Outline Gerber object is not valid."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:965
+#: appPlugins/ToolRulesCheck.py:950
msgid "TOP -> Minimum Solder Mask Sliver"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:975
+#: appPlugins/ToolRulesCheck.py:960
msgid "BOTTOM -> Minimum Solder Mask Sliver"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1024
+#: appPlugins/ToolRulesCheck.py:1009
msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1040
+#: appPlugins/ToolRulesCheck.py:1025
msgid "Excellon object presence is mandatory for this rule but none is selected."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1118 appPlugins/ToolRulesCheck.py:1131
-#: appPlugins/ToolRulesCheck.py:1142 appPlugins/ToolRulesCheck.py:1155
+#: appPlugins/ToolRulesCheck.py:1103 appPlugins/ToolRulesCheck.py:1116
+#: appPlugins/ToolRulesCheck.py:1127 appPlugins/ToolRulesCheck.py:1140
msgid "STATUS"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1121 appPlugins/ToolRulesCheck.py:1145
+#: appPlugins/ToolRulesCheck.py:1106 appPlugins/ToolRulesCheck.py:1130
msgid "FAILED"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1134 appPlugins/ToolRulesCheck.py:1158
+#: appPlugins/ToolRulesCheck.py:1119 appPlugins/ToolRulesCheck.py:1143
msgid "PASSED"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1135 appPlugins/ToolRulesCheck.py:1159
+#: appPlugins/ToolRulesCheck.py:1120 appPlugins/ToolRulesCheck.py:1144
msgid "Violations: There are no violations for the current rule."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1254
+#: appPlugins/ToolRulesCheck.py:1239
msgid "Top"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1272
+#: appPlugins/ToolRulesCheck.py:1257
msgid "The Top Gerber Copper object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1288 appPlugins/ToolRulesCheck.py:1354
+#: appPlugins/ToolRulesCheck.py:1273 appPlugins/ToolRulesCheck.py:1339
msgid "SM"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1290
+#: appPlugins/ToolRulesCheck.py:1275
msgid "The Top Gerber Solder Mask object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1308
+#: appPlugins/ToolRulesCheck.py:1293
msgid "The Top Gerber Silkscreen object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1320
+#: appPlugins/ToolRulesCheck.py:1305
msgid "Bottom"
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1338
+#: appPlugins/ToolRulesCheck.py:1323
msgid "The Bottom Gerber Copper object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1356
+#: appPlugins/ToolRulesCheck.py:1341
msgid "The Bottom Gerber Solder Mask object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1374
+#: appPlugins/ToolRulesCheck.py:1359
msgid "The Bottom Gerber Silkscreen object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1403
+#: appPlugins/ToolRulesCheck.py:1388
msgid "The Gerber Outline (Cutout) object for which rules are checked."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1417
+#: appPlugins/ToolRulesCheck.py:1402
msgid "Excellon objects for which to check rules."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1436
+#: appPlugins/ToolRulesCheck.py:1421
msgid ""
"Excellon object for which to check rules.\n"
"Holds the plated holes or a general Excellon file content."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1455
+#: appPlugins/ToolRulesCheck.py:1440
msgid ""
"Excellon object for which to check rules.\n"
"Holds the non-plated holes."
msgstr ""
-#: appPlugins/ToolRulesCheck.py:1773
+#: appPlugins/ToolRulesCheck.py:1758
msgid "Run Rules Check"
msgstr ""
-#: appPlugins/ToolShell.py:59
+#: appPlugins/ToolShell.py:58
msgid "Type a command to be executed ..."
msgstr ""
-#: appPlugins/ToolShell.py:68
+#: appPlugins/ToolShell.py:67
msgid "Clear the text."
msgstr ""
-#: appPlugins/ToolShell.py:103 appPlugins/ToolShell.py:105
+#: appPlugins/ToolShell.py:102 appPlugins/ToolShell.py:104
msgid "...processing..."
msgstr ""
-#: appPlugins/ToolShell.py:324
+#: appPlugins/ToolShell.py:323
msgid "FlatCAM Evo Shell"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:125 appPlugins/ToolSolderPaste.py:1196
-msgid "SP Dispenser"
+#: appPlugins/ToolSolderPaste.py:110 appPlugins/ToolSolderPaste.py:1229
+msgid "SolderPaste"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:522
+#: appPlugins/ToolSolderPaste.py:554
msgid "Please enter a tool diameter to add, in Float format."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:557
-msgid "New Nozzle tool added to Tool Table."
+#: appPlugins/ToolSolderPaste.py:642
+msgid "Cancelled. Already in the Tool Table."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:599
-msgid "Nozzle tool from Tool Table was edited."
+#: appPlugins/ToolSolderPaste.py:746 appPlugins/ToolSolderPaste.py:970
+#: appPlugins/ToolSolderPaste.py:1103 appPlugins/ToolSolderPaste.py:1106
+#: appPlugins/ToolSolderPaste.py:1165
+msgid "Selected object cannot be used."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:662
-msgid "Tools deleted from Tool Table."
+#: appPlugins/ToolSolderPaste.py:777
+msgid "Tools table is empty."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:716
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:746
-msgid "No Nozzle tools in the tool table."
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:899
+#: appPlugins/ToolSolderPaste.py:933
msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:913
+#: appPlugins/ToolSolderPaste.py:947
msgid "Generating Solder Paste dispensing geometry..."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:937
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:1042
-msgid "ToolSolderPaste CNCjob created"
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:1073 appPlugins/ToolSolderPaste.py:1078
-#: appPlugins/ToolSolderPaste.py:1130
-msgid "This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:1140
+#: appPlugins/ToolSolderPaste.py:1174
msgid "Export GCode ..."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1186
-msgid "Solder paste dispenser GCode file saved to"
-msgstr ""
-
-#: appPlugins/ToolSolderPaste.py:1224
+#: appPlugins/ToolSolderPaste.py:1257
msgid "A plugin to help dispense solder paste on the PCB pads using a CNC machine."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1232
+#: appPlugins/ToolSolderPaste.py:1265
msgid "Gerber Solderpaste object."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1253
+#: appPlugins/ToolSolderPaste.py:1286
msgid ""
"Tools pool from which the algorithm\n"
"will pick the ones used for dispensing solder paste."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1274
+#: appPlugins/ToolSolderPaste.py:1308
msgid ""
"This is the Tool Number.\n"
"The solder dispensing will start with the tool with the biggest \n"
@@ -15663,60 +16846,60 @@ msgid ""
" with solder paste, the app will issue a warning message box."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1281
+#: appPlugins/ToolSolderPaste.py:1315
msgid ""
"Tool Diameter. Its value\n"
"is the width of the solder paste dispensed."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1296
+#: appPlugins/ToolSolderPaste.py:1330
msgid ""
"Add a new nozzle tool to the Tool Table\n"
"with the diameter specified above."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1349
+#: appPlugins/ToolSolderPaste.py:1398
msgid "Dispense"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1364
+#: appPlugins/ToolSolderPaste.py:1413
msgid "Z Start"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1377
+#: appPlugins/ToolSolderPaste.py:1426
msgid "Z Action"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1390
+#: appPlugins/ToolSolderPaste.py:1439
msgid "Z Stop"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1596
+#: appPlugins/ToolSolderPaste.py:1665
msgid "Generate solder paste dispensing geometry."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1614
+#: appPlugins/ToolSolderPaste.py:1683
msgid ""
"Geometry Solder Paste object.\n"
"The name of the object has to end in:\n"
"'_solderpaste' as a protection."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1623
+#: appPlugins/ToolSolderPaste.py:1692
msgid "CNCJob"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1633
+#: appPlugins/ToolSolderPaste.py:1702
msgid "Generate CNCJob"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1636
+#: appPlugins/ToolSolderPaste.py:1705
msgid ""
"Generate GCode for Solder Paste dispensing\n"
"on PCB pads."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1655
+#: appPlugins/ToolSolderPaste.py:1724
msgid ""
"CNCJob Solder paste object.\n"
"In order to enable the GCode save section,\n"
@@ -15724,85 +16907,85 @@ msgid ""
"'_solderpaste' as a protection."
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1664
+#: appPlugins/ToolSolderPaste.py:1733
msgid "Save GCode"
msgstr ""
-#: appPlugins/ToolSolderPaste.py:1667
+#: appPlugins/ToolSolderPaste.py:1736
msgid ""
"Save the generated GCode for Solder Paste dispensing\n"
"on PCB pads, to a file."
msgstr ""
-#: appPlugins/ToolSub.py:274 appPlugins/ToolSub.py:510
+#: appPlugins/ToolSub.py:260 appPlugins/ToolSub.py:498
msgid "No Target object loaded."
msgstr ""
-#: appPlugins/ToolSub.py:277
+#: appPlugins/ToolSub.py:263
msgid "Loading geometry from Gerber objects."
msgstr ""
-#: appPlugins/ToolSub.py:294 appPlugins/ToolSub.py:523
+#: appPlugins/ToolSub.py:281 appPlugins/ToolSub.py:511
msgid "No Subtractor object loaded."
msgstr ""
-#: appPlugins/ToolSub.py:308
+#: appPlugins/ToolSub.py:296
msgid "Not possible to subtract from the same object."
msgstr ""
-#: appPlugins/ToolSub.py:348
+#: appPlugins/ToolSub.py:336
msgid "Finished parsing geometry for aperture"
msgstr ""
-#: appPlugins/ToolSub.py:350
+#: appPlugins/ToolSub.py:338
msgid "Subtraction aperture processing finished."
msgstr ""
-#: appPlugins/ToolSub.py:483 appPlugins/ToolSub.py:677 appPlugins/ToolSub.py:759
+#: appPlugins/ToolSub.py:471 appPlugins/ToolSub.py:666 appPlugins/ToolSub.py:748
msgid "Generating new object failed."
msgstr ""
-#: appPlugins/ToolSub.py:487 appPlugins/ToolSub.py:682
+#: appPlugins/ToolSub.py:475 appPlugins/ToolSub.py:671
msgid "Created"
msgstr ""
-#: appPlugins/ToolSub.py:536
+#: appPlugins/ToolSub.py:524
msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
msgstr ""
-#: appPlugins/ToolSub.py:576
+#: appPlugins/ToolSub.py:564
msgid "Parsing solid_geometry ..."
msgstr ""
-#: appPlugins/ToolSub.py:578
+#: appPlugins/ToolSub.py:566
msgid "Parsing solid_geometry for tool"
msgstr ""
-#: appPlugins/ToolSub.py:795
+#: appPlugins/ToolSub.py:784
msgid "A plugin to help subtract a Gerber/Geometry object from another of the same type."
msgstr ""
-#: appPlugins/ToolSub.py:853
+#: appPlugins/ToolSub.py:842
msgid ""
"Gerber object from which to subtract\n"
"the subtractor Gerber object."
msgstr ""
-#: appPlugins/ToolSub.py:874 appPlugins/ToolSub.py:936
+#: appPlugins/ToolSub.py:863 appPlugins/ToolSub.py:925
msgid "Subtractor"
msgstr ""
-#: appPlugins/ToolSub.py:876
+#: appPlugins/ToolSub.py:865
msgid ""
"Gerber object that will be subtracted\n"
"from the target Gerber object."
msgstr ""
-#: appPlugins/ToolSub.py:886
+#: appPlugins/ToolSub.py:875
msgid "Subtract Gerber"
msgstr ""
-#: appPlugins/ToolSub.py:889
+#: appPlugins/ToolSub.py:878
msgid ""
"Will remove the area occupied by the subtractor\n"
"Gerber from the Target Gerber.\n"
@@ -15810,86 +16993,82 @@ msgid ""
"over the soldermask."
msgstr ""
-#: appPlugins/ToolSub.py:915
+#: appPlugins/ToolSub.py:904
msgid "GEOMETRY"
msgstr ""
-#: appPlugins/ToolSub.py:921
+#: appPlugins/ToolSub.py:910
msgid ""
"Geometry object from which to subtract\n"
"the subtractor Geometry object."
msgstr ""
-#: appPlugins/ToolSub.py:938
+#: appPlugins/ToolSub.py:927
msgid ""
"Geometry object that will be subtracted\n"
"from the target Geometry object."
msgstr ""
-#: appPlugins/ToolSub.py:959
+#: appPlugins/ToolSub.py:948
msgid "Subtract Geometry"
msgstr ""
-#: appPlugins/ToolSub.py:962
+#: appPlugins/ToolSub.py:951
msgid ""
"Will remove the area occupied by the subtractor\n"
"Geometry from the Target Geometry."
msgstr ""
-#: appPlugins/ToolTransform.py:90 appPlugins/ToolTransform.py:572
-msgid "Object Transform"
-msgstr ""
-
-#: appPlugins/ToolTransform.py:335
+#: appPlugins/ToolTransform.py:326
msgid "CNCJob objects can't be rotated."
msgstr ""
-#: appPlugins/ToolTransform.py:369
+#: appPlugins/ToolTransform.py:360
msgid "CNCJob objects can't be mirrored/flipped."
msgstr ""
-#: appPlugins/ToolTransform.py:400
+#: appPlugins/ToolTransform.py:391
msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
msgstr ""
-#: appPlugins/ToolTransform.py:413
+#: appPlugins/ToolTransform.py:404
msgid "CNCJob objects can't be skewed."
msgstr ""
-#: appPlugins/ToolTransform.py:429
+#: appPlugins/ToolTransform.py:420
msgid "Skew on the"
msgstr ""
-#: appPlugins/ToolTransform.py:429 appPlugins/ToolTransform.py:464
-#: appPlugins/ToolTransform.py:501
+#: appPlugins/ToolTransform.py:420 appPlugins/ToolTransform.py:455
+#: appPlugins/ToolTransform.py:492
msgid "axis done"
msgstr ""
-#: appPlugins/ToolTransform.py:447
+#: appPlugins/ToolTransform.py:438
msgid "CNCJob objects can't be scaled."
msgstr ""
-#: appPlugins/ToolTransform.py:464
+#: appPlugins/ToolTransform.py:455
msgid "Scale on the"
msgstr ""
-#: appPlugins/ToolTransform.py:480
+#: appPlugins/ToolTransform.py:471
msgid "CNCJob objects can't be offset."
msgstr ""
-#: appPlugins/ToolTransform.py:501
+#: appPlugins/ToolTransform.py:492
msgid "Offset on the"
msgstr ""
-#: appPlugins/ToolTransform.py:517
+#: appPlugins/ToolTransform.py:508
msgid "CNCJob objects can't be buffered."
msgstr ""
-#: appPlugins/ToolTransform.py:595
+#: appPlugins/ToolTransform.py:586
msgid "A plugin that allow geometry transformation."
msgstr ""
-#: appPlugins/ToolTransform.py:670
+#: appPlugins/ToolTransform.py:661
msgid ""
"The object used as reference.\n"
"The used point is the center of it's bounding box."
@@ -15907,1062 +17086,18 @@ msgstr ""
msgid "Are you sure do you want to change the current language to"
msgstr ""
-#: appTranslation.py:217 appMain.py:4011
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-
-#: appTranslation.py:245
+#: appTranslation.py:244
msgid "The language will be applied at the next application start."
msgstr ""
-#: appTranslation.py:246
+#: appTranslation.py:245
msgid "The user does not have admin rights or UAC issues."
msgstr ""
-#: appTranslation.py:247 appTranslation.py:253
+#: appTranslation.py:246 appTranslation.py:252
msgid "Quit"
msgstr ""
-#: appMain.py:944
-msgid "The application is initializing ..."
-msgstr ""
-
-#: appMain.py:968
-msgid "Could not find the Language files. The App strings are missing."
-msgstr ""
-
-#: appMain.py:1146
-msgid ""
-"The application is initializing ...\n"
-"Canvas initialization started."
-msgstr ""
-
-#: appMain.py:1187
-msgid ""
-"The application is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-
-#: appMain.py:1342 appMain.py:10364
-msgid "New Project - Not saved"
-msgstr ""
-
-#: appMain.py:1671
-msgid "Found old default preferences files. Please reboot the application to update."
-msgstr ""
-
-#: appMain.py:1738
-msgid "Open Config file failed."
-msgstr ""
-
-#: appMain.py:1753
-msgid "Open Script file failed."
-msgstr ""
-
-#: appMain.py:1780
-msgid "Open Excellon file failed."
-msgstr ""
-
-#: appMain.py:1793
-msgid "Open GCode file failed."
-msgstr ""
-
-#: appMain.py:1806
-msgid "Open Gerber file failed."
-msgstr ""
-
-#: appMain.py:2583 appMain.py:2599 appMain.py:2642 appMain.py:2658 appMain.py:2677
-msgid "The Editor could not start."
-msgstr ""
-
-#: appMain.py:2590
-msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
-msgstr ""
-
-#: appMain.py:2615
-msgid ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n"
-"Edit only one geometry at a time."
-msgstr ""
-
-#: appMain.py:2717
-msgid "EDITOR Area"
-msgstr ""
-
-#: appMain.py:2720
-msgid "Editor is activated ..."
-msgstr ""
-
-#: appMain.py:2745
-msgid "Do you want to save the edited object?"
-msgstr ""
-
-#: appMain.py:2796
-msgid "Object empty after edit."
-msgstr ""
-
-#: appMain.py:2801 appMain.py:2819 appMain.py:2850 appMain.py:2866
-msgid "Editor exited. Editor content saved."
-msgstr ""
-
-#: appMain.py:2870 appMain.py:2922
-msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update."
-msgstr ""
-
-#: appMain.py:2880
-msgid "is updated, returning to App..."
-msgstr ""
-
-#: appMain.py:2897
-msgid "Editor exited. Editor content was not saved."
-msgstr ""
-
-#: appMain.py:2947
-msgid "Select a Gerber, Geometry, Excellon or CNCJob object to update."
-msgstr ""
-
-#: appMain.py:3090 appMain.py:3096
-msgid "Save to file"
-msgstr ""
-
-#: appMain.py:3137
-msgid "Exported file to"
-msgstr ""
-
-#: appMain.py:3174
-msgid "Failed to open recent files file for writing."
-msgstr ""
-
-#: appMain.py:3185
-msgid "Failed to open recent projects file for writing."
-msgstr ""
-
-#: appMain.py:3240
-msgid "PCB Manufacturing files Viewer/Editor with Plugins"
-msgstr ""
-
-#: appMain.py:3241
-msgid "Development"
-msgstr ""
-
-#: appMain.py:3242
-msgid "DOWNLOAD"
-msgstr ""
-
-#: appMain.py:3243
-msgid "Issue tracker"
-msgstr ""
-
-#: appMain.py:3247 appMain.py:3807 appMain.py:3990
-msgid "Close"
-msgstr ""
-
-#: appMain.py:3262
-msgid "Licensed under the MIT license"
-msgstr ""
-
-#: appMain.py:3271
-msgid ""
-"Permission is hereby granted, free of charge, to any person obtaining a copy\n"
-"of this software and associated documentation files (the \"Software\"), to deal\n"
-"in the Software without restriction, including without limitation the rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-msgstr ""
-
-#: appMain.py:3293
-msgid ""
-"Some of the icons used are from the following sources:
Icons by
oNline Web Fonts"
-msgstr ""
-
-#: appMain.py:3329
-msgid "Splash"
-msgstr ""
-
-#: appMain.py:3335
-msgid "Programmers"
-msgstr ""
-
-#: appMain.py:3341
-msgid "Translators"
-msgstr ""
-
-#: appMain.py:3347
-msgid "License"
-msgstr ""
-
-#: appMain.py:3353
-msgid "Attributions"
-msgstr ""
-
-#: appMain.py:3583
-msgid "Programmer"
-msgstr ""
-
-#: appMain.py:3584
-msgid "Status"
-msgstr ""
-
-#: appMain.py:3585 appMain.py:3667
-msgid "E-mail"
-msgstr ""
-
-#: appMain.py:3589
-msgid "FlatCAM Author"
-msgstr ""
-
-#: appMain.py:3593
-msgid "FlatCAM Evo Author/Maintainer"
-msgstr ""
-
-#: appMain.py:3665
-msgid "Language"
-msgstr ""
-
-#: appMain.py:3666
-msgid "Translator"
-msgstr ""
-
-#: appMain.py:3775
-#, python-format
-msgid "This program is %s and free in a very wide meaning of the word."
-msgstr ""
-
-#: appMain.py:3776
-msgid "Yet it cannot evolve without
contributions."
-msgstr ""
-
-#: appMain.py:3777
-msgid "If you want to see this application grow and become better and better"
-msgstr ""
-
-#: appMain.py:3778
-msgid "you can
contribute to the development yourself by:"
-msgstr ""
-
-#: appMain.py:3779
-msgid "Pull Requests on the Bitbucket repository, if you are a developer"
-msgstr ""
-
-#: appMain.py:3781
-msgid "Bug Reports by providing the steps required to reproduce the bug"
-msgstr ""
-
-#: appMain.py:3783
-msgid "If you like what you have seen so far ..."
-msgstr ""
-
-#: appMain.py:3784
-msgid "Donations are NOT required."
-msgstr ""
-
-#: appMain.py:3784
-msgid "But they are welcomed"
-msgstr ""
-
-#: appMain.py:3815
-msgid "Contribute"
-msgstr ""
-
-#: appMain.py:3836
-msgid "Links Exchange"
-msgstr ""
-
-#: appMain.py:3849 appMain.py:3869
-msgid "Soon ..."
-msgstr ""
-
-#: appMain.py:3856
-msgid "How To's"
-msgstr ""
-
-#: appMain.py:3976
-msgid "Alternative website"
-msgstr ""
-
-#: appMain.py:3977
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about the application\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-
-#: appMain.py:4335
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr ""
-
-#: appMain.py:4352
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr ""
-
-#: appMain.py:4368
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr ""
-
-#: appMain.py:4556 appMain.py:4619 appMain.py:4650
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr ""
-
-#: appMain.py:4565
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility is to "
-"convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may be lost and "
-"the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-
-#: appMain.py:4580 appMain.py:4591
-msgid "Geometry merging finished"
-msgstr ""
-
-#: appMain.py:4614
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr ""
-
-#: appMain.py:4627
-msgid "Excellon merging finished"
-msgstr ""
-
-#: appMain.py:4645
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr ""
-
-#: appMain.py:4655
-msgid "Gerber merging finished"
-msgstr ""
-
-#: appMain.py:4675 appMain.py:4711
-msgid "Failed. Select a Geometry Object and try again."
-msgstr ""
-
-#: appMain.py:4679 appMain.py:4715
-msgid "Expected a GeometryObject, got"
-msgstr ""
-
-#: appMain.py:4694
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr ""
-
-#: appMain.py:4732
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr ""
-
-#: appMain.py:4968
-msgid "Units cannot be changed while the editor is active."
-msgstr ""
-
-#: appMain.py:4977
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: appMain.py:5031
-msgid "Converted units to"
-msgstr ""
-
-#: appMain.py:5065
-msgid "Workspace enabled."
-msgstr ""
-
-#: appMain.py:5068
-msgid "Workspace disabled."
-msgstr ""
-
-#: appMain.py:5090
-msgid "FlatCAM log opened."
-msgstr ""
-
-#: appMain.py:5145
-msgid "Tool adding ..."
-msgstr ""
-
-#: appMain.py:5146
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-
-#: appMain.py:5236
-msgid "Delete objects"
-msgstr ""
-
-#: appMain.py:5237
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-
-#: appMain.py:5292
-msgid "Save the work in Editor and try again ..."
-msgstr ""
-
-#: appMain.py:5325
-msgid "Object deleted"
-msgstr ""
-
-#: appMain.py:5338
-msgid "Click to set the origin ..."
-msgstr ""
-
-#: appMain.py:5377
-msgid "Setting Origin..."
-msgstr ""
-
-#: appMain.py:5398 appMain.py:5519 appMain.py:5631
-msgid "Origin set"
-msgstr ""
-
-#: appMain.py:5418
-msgid "Origin coordinates specified but incomplete."
-msgstr ""
-
-#: appMain.py:5465
-msgid "Moving to Origin..."
-msgstr ""
-
-#: appMain.py:5469 appMain.py:5537
-msgid "Failed. No object(s) selected..."
-msgstr ""
-
-#: appMain.py:5541
-msgid "Quadrant 2"
-msgstr ""
-
-#: appMain.py:5542
-msgid "Quadrant 1"
-msgstr ""
-
-#: appMain.py:5543
-msgid "Quadrant 3"
-msgstr ""
-
-#: appMain.py:5544
-msgid "Quadrant 4"
-msgstr ""
-
-#: appMain.py:5668
-msgid "Jump to ..."
-msgstr ""
-
-#: appMain.py:5669 appMain.py:5929
-msgid "Enter the coordinates in format X,Y:"
-msgstr ""
-
-#: appMain.py:5680 appMain.py:5939
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr ""
-
-#: appMain.py:5775
-msgid "T Left"
-msgstr ""
-
-#: appMain.py:5776
-msgid "T Right"
-msgstr ""
-
-#: appMain.py:5777
-msgid "B Left"
-msgstr ""
-
-#: appMain.py:5778
-msgid "B Right"
-msgstr ""
-
-#: appMain.py:5781
-msgid "Locate ..."
-msgstr ""
-
-#: appMain.py:5928
-msgid "Move to ..."
-msgstr ""
-
-#: appMain.py:6485 appMain.py:9385
-msgid "Aborting."
-msgstr ""
-
-#: appMain.py:6485
-msgid "The current task will be gracefully closed as soon as possible..."
-msgstr ""
-
-#: appMain.py:6492
-msgid "The current task was gracefully closed on user request..."
-msgstr ""
-
-#: appMain.py:6695
-msgid "Not available for Legacy 2D graphic mode."
-msgstr ""
-
-#: appMain.py:6797
-msgid "Adding tool from DB is not allowed for this object."
-msgstr ""
-
-#: appMain.py:6815
-msgid "Save Tools Database"
-msgstr ""
-
-#: appMain.py:6816
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to save?"
-msgstr ""
-
-#: appMain.py:7045 appMain.py:7099 appMain.py:7147
-msgid "Enter the Angle value:"
-msgstr ""
-
-#: appMain.py:7078
-msgid "Rotation done."
-msgstr ""
-
-#: appMain.py:7080
-msgid "Rotation movement was not executed."
-msgstr ""
-
-#: appMain.py:7129
-msgid "Skew on X axis done."
-msgstr ""
-
-#: appMain.py:7177
-msgid "Skew on Y axis done."
-msgstr ""
-
-#: appMain.py:7248
-msgid "New Grid ..."
-msgstr ""
-
-#: appMain.py:7249
-msgid "Enter a Grid Value:"
-msgstr ""
-
-#: appMain.py:7258 appMain.py:7283
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr ""
-
-#: appMain.py:7263
-msgid "New Grid added"
-msgstr ""
-
-#: appMain.py:7265
-msgid "Grid already exists"
-msgstr ""
-
-#: appMain.py:7267
-msgid "Adding New Grid cancelled"
-msgstr ""
-
-#: appMain.py:7289
-msgid "Grid Value does not exist"
-msgstr ""
-
-#: appMain.py:7291
-msgid "Grid Value deleted"
-msgstr ""
-
-#: appMain.py:7293
-msgid "Delete Grid value cancelled"
-msgstr ""
-
-#: appMain.py:7307
-msgid "Name copied to clipboard ..."
-msgstr ""
-
-#: appMain.py:8212 appMain.py:8216
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr ""
-
-#: appMain.py:8219
-msgid "Viewing the source code of the selected object."
-msgstr ""
-
-#: appMain.py:8233
-msgid "Source Editor"
-msgstr ""
-
-#: appMain.py:8269 appMain.py:8276
-msgid "There is no selected object for which to see it's source file code."
-msgstr ""
-
-#: appMain.py:8284
-msgid "Failed to load the source code for the selected object"
-msgstr ""
-
-#: appMain.py:8317
-msgid "Go to Line ..."
-msgstr ""
-
-#: appMain.py:8348
-msgid "Redrawing all objects"
-msgstr ""
-
-#: appMain.py:8443
-msgid "Failed to load recent item list."
-msgstr ""
-
-#: appMain.py:8450
-msgid "Failed to parse recent item list."
-msgstr ""
-
-#: appMain.py:8460
-msgid "Failed to load recent projects item list."
-msgstr ""
-
-#: appMain.py:8467
-msgid "Failed to parse recent project item list."
-msgstr ""
-
-#: appMain.py:8491
-msgid "Recent files list was reset."
-msgstr ""
-
-#: appMain.py:8505
-msgid "Recent projects list was reset."
-msgstr ""
-
-#: appMain.py:8530
-msgid "Clear Recent projects"
-msgstr ""
-
-#: appMain.py:8554
-msgid "Clear Recent files"
-msgstr ""
-
-#: appMain.py:8611
-msgid "FlatCAM Evo"
-msgstr ""
-
-#: appMain.py:8615
-msgid "Release date"
-msgstr ""
-
-#: appMain.py:8619
-msgid "Displayed"
-msgstr ""
-
-#: appMain.py:8631
-msgid "Canvas"
-msgstr ""
-
-#: appMain.py:8636
-msgid "Workspace active"
-msgstr ""
-
-#: appMain.py:8640
-msgid "Workspace size"
-msgstr ""
-
-#: appMain.py:8644
-msgid "Workspace orientation"
-msgstr ""
-
-#: appMain.py:8706
-msgid "Failed checking for latest version. Could not connect."
-msgstr ""
-
-#: appMain.py:8713
-msgid "Could not parse information about latest version."
-msgstr ""
-
-#: appMain.py:8723
-msgid "The application is up to date!"
-msgstr ""
-
-#: appMain.py:8727
-msgid "Newer Version Available"
-msgstr ""
-
-#: appMain.py:8729
-msgid "There is a newer version available for download:"
-msgstr ""
-
-#: appMain.py:8759
-msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported.Change the "
-"graphic engine to Legacy(2D) in Edit -> Preferences -> General tab.\n"
-"\n"
-msgstr ""
-
-#: appMain.py:8850
-msgid "All plots disabled."
-msgstr ""
-
-#: appMain.py:8856
-msgid "All non selected plots disabled."
-msgstr ""
-
-#: appMain.py:8862
-msgid "All plots enabled."
-msgstr ""
-
-#: appMain.py:8868
-msgid "All non selected plots enabled."
-msgstr ""
-
-#: appMain.py:8876
-msgid "Selected plots enabled..."
-msgstr ""
-
-#: appMain.py:8884
-msgid "Selected plots disabled..."
-msgstr ""
-
-#: appMain.py:8926
-msgid "Enabling plots ..."
-msgstr ""
-
-#: appMain.py:8979
-msgid "Disabling plots ..."
-msgstr ""
-
-#: appMain.py:9147
-msgid "Set alpha level ..."
-msgstr ""
-
-#: appMain.py:9545 appMain.py:9583 appMain.py:9626 appMain.py:9690 appMain.py:10485
-#: appMain.py:11788 appMain.py:11853
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-
-#: appMain.py:9548
-msgid "Opening Gerber file."
-msgstr ""
-
-#: appMain.py:9586
-msgid "Opening Excellon file."
-msgstr ""
-
-#: appMain.py:9629
-msgid "Opening G-Code file."
-msgstr ""
-
-#: appMain.py:9681 appMain.py:9685
-msgid "Open HPGL2"
-msgstr ""
-
-#: appMain.py:9693
-msgid "Opening HPGL2 file."
-msgstr ""
-
-#: appMain.py:9715 appMain.py:9718
-msgid "Open Configuration File"
-msgstr ""
-
-#: appMain.py:9744
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr ""
-
-#: appMain.py:9794
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr ""
-
-#: appMain.py:9800 appMain.py:9805
-msgid "Export PNG Image"
-msgstr ""
-
-#: appMain.py:9838 appMain.py:10050
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr ""
-
-#: appMain.py:9851
-msgid "Save Gerber source file"
-msgstr ""
-
-#: appMain.py:9880
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr ""
-
-#: appMain.py:9893
-msgid "Save Script source file"
-msgstr ""
-
-#: appMain.py:9922
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr ""
-
-#: appMain.py:9935
-msgid "Save Document source file"
-msgstr ""
-
-#: appMain.py:9964 appMain.py:10005 appMain.py:11001
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr ""
-
-#: appMain.py:9972 appMain.py:9977
-msgid "Save Excellon source file"
-msgstr ""
-
-#: appMain.py:10095
-msgid "Only Geometry objects can be used."
-msgstr ""
-
-#: appMain.py:10146 appMain.py:10150
-msgid "Import SVG"
-msgstr ""
-
-#: appMain.py:10176 appMain.py:10180
-msgid "Import DXF"
-msgstr ""
-
-#: appMain.py:10207
-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 ""
-
-#: appMain.py:10338
-msgid "Save preferences"
-msgstr ""
-
-#: appMain.py:10339
-msgid "Do you want to save the loaded project settings as the default settings?"
-msgstr ""
-
-#: appMain.py:10363
-msgid "Project created in"
-msgstr ""
-
-#: appMain.py:10363
-msgid "seconds"
-msgstr ""
-
-#: appMain.py:10366
-msgid "New Project created"
-msgstr ""
-
-#: appMain.py:10394
-msgid "New TCL script file created in Code Editor."
-msgstr ""
-
-#: appMain.py:10421 appMain.py:10423 appMain.py:10458 appMain.py:10460
-msgid "Open TCL script"
-msgstr ""
-
-#: appMain.py:10487
-msgid "Executing ScriptObject file."
-msgstr ""
-
-#: appMain.py:10495 appMain.py:10499
-msgid "Run TCL script"
-msgstr ""
-
-#: appMain.py:10522
-msgid "TCL script file opened in Code Editor and executed."
-msgstr ""
-
-#: appMain.py:10570 appMain.py:10577
-msgid "Save Project As ..."
-msgstr ""
-
-#: appMain.py:10614
-msgid "FlatCAM objects print"
-msgstr ""
-
-#: appMain.py:10627 appMain.py:10635
-msgid "Save Object as PDF ..."
-msgstr ""
-
-#: appMain.py:10645
-msgid "Printing PDF ..."
-msgstr ""
-
-#: appMain.py:10826
-msgid "PDF file saved to"
-msgstr ""
-
-#: appMain.py:10848 appMain.py:11108 appMain.py:11242 appMain.py:11309
-msgid "Exporting ..."
-msgstr ""
-
-#: appMain.py:10891
-msgid "SVG file exported to"
-msgstr ""
-
-#: appMain.py:10906 appMain.py:10910
-msgid "Import FlatCAM Preferences"
-msgstr ""
-
-#: appMain.py:10921
-msgid "Imported Defaults from"
-msgstr ""
-
-#: appMain.py:10940 appMain.py:10946
-msgid "Export FlatCAM Preferences"
-msgstr ""
-
-#: appMain.py:10966
-msgid "Exported preferences to"
-msgstr ""
-
-#: appMain.py:11099
-msgid "Excellon file exported to"
-msgstr ""
-
-#: appMain.py:11113 appMain.py:11120 appMain.py:11247 appMain.py:11254 appMain.py:11314
-#: appMain.py:11321
-msgid "Could not export."
-msgstr ""
-
-#: appMain.py:11234
-msgid "Gerber file exported to"
-msgstr ""
-
-#: appMain.py:11300
-msgid "DXF file exported to"
-msgstr ""
-
-#: appMain.py:11376 appMain.py:11433
-msgid "Import failed."
-msgstr ""
-
-#: appMain.py:11467 appMain.py:11674 appMain.py:11739
-msgid "Failed to open file"
-msgstr ""
-
-#: appMain.py:11470 appMain.py:11677 appMain.py:11742
-msgid "Failed to parse file"
-msgstr ""
-
-#: appMain.py:11482
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr ""
-
-#: appMain.py:11493 appMain.py:11563 appMain.py:11627 appMain.py:11701 appMain.py:11757
-#: appMain.py:11932 tclCommands/TclCommandOpenDXF.py:90
-msgid "Opening"
-msgstr ""
-
-#: appMain.py:11504
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr ""
-
-#: appMain.py:11542
-msgid "Cannot open file"
-msgstr ""
-
-#: appMain.py:11573
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr ""
-
-#: appMain.py:11609
-msgid "Reading GCode file"
-msgstr ""
-
-#: appMain.py:11622
-msgid "This is not GCODE"
-msgstr ""
-
-#: appMain.py:11640
-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 ""
-
-#: appMain.py:11696
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr ""
-
-#: appMain.py:11708
-msgid "Failed. Probable not a HPGL2 file."
-msgstr ""
-
-#: appMain.py:11734
-msgid "TCL script file opened in Code Editor."
-msgstr ""
-
-#: appMain.py:11768
-msgid "Failed to open TCL Script."
-msgstr ""
-
-#: appMain.py:11791
-msgid "Opening FlatCAM Config file."
-msgstr ""
-
-#: appMain.py:11818
-msgid "Failed to open config file"
-msgstr ""
-
-#: appMain.py:11850
-msgid "Loading Project ... Please Wait ..."
-msgstr ""
-
-#: appMain.py:11856
-msgid "Opening FlatCAM Project file."
-msgstr ""
-
-#: appMain.py:11871 appMain.py:11875 appMain.py:11893
-msgid "Failed to open project file"
-msgstr ""
-
-#: appMain.py:11966
-msgid "Loading Project ... restoring"
-msgstr ""
-
-#: appMain.py:11972
-msgid "Project loaded from"
-msgstr ""
-
-#: appMain.py:12004
-msgid "Saving Project ..."
-msgstr ""
-
-#: appMain.py:12048 appMain.py:12104
-msgid "Project saved to"
-msgstr ""
-
-#: appMain.py:12059
-msgid "The object is used by another application."
-msgstr ""
-
-#: appMain.py:12079
-msgid "Failed to verify project file"
-msgstr ""
-
-#: appMain.py:12079 appMain.py:12088 appMain.py:12096 appMain.py:12109
-msgid "Retry to save it."
-msgstr ""
-
-#: appMain.py:12086 appMain.py:12094 appMain.py:12107
-msgid "Failed to parse saved project file"
-msgstr ""
-
-#: appMain.py:12144
-msgid "Save cancelled because source file is empty. Try to export the file."
-msgstr ""
-
#: assets/linux/flatcam-beta.desktop:3
msgid "FlatCAM Beta"
msgstr ""
@@ -16971,89 +17106,89 @@ msgstr ""
msgid "G-Code from GERBERS"
msgstr ""
-#: camlib.py:711
+#: camlib.py:710
msgid "self.solid_geometry is neither BaseGeometry or list."
msgstr ""
-#: camlib.py:1154
+#: camlib.py:1153
msgid "Pass"
msgstr ""
-#: camlib.py:1176
+#: camlib.py:1175
msgid "Get Exteriors"
msgstr ""
-#: camlib.py:1179
+#: camlib.py:1178
msgid "Get Interiors"
msgstr ""
-#: camlib.py:2535
+#: camlib.py:2534
msgid "Object was rotated"
msgstr ""
-#: camlib.py:2603
+#: camlib.py:2602
msgid "Object was skewed"
msgstr ""
-#: camlib.py:2674
+#: camlib.py:2673
msgid "Object was buffered"
msgstr ""
-#: camlib.py:2937
+#: camlib.py:2936
msgid "There is no such parameter"
msgstr ""
-#: camlib.py:3152 camlib.py:3196 camlib.py:5658 camlib.py:6087
+#: camlib.py:3153 camlib.py:3197 camlib.py:5666 camlib.py:6095
msgid "Indexing geometry before generating G-Code..."
msgstr ""
-#: camlib.py:3229 camlib.py:4332 camlib.py:4591
+#: camlib.py:3230 camlib.py:4340 camlib.py:4599
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:3236
+#: camlib.py:3237
msgid "The Cut Z parameter is zero. There will be no cut, aborting"
msgstr ""
-#: camlib.py:3386 camlib.py:3824
+#: camlib.py:3387 camlib.py:3828
msgid "The End X,Y format has to be (x, y)."
msgstr ""
-#: camlib.py:3471 camlib.py:3918 camlib.py:4427 camlib.py:4678 camlib.py:5732 camlib.py:6169
+#: camlib.py:3472 camlib.py:3922 camlib.py:4435 camlib.py:4686 camlib.py:5740 camlib.py:6177
msgid "Starting G-Code for tool with diameter"
msgstr ""
-#: camlib.py:3598 camlib.py:4554 camlib.py:4801 camlib.py:7143 camlib.py:7420 camlib.py:7569
+#: camlib.py:3599 camlib.py:4562 camlib.py:4809 camlib.py:7161 camlib.py:7438 camlib.py:7587
msgid "G91 coordinates not implemented"
msgstr ""
-#: camlib.py:3607
+#: camlib.py:3608
msgid "Finished G-Code generation for tool:"
msgstr ""
-#: camlib.py:3732 camlib.py:5605 camlib.py:6027
+#: camlib.py:3733 camlib.py:5613 camlib.py:6035
msgid "Cut_Z parameter is None or zero. Most likely a bad combinations of other parameters."
msgstr ""
-#: camlib.py:3740 camlib.py:5613 camlib.py:6036
+#: camlib.py:3741 camlib.py:5621 camlib.py:6044
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:3748 camlib.py:4342 camlib.py:4601 camlib.py:5621 camlib.py:6044
+#: camlib.py:3749 camlib.py:4350 camlib.py:4609 camlib.py:5629 camlib.py:6052
msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
msgstr ""
-#: camlib.py:3753 camlib.py:5626 camlib.py:6050
+#: camlib.py:3754 camlib.py:5634 camlib.py:6058
msgid "Travel Z parameter is None or zero."
msgstr ""
-#: camlib.py:3758 camlib.py:5631 camlib.py:6056
+#: camlib.py:3759 camlib.py:5639 camlib.py:6064
msgid ""
"The Travel Z parameter has negative value. It is the height value to travel between "
"cuts.\n"
@@ -17061,83 +17196,83 @@ msgid ""
"the app will convert the value to positive.Check the resulting CNC code (Gcode etc)."
msgstr ""
-#: camlib.py:3766 camlib.py:5639 camlib.py:6064
+#: camlib.py:3767 camlib.py:5647 camlib.py:6072
msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
msgstr ""
-#: camlib.py:4039 camlib.py:5474 camlib.py:5805 camlib.py:6250
+#: camlib.py:4047 camlib.py:5482 camlib.py:5813 camlib.py:6258
msgid "Finished G-Code generation"
msgstr ""
-#: camlib.py:4039 camlib.py:5805 camlib.py:6250 camlib.py:6371
+#: camlib.py:4047 camlib.py:5813 camlib.py:6258 camlib.py:6381
msgid "paths traced"
msgstr ""
-#: camlib.py:4098
+#: camlib.py:4106
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:4110 camlib.py:5568 camlib.py:5992
+#: camlib.py:4118 camlib.py:5576 camlib.py:6000
msgid ""
"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) but now "
"there is only one value, not two."
msgstr ""
-#: camlib.py:4230
+#: camlib.py:4238
msgid "Failed. Drill points inside the exclusion zones."
msgstr ""
-#: camlib.py:5591
+#: camlib.py:5599
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:5860
+#: camlib.py:5868
msgid "Trying to generate a CNC Job from a Geometry object without solid_geometry."
msgstr ""
-#: camlib.py:5911
+#: camlib.py:5919
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:6281
+#: camlib.py:6289
msgid "There is no tool data in the SolderPaste geometry."
msgstr ""
-#: camlib.py:6371
+#: camlib.py:6381
msgid "Finished SolderPaste G-Code generation"
msgstr ""
-#: camlib.py:6720
+#: camlib.py:6733
msgid "Parsing GCode file. Number of lines"
msgstr ""
-#: camlib.py:6832
+#: camlib.py:6845
msgid "Creating Geometry from the parsed GCode file. "
msgstr ""
-#: camlib.py:6889
+#: camlib.py:6902
msgid "Parsing GCode file for tool diameter"
msgstr ""
-#: camlib.py:6890
+#: camlib.py:6903
msgid "Number of lines"
msgstr ""
-#: camlib.py:6979
+#: camlib.py:6992
msgid "Creating Geometry from the parsed GCode file for tool diameter"
msgstr ""
-#: camlib.py:7738
+#: camlib.py:7756
msgid "G91 coordinates not implemented ..."
msgstr ""
-#: defaults.py:949 defaults.py:1120
+#: defaults.py:954 defaults.py:1125
msgid "Failed to parse defaults file."
msgstr ""
@@ -17178,10 +17313,12 @@ msgid "The name of the object for which cutout is done is missing. Add it and re
msgstr ""
#: tclCommands/TclCommandGeoCutout.py:186
-msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
+msgid ""
+"Gaps value can be only one of: 'none', 'lr', 'tb', '2lr', '2tb', 4 or 8.\n"
+"Fill in a correct value and retry."
msgstr ""
-#: tclCommands/TclCommandGeoCutout.py:217
+#: tclCommands/TclCommandGeoCutout.py:218
msgid "Cancelled. Object type is not supported."
msgstr ""
diff --git a/preprocessors/Paste_1.py b/preprocessors/Paste_1.py
index e295048d..c30698f0 100644
--- a/preprocessors/Paste_1.py
+++ b/preprocessors/Paste_1.py
@@ -17,31 +17,98 @@ class Paste_1(AppPreProcTools):
def start_code(self, p):
units = ' ' + str(p['units']).lower()
- if isinstance(p['xy_toolchange'], str):
- temp_val = p['xy_toolchange'].replace('[', '').replace(']', '')
- coords_xy = [float(eval(a)) for a in temp_val.split(",") if a != '']
- else:
- coords_xy = p['xy_toolchange']
- gcode = '(This preprocessor is to be used only with the SolderPaste Plugin.)\n\n'
+ gcode = '(This preprocessor is used only with the SolderPaste Plugin and with MACH3-like controllers.)\n\n'
xmin = '%.*f' % (p.coords_decimals, p['obj_options']['xmin'])
xmax = '%.*f' % (p.coords_decimals, p['obj_options']['xmax'])
ymin = '%.*f' % (p.coords_decimals, p['obj_options']['ymin'])
ymax = '%.*f' % (p.coords_decimals, p['obj_options']['ymax'])
- gcode += '(TOOL DIAMETER: ' + str(p['obj_options']['tool_dia']) + units + ')\n'
- gcode += '(Feedrate_XY: ' + str(p['frxy']) + units + '/min' + ')\n'
- gcode += '(Feedrate_Z: ' + str(p['frz']) + units + '/min' + ')\n'
- gcode += '(Feedrate_Z_Dispense: ' + str(p['frz_dispense']) + units + '/min' + ')\n'
+ gcode += '\n(TOOLS DIAMETER: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dia: %s' % str(val["tooldia"]) + units + ')\n'
- gcode += '(Z_Dispense_Start: ' + str(p['z_start']) + units + ')\n'
- gcode += '(Z_Dispense: ' + str(p['z_dispense']) + units + ')\n'
- gcode += '(Z_Dispense_Stop: ' + str(p['z_stop']) + units + ')\n'
- gcode += '(Z_Travel: ' + str(p['z_travel']) + units + ')\n'
- gcode += '(Z Toolchange: ' + str(p['z_toolchange']) + units + ')\n'
+ gcode += '\n(MARGIN: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Margin: %s' % str(
+ val['data']["tools_solderpaste_margin"]) + ')\n'
- gcode += '(X,Y Toolchange: ' + "%.*f, %.*f" % (p.decimals, coords_xy[0],
- p.decimals, coords_xy[1]) + units + ')\n'
+ gcode += '\n(FEEDRATE XY: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate XY: %s' % \
+ str(val['data']["tools_solderpaste_frxy"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE RAPIDS: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Rapids: %s' % \
+ str(val['data']["tools_solderpaste_fr_rapids"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE Z: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Z: %s' % \
+ str(val['data']["tools_solderpaste_frz"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE Z_DISPENSE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Z_Dispense: %s' % \
+ str(val['data']["tools_solderpaste_frz_dispense"]) + units + '/min' + ')\n'
+
+ gcode += '\n(Z_DISPENSE START: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense_Start: %s' % str(
+ val['data']["tools_solderpaste_z_start"]) + units + ')\n'
+
+ gcode += '\n(Z_DISPENSE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense: %s' % str(
+ val['data']["tools_solderpaste_z_dispense"]) + units + ')\n'
+
+ gcode += '\n(Z_DISPENSE STOP: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense_Stop: %s' % str(
+ val['data']["tools_solderpaste_z_stop"]) + units + ')\n'
+
+ gcode += '\n(Z_TRAVEL: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Travel: %s' % str(
+ val['data']["tools_solderpaste_z_travel"]) + units + ')\n'
+
+ gcode += '\n(Z_TOOLCHANGE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Toolchange: %s' % str(
+ val['data']["tools_solderpaste_z_toolchange"]) + units + ')\n'
+
+ gcode += '\n(XY_TOOLCHANGE: )\n'
+ for tool, val in p['tools'].items():
+ xy_tc_coords = val['data']["tools_solderpaste_xy_toolchange"]
+ if isinstance(xy_tc_coords, str):
+ temp_val = xy_tc_coords.replace('[', '').replace(']', '')
+ coords_xy = [float(eval(a)) for a in temp_val.split(",") if a != '']
+ else:
+ coords_xy = xy_tc_coords
+
+ xy_coords_formatted = "%.*f, %.*f" % (p.decimals, coords_xy[0], p.decimals, coords_xy[1])
+ gcode += '(Tool: %s -> ' % str(tool) + 'X,Y Toolchange: %s' % xy_coords_formatted + units + ')\n'
+
+ gcode += '\n(Spindle Speed FWD: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Spindle Speed FWD: %s RPM' % str(
+ val['data']["tools_solderpaste_speedfwd"]) + units + ')\n'
+
+ gcode += '\n(Dwell FWD: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dwell FWD: %s' % str(
+ val['data']["tools_solderpaste_dwellfwd"]) + units + ')\n'
+
+ gcode += '\n(Spindle Speed REV: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Spindle Speed REV: %s RPM' % str(
+ val['data']["tools_solderpaste_speedrev"]) + units + ')\n'
+
+ gcode += '\n(Dwell REV: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dwell REV: %s' % str(
+ val['data']["tools_solderpaste_dwellrev"]) + units + ')\n'
if 'Paste' in p.pp_solderpaste_name:
gcode += '(Preprocessor SolderPaste Dispensing Geometry: ' + str(p.pp_solderpaste_name) + ')\n' + '\n'
@@ -49,29 +116,27 @@ class Paste_1(AppPreProcTools):
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
- gcode += '(Spindle Speed FWD: %s RPM)\n' % str(p['speedfwd'])
- gcode += '(Spindle Speed REV: %s RPM)\n' % str(p['speedrev'])
- gcode += '(Dwell FWD: %s RPM)\n' % str(p['dwellfwd'])
- gcode += '(Dwell REV: %s RPM)\n' % str(p['dwellrev'])
-
gcode += ('G20\n' if p.units.upper() == 'IN' else 'G21\n')
gcode += 'G90\n'
gcode += 'G94\n'
return gcode
def lift_code(self, p):
- return 'G00 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel']))
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
def down_z_start_code(self, p):
- return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_start']))
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_start'])) + ' F%s' % str(p['frz'])
def lift_z_dispense_code(self, p):
- return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_dispense']))
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_dispense'])) + \
+ ' F%s' % str(p['frz_dispense'])
def down_z_stop_code(self, p):
- return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_stop']))
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_stop'])) + ' F%s' % str(p['frz'])
def toolchange_code(self, p):
+ fr_rapids = float(p['fr_rapids'])
z_toolchange = float(p['z_toolchange'])
if isinstance(p['xy_toolchange'], str):
@@ -91,30 +156,34 @@ class Paste_1(AppPreProcTools):
if toolchangexy is not None:
gcode = """
-G00 Z{z_toolchange}
-G00 X{x_toolchange} Y{y_toolchange}
+(Toolchange: START)
+G01 Z{z_toolchange} F{fr_rapids}
+G01 X{x_toolchange} Y{y_toolchange} F{fr_rapids}
T{tool}
M6
(MSG, Change to Tool with Nozzle Dia = {toolC})
M0
-G00 Z{z_toolchange}
+G01 Z{z_toolchange} F{fr_rapids}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(int(p.tool)),
- toolC=toolC_formatted)
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
else:
gcode = """
-G00 Z{z_toolchange}
+(Toolchange: START)
+G01 Z{z_toolchange} F{fr_rapids}
T{tool}
M6
(MSG, Change to Tool with Nozzle Dia = {toolC})
M0
-G00 Z{z_toolchange}
+G01 Z{z_toolchange} F{fr_rapids}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(int(p.tool)),
- toolC=toolC_formatted)
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
return gcode
@@ -135,22 +204,25 @@ G00 Z{z_toolchange}
(p.coords_decimals, x_pos, p.coords_decimals, y_pos)
def rapid_code(self, p):
- return ('G00 ' + self.position_code(p)).format(**p) + '\nG00 Z' + \
- self.coordinate_format % (p.coords_decimals, float(p['z_travel']))
+ return ('G01 ' + self.position_code(p)).format(**p) + ' F%s' % str(p['fr_rapids']) + \
+ '\nG01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
def linear_code(self, p):
- return ('G01 ' + self.position_code(p)).format(**p)
+ return ('G01 ' + self.position_code(p)).format(**p) + ' F' + \
+ str(self.feedrate_format % (p.fr_decimals, float(p['frxy'])))
def end_code(self, p):
coords_xy = [float(eval(a)) for a in p['xy_end'].split(",") if a != '']
- gcode = ('G00 Z' + self.feedrate_format % (p.fr_decimals, float(p['z_toolchange'])) + "\n")
+ gcode = ('G01 Z' + self.feedrate_format % (p.fr_decimals, float(p['z_toolchange'])) +
+ 'F%s' % str(p['fr_rapids']) + "\n")
if coords_xy and coords_xy != '':
- gcode += 'G00 X{x} Y{y}'.format(x=coords_xy[0], y=coords_xy[1]) + "\n"
+ gcode += 'G01 X{x} Y{y}'.format(x=coords_xy[0], y=coords_xy[1]) + ' F%s' % str(p['fr_rapids']) + "\n"
return gcode
def feedrate_xy_code(self, p):
- return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frxy'])))
+ return ''
def z_feedrate_code(self, p):
return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frz'])))
diff --git a/preprocessors/Paste_GRBL.py b/preprocessors/Paste_GRBL.py
new file mode 100644
index 00000000..38e0b8a3
--- /dev/null
+++ b/preprocessors/Paste_GRBL.py
@@ -0,0 +1,253 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# http://flatcam.org #
+# File Author: Marius Adrian Stanciu (c) #
+# Date: 3/10/2019 #
+# MIT Licence #
+# ##########################################################
+
+from appPreProcessor import *
+
+
+class Paste_GRBL(AppPreProcTools):
+
+ include_header = True
+ coordinate_format = "%.*f"
+ feedrate_format = '%.*f'
+
+ def start_code(self, p):
+ units = ' ' + str(p['units']).lower()
+ gcode = '(This preprocessor is used only with the SolderPaste Plugin and with MACH3-like controllers.)\n\n'
+
+ xmin = '%.*f' % (p.coords_decimals, p['obj_options']['xmin'])
+ xmax = '%.*f' % (p.coords_decimals, p['obj_options']['xmax'])
+ ymin = '%.*f' % (p.coords_decimals, p['obj_options']['ymin'])
+ ymax = '%.*f' % (p.coords_decimals, p['obj_options']['ymax'])
+
+ gcode += '\n(TOOLS DIAMETER: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dia: %s' % str(val["tooldia"]) + units + ')\n'
+
+ gcode += '\n(MARGIN: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Margin: %s' % str(
+ val['data']["tools_solderpaste_margin"]) + ')\n'
+
+ gcode += '\n(FEEDRATE XY: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate XY: %s' % \
+ str(val['data']["tools_solderpaste_frxy"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE RAPIDS: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Rapids: %s' % \
+ str(val['data']["tools_solderpaste_fr_rapids"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE Z: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Z: %s' % \
+ str(val['data']["tools_solderpaste_frz"]) + units + '/min' + ')\n'
+
+ gcode += '\n(FEEDRATE Z_DISPENSE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Z_Dispense: %s' % \
+ str(val['data']["tools_solderpaste_frz_dispense"]) + units + '/min' + ')\n'
+
+ gcode += '\n(Z_DISPENSE START: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense_Start: %s' % str(
+ val['data']["tools_solderpaste_z_start"]) + units + ')\n'
+
+ gcode += '\n(Z_DISPENSE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense: %s' % str(
+ val['data']["tools_solderpaste_z_dispense"]) + units + ')\n'
+
+ gcode += '\n(Z_DISPENSE STOP: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Dispense_Stop: %s' % str(
+ val['data']["tools_solderpaste_z_stop"]) + units + ')\n'
+
+ gcode += '\n(Z_TRAVEL: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Travel: %s' % str(
+ val['data']["tools_solderpaste_z_travel"]) + units + ')\n'
+
+ gcode += '\n(Z_TOOLCHANGE: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Z_Toolchange: %s' % str(
+ val['data']["tools_solderpaste_z_toolchange"]) + units + ')\n'
+
+ gcode += '\n(XY_TOOLCHANGE: )\n'
+ for tool, val in p['tools'].items():
+ xy_tc_coords = val['data']["tools_solderpaste_xy_toolchange"]
+ if isinstance(xy_tc_coords, str):
+ temp_val = xy_tc_coords.replace('[', '').replace(']', '')
+ coords_xy = [float(eval(a)) for a in temp_val.split(",") if a != '']
+ else:
+ coords_xy = xy_tc_coords
+
+ xy_coords_formatted = "%.*f, %.*f" % (p.decimals, coords_xy[0], p.decimals, coords_xy[1])
+ gcode += '(Tool: %s -> ' % str(tool) + 'X,Y Toolchange: %s' % xy_coords_formatted + units + ')\n'
+
+ gcode += '\n(Spindle Speed FWD: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Spindle Speed FWD: %s RPM' % str(
+ val['data']["tools_solderpaste_speedfwd"]) + units + ')\n'
+
+ gcode += '\n(Dwell FWD: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dwell FWD: %s' % str(
+ val['data']["tools_solderpaste_dwellfwd"]) + units + ')\n'
+
+ gcode += '\n(Spindle Speed REV: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Spindle Speed REV: %s RPM' % str(
+ val['data']["tools_solderpaste_speedrev"]) + units + ')\n'
+
+ gcode += '\n(Dwell REV: )\n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Dwell REV: %s' % str(
+ val['data']["tools_solderpaste_dwellrev"]) + units + ')\n'
+
+ if 'Paste' in p.pp_solderpaste_name:
+ gcode += '(Preprocessor SolderPaste Dispensing Geometry: ' + str(p.pp_solderpaste_name) + ')\n' + '\n'
+
+ gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
+ gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
+
+ gcode += ('G20\n' if p.units.upper() == 'IN' else 'G21\n')
+ gcode += 'G90\n'
+ gcode += 'G17\n'
+ gcode += 'G94\n'
+ return gcode
+
+ def lift_code(self, p):
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
+
+ def down_z_start_code(self, p):
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_start'])) + ' F%s' % str(p['frz'])
+
+ def lift_z_dispense_code(self, p):
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_dispense'])) + \
+ ' F%s' % str(p['frz_dispense'])
+
+ def down_z_stop_code(self, p):
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_stop'])) + ' F%s' % str(p['frz'])
+
+ def toolchange_code(self, p):
+ fr_rapids = float(p['fr_rapids'])
+ z_toolchange = float(p['z_toolchange'])
+
+ if isinstance(p['xy_toolchange'], str):
+ temp_val = p['xy_toolchange'].replace('[', '').replace(']', '')
+ toolchangexy = [float(eval(a)) for a in temp_val.split(",") if a != '']
+ else:
+ toolchangexy = p['xy_toolchange']
+
+ if toolchangexy is not None:
+ x_toolchange = toolchangexy[0]
+ y_toolchange = toolchangexy[1]
+ else:
+ x_toolchange = 0.0
+ y_toolchange = 0.0
+
+ toolC_formatted = '%.*f' % (p.decimals, float(p['toolC']))
+
+ if toolchangexy is not None:
+ gcode = """
+(Toolchange: START)
+G01 Z{z_toolchange} F{fr_rapids}
+G01 X{x_toolchange} Y{y_toolchange} F{fr_rapids}
+T{tool}
+(MSG, Change to Tool with Nozzle Dia = {toolC})
+M0
+G01 Z{z_toolchange} F{fr_rapids}
+""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+ y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+ z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+ tool=int(int(p.tool)),
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
+
+ else:
+ gcode = """
+(Toolchange: START)
+G01 Z{z_toolchange} F{fr_rapids}
+T{tool}
+(MSG, Change to Tool with Nozzle Dia = {toolC})
+M0
+G01 Z{z_toolchange} F{fr_rapids}
+""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+ tool=int(int(p.tool)),
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
+
+ return gcode
+
+ def position_code(self, p):
+ # formula for skewing on x for example is:
+ # x_fin = x_init + y_init/slope where slope = p._bed_limit_y / p._bed_skew_x (a.k.a tangent)
+ if p._bed_skew_x == 0:
+ x_pos = p.x + p._bed_offset_x
+ else:
+ x_pos = (p.x + p._bed_offset_x) + ((p.y / p._bed_limit_y) * p._bed_skew_x)
+
+ if p._bed_skew_y == 0:
+ y_pos = p.y + p._bed_offset_y
+ else:
+ y_pos = (p.y + p._bed_offset_y) + ((p.x / p._bed_limit_x) * p._bed_skew_y)
+
+ return ('X' + self.coordinate_format + ' Y' + self.coordinate_format) % \
+ (p.coords_decimals, x_pos, p.coords_decimals, y_pos)
+
+ def rapid_code(self, p):
+ return ('G01 ' + self.position_code(p)).format(**p) + ' F%s' % str(p['fr_rapids']) + \
+ '\nG01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
+
+ def linear_code(self, p):
+ return ('G01 ' + self.position_code(p)).format(**p) + ' F' + \
+ str(self.feedrate_format % (p.fr_decimals, float(p['frxy'])))
+
+ def end_code(self, p):
+ coords_xy = [float(eval(a)) for a in p['xy_end'].split(",") if a != '']
+ gcode = ('G01 Z' + self.feedrate_format % (p.fr_decimals, float(p['z_toolchange'])) +
+ 'F%s' % str(p['fr_rapids']) + "\n")
+
+ if coords_xy and coords_xy != '':
+ gcode += 'G01 X{x} Y{y}'.format(x=coords_xy[0], y=coords_xy[1]) + ' F%s' % str(p['fr_rapids']) + "\n"
+ return gcode
+
+ def feedrate_xy_code(self, p):
+ return ''
+
+ def z_feedrate_code(self, p):
+ return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frz'])))
+
+ def feedrate_z_dispense_code(self, p):
+ return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frz_dispense'])))
+
+ def spindle_fwd_code(self, p):
+ if p.spindlespeed:
+ return 'M03 S' + str(float(p['speedfwd']))
+ else:
+ return 'M03'
+
+ def spindle_rev_code(self, p):
+ if p.spindlespeed:
+ return 'M04 S' + str(float(p['speedrev']))
+ else:
+ return 'M04'
+
+ def spindle_off_code(self, p):
+ return 'M05'
+
+ def dwell_fwd_code(self, p):
+ if p.dwelltime:
+ return 'G4 P' + str(float(p['dwellfwd']))
+
+ def dwell_rev_code(self, p):
+ if p.dwelltime:
+ return 'G4 P' + str(float(p['dwellrev']))
\ No newline at end of file
diff --git a/preprocessors/Paste_Marlin.py b/preprocessors/Paste_Marlin.py
new file mode 100644
index 00000000..ebc56def
--- /dev/null
+++ b/preprocessors/Paste_Marlin.py
@@ -0,0 +1,252 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing #
+# http://flatcam.org #
+# File Author: Marius Adrian Stanciu (c) #
+# Date: 3/10/2019 #
+# MIT Licence #
+# ##########################################################
+
+from appPreProcessor import *
+
+
+class Paste_Marlin(AppPreProcTools):
+
+ include_header = True
+ coordinate_format = "%.*f"
+ feedrate_format = '%.*f'
+
+ def start_code(self, p):
+ units = ' ' + str(p['units']).lower()
+ gcode = '(This preprocessor is used only with the SolderPaste Plugin and with MARLIN-like controllers.)\n\n'
+
+ xmin = '%.*f' % (p.coords_decimals, p['obj_options']['xmin'])
+ xmax = '%.*f' % (p.coords_decimals, p['obj_options']['xmax'])
+ ymin = '%.*f' % (p.coords_decimals, p['obj_options']['ymin'])
+ ymax = '%.*f' % (p.coords_decimals, p['obj_options']['ymax'])
+
+ gcode += '\n;TOOLS DIAMETER: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Dia: %s' % str(val["tooldia"]) + units + '\n'
+
+ gcode += '\nMARGIN: ;\n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Margin: %s' % str(
+ val['data']["tools_solderpaste_margin"]) + '\n'
+
+ gcode += '\n;FEEDRATE XY: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Feedrate XY: %s' % \
+ str(val['data']["tools_solderpaste_frxy"]) + units + '/min' + '\n'
+
+ gcode += '\n;FEEDRATE RAPIDS: \n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Rapids: %s' % \
+ str(val['data']["tools_solderpaste_fr_rapids"]) + units + '/min' + '\n'
+
+ gcode += '\n;FEEDRATE Z: \n'
+ for tool, val in p['tools'].items():
+ gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Z: %s' % \
+ str(val['data']["tools_solderpaste_frz"]) + units + '/min' + '\n'
+
+ gcode += '\n;FEEDRATE Z_DISPENSE: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Feedrate Z_Dispense: %s' % \
+ str(val['data']["tools_solderpaste_frz_dispense"]) + units + '/min' + '\n'
+
+ gcode += '\n;Z_DISPENSE START: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Z_Dispense_Start: %s' % str(
+ val['data']["tools_solderpaste_z_start"]) + units + '\n'
+
+ gcode += '\n;Z_DISPENSE: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Z_Dispense: %s' % str(
+ val['data']["tools_solderpaste_z_dispense"]) + units + '\n'
+
+ gcode += '\n;Z_DISPENSE STOP: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Z_Dispense_Stop: %s' % str(
+ val['data']["tools_solderpaste_z_stop"]) + units + '\n'
+
+ gcode += '\n;Z_TRAVEL: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Z_Travel: %s' % str(
+ val['data']["tools_solderpaste_z_travel"]) + units + '\n'
+
+ gcode += '\n;Z_TOOLCHANGE: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Z_Toolchange: %s' % str(
+ val['data']["tools_solderpaste_z_toolchange"]) + units + '\n'
+
+ gcode += '\n;XY_TOOLCHANGE: \n'
+ for tool, val in p['tools'].items():
+ xy_tc_coords = val['data']["tools_solderpaste_xy_toolchange"]
+ if isinstance(xy_tc_coords, str):
+ temp_val = xy_tc_coords.replace('[', '').replace(']', '')
+ coords_xy = [float(eval(a)) for a in temp_val.split(",") if a != '']
+ else:
+ coords_xy = xy_tc_coords
+
+ xy_coords_formatted = "%.*f, %.*f" % (p.decimals, coords_xy[0], p.decimals, coords_xy[1])
+ gcode += ';Tool: %s -> ' % str(tool) + 'X,Y Toolchange: %s' % xy_coords_formatted + units + '\n'
+
+ gcode += '\n;Spindle Speed FWD: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Spindle Speed FWD: %s RPM' % str(
+ val['data']["tools_solderpaste_speedfwd"]) + units + '\n'
+
+ gcode += '\n;Dwell FWD: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Dwell FWD: %s' % str(
+ val['data']["tools_solderpaste_dwellfwd"]) + units + '\n'
+
+ gcode += '\n;Spindle Speed REV: \n'
+ for tool, val in p['tools'].items():
+ gcode += ';Tool: %s -> ' % str(tool) + 'Spindle Speed REV: %s RPM' % str(
+ val['data']["tools_solderpaste_speedrev"]) + units + '\n'
+
+ gcode += '\n;Dwell REV: \n'
+ for tool, val in p['tools'].items():
+ gcode += 'Tool: %s -> ' % str(tool) + 'Dwell REV: %s' % str(
+ val['data']["tools_solderpaste_dwellrev"]) + units + '\n'
+
+ if 'Paste' in p.pp_solderpaste_name:
+ gcode += ';Preprocessor SolderPaste Dispensing Geometry: ' + str(p.pp_solderpaste_name) + '\n' + '\n'
+
+ gcode += ';X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + '\n'
+ gcode += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n'
+
+ gcode += ('G20\n' if p.units.upper() == 'IN' else 'G21\n')
+ return gcode
+
+ def lift_code(self, p):
+ return 'G1 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
+
+ def down_z_start_code(self, p):
+ return 'G1 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_start'])) + ' F%s' % str(p['frz'])
+
+ def lift_z_dispense_code(self, p):
+ return 'G01 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_dispense'])) + \
+ ' F%s' % str(p['frz_dispense'])
+
+ def down_z_stop_code(self, p):
+ return 'G1 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_stop'])) + ' F%s' % str(p['frz'])
+
+ def toolchange_code(self, p):
+ fr_rapids = float(p['fr_rapids'])
+ z_toolchange = float(p['z_toolchange'])
+
+ if isinstance(p['xy_toolchange'], str):
+ temp_val = p['xy_toolchange'].replace('[', '').replace(']', '')
+ toolchangexy = [float(eval(a)) for a in temp_val.split(",") if a != '']
+ else:
+ toolchangexy = p['xy_toolchange']
+
+ if toolchangexy is not None:
+ x_toolchange = toolchangexy[0]
+ y_toolchange = toolchangexy[1]
+ else:
+ x_toolchange = 0.0
+ y_toolchange = 0.0
+
+ toolC_formatted = '%.*f' % (p.decimals, float(p['toolC']))
+
+ if toolchangexy is not None:
+ gcode = """
+;Toolchange: START
+G1 Z{z_toolchange} F{fr_rapids}
+G1 X{x_toolchange} Y{y_toolchange} F{fr_rapids}
+T{tool}
+M6
+;MSG, Change to Tool with Nozzle Dia = {toolC}
+M0
+G1 Z{z_toolchange} F{fr_rapids}
+""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+ y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+ z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+ tool=int(int(p.tool)),
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
+
+ else:
+ gcode = """
+;Toolchange: START
+G1 Z{z_toolchange} F{fr_rapids}
+T{tool}
+M6
+;MSG, Change to Tool with Nozzle Dia = {toolC}
+M0
+G1 Z{z_toolchange} F{fr_rapids}
+""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+ tool=int(int(p.tool)),
+ toolC=toolC_formatted,
+ fr_rapids=fr_rapids)
+
+ return gcode
+
+ def position_code(self, p):
+ # formula for skewing on x for example is:
+ # x_fin = x_init + y_init/slope where slope = p._bed_limit_y / p._bed_skew_x (a.k.a tangent)
+ if p._bed_skew_x == 0:
+ x_pos = p.x + p._bed_offset_x
+ else:
+ x_pos = (p.x + p._bed_offset_x) + ((p.y / p._bed_limit_y) * p._bed_skew_x)
+
+ if p._bed_skew_y == 0:
+ y_pos = p.y + p._bed_offset_y
+ else:
+ y_pos = (p.y + p._bed_offset_y) + ((p.x / p._bed_limit_x) * p._bed_skew_y)
+
+ return ('X' + self.coordinate_format + ' Y' + self.coordinate_format) % \
+ (p.coords_decimals, x_pos, p.coords_decimals, y_pos)
+
+ def rapid_code(self, p):
+ return ('G1 ' + self.position_code(p)).format(**p) + ' F%s' % str(p['fr_rapids']) + \
+ '\nG1 Z' + self.coordinate_format % (p.coords_decimals, float(p['z_travel'])) + \
+ ' F%s' % str(p['fr_rapids'])
+
+ def linear_code(self, p):
+ return ('G1 ' + self.position_code(p)).format(**p) + ' F' + \
+ str(self.feedrate_format % (p.fr_decimals, float(p['frxy'])))
+
+ def end_code(self, p):
+ coords_xy = [float(eval(a)) for a in p['xy_end'].split(",") if a != '']
+ gcode = ('G1 Z' + self.feedrate_format % (p.fr_decimals, float(p['z_toolchange'])) +
+ 'F%s' % str(p['fr_rapids']) + "\n")
+
+ if coords_xy and coords_xy != '':
+ gcode += 'G1 X{x} Y{y}'.format(x=coords_xy[0], y=coords_xy[1]) + ' F%s' % str(p['fr_rapids']) + "\n"
+ return gcode
+
+ def feedrate_xy_code(self, p):
+ return ''
+
+ def z_feedrate_code(self, p):
+ return 'G1 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frz'])))
+
+ def feedrate_z_dispense_code(self, p):
+ return 'G1 F' + str(self.feedrate_format % (p.fr_decimals, float(p['frz_dispense'])))
+
+ def spindle_fwd_code(self, p):
+ if p.spindlespeed:
+ return 'M3 S' + str(float(p['speedfwd']))
+ else:
+ return 'M3'
+
+ def spindle_rev_code(self, p):
+ if p.spindlespeed:
+ return 'M4 S' + str(float(p['speedrev']))
+ else:
+ return 'M4'
+
+ def spindle_off_code(self, p):
+ return 'M5'
+
+ def dwell_fwd_code(self, p):
+ if p.dwelltime:
+ return 'G4 P' + str(float(p['dwellfwd']))
+
+ def dwell_rev_code(self, p):
+ if p.dwelltime:
+ return 'G4 P' + str(float(p['dwellrev']))
diff --git a/requirements.txt b/requirements.txt
index be98b3e6..c06ac446 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -44,6 +44,7 @@ pyqtdarktheme
gdal
rasterio
+svgtrace
# To detect OS dark mode
darkdetect
diff --git a/setup_ubuntu.sh b/setup_ubuntu.sh
index 941186b4..b5b6f69a 100644
--- a/setup_ubuntu.sh
+++ b/setup_ubuntu.sh
@@ -49,6 +49,8 @@ sudo -H python3 -m pip install --upgrade \
pikepdf \
foronoi \
ortools \
- pyqtdarktheme
+ pyqtdarktheme \
+ darkdetect \
+ svgtrace
# OR-TOOLS package is now optional
# ################################
diff --git a/tclCommands/TclCommandGetActive.py b/tclCommands/TclCommandGetActive.py
new file mode 100644
index 00000000..7815ab8b
--- /dev/null
+++ b/tclCommands/TclCommandGetActive.py
@@ -0,0 +1,50 @@
+
+from tclCommands.TclCommand import TclCommand
+
+import collections
+
+
+class TclCommandGetActive(TclCommand):
+ """
+ Tcl shell command to get the current active object name.
+
+ example:
+
+ """
+
+ # List of all command aliases, to be able to use old names for backward compatibility (add_poly, add_polygon)
+ aliases = ['get_active']
+
+ description = '%s %s' % ("--", "Gets the active (selected) application object name.")
+
+ # Dictionary of types from Tcl command, needs to be ordered
+ arg_names = collections.OrderedDict([
+ ])
+
+ # Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value
+ option_types = collections.OrderedDict([
+ ])
+
+ # array of mandatory options for current Tcl command: required = {'name','outname'}
+ required = []
+
+ # structured help for current command, args needs to be ordered
+ help = {
+ 'main': 'Gets the active (selected) application object name.',
+ 'args': collections.OrderedDict([
+ ]),
+ 'examples': ['get_active']
+ }
+
+ def execute(self, args, unnamed_args):
+ """
+
+ :param args:
+ :param unnamed_args:
+ :return:
+ """
+
+ try:
+ return self.app.collection.get_active().options['name']
+ except Exception as e:
+ return "Command failed: %s" % str(e)
diff --git a/tclCommands/__init__.py b/tclCommands/__init__.py
index 91cc7718..23f65da3 100644
--- a/tclCommands/__init__.py
+++ b/tclCommands/__init__.py
@@ -29,6 +29,7 @@ import tclCommands.TclCommandExteriors
import tclCommands.TclCommandFollow
import tclCommands.TclCommandGeoCutout
import tclCommands.TclCommandGeoUnion
+import tclCommands.TclCommandGetActive
import tclCommands.TclCommandGetNames
import tclCommands.TclCommandGetPath
import tclCommands.TclCommandGetSys