From f771838c81154e07fa6e5c63c9a18010923a680e Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 23 Oct 2020 23:14:13 +0300 Subject: [PATCH] - some refactoring in the keys of the defaults dictionary - fixed an ambiguity in the Tools Database GUI elements --- CHANGELOG.md | 2 + appDatabase.py | 586 +++++++++--------- appEditors/AppGeoEditor.py | 24 +- appGUI/preferences/PreferencesUIManager.py | 28 +- .../tools/ToolsCutoutPrefGroupUI.py | 2 +- appParsers/ParseHPGL2.py | 34 +- appTools/ToolCutOut.py | 2 +- appTools/ToolPaint.py | 88 +-- app_Main.py | 4 +- defaults.py | 28 +- locale/tr/LC_MESSAGES/strings.mo | Bin 394694 -> 397547 bytes locale/tr/LC_MESSAGES/strings.po | 263 +++----- locale_template/strings.pot | 138 ++--- tclCommands/TclCommandCopperClear.py | 2 +- tclCommands/TclCommandPaint.py | 32 +- 15 files changed, 576 insertions(+), 657 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f40048b..c6b85ed9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ CHANGELOG for FlatCAM beta - added a default properties tab which will hold a set of information's about the application - minor changes in the Properties Tool - Excellon UI: fixed a small issue with toggling all rows in Tools Table not toggling off and also the milling section in Utilities was not updated +- some refactoring in the keys of the defaults dictionary +- fixed an ambiguity in the Tools Database GUI elements 22.10.2020 diff --git a/appDatabase.py b/appDatabase.py index 6465d7f5..087440c6 100644 --- a/appDatabase.py +++ b/appDatabase.py @@ -296,12 +296,12 @@ class ToolsDB2UI: "B = ball tip milling tool\n" "V = v-shape milling tool")) - self.shape_combo = FCComboBox() - self.shape_combo.addItems(["C1", "C2", "C3", "C4", "B", "V"]) - self.shape_combo.setObjectName('gdb_shape') + self.mill_shape_combo = FCComboBox() + self.mill_shape_combo.addItems(["C1", "C2", "C3", "C4", "B", "V"]) + self.mill_shape_combo.setObjectName('gdb_shape') self.grid0.addWidget(self.shape_label, 2, 0) - self.grid0.addWidget(self.shape_combo, 2, 1) + self.grid0.addWidget(self.mill_shape_combo, 2, 1) # V-Dia self.vdia_label = FCLabel('%s:' % _("V-Dia")) @@ -309,13 +309,13 @@ class ToolsDB2UI: _("V-Dia.\n" "Diameter of the tip for V-Shape Tools.")) - self.vdia_entry = FCDoubleSpinner() - self.vdia_entry.set_range(0.0000, 9999.9999) - self.vdia_entry.set_precision(self.decimals) - self.vdia_entry.setObjectName('gdb_vdia') + self.mill_vdia_entry = FCDoubleSpinner() + self.mill_vdia_entry.set_range(0.0000, 9999.9999) + self.mill_vdia_entry.set_precision(self.decimals) + self.mill_vdia_entry.setObjectName('gdb_vdia') self.grid0.addWidget(self.vdia_label, 4, 0) - self.grid0.addWidget(self.vdia_entry, 4, 1) + self.grid0.addWidget(self.mill_vdia_entry, 4, 1) # V-Angle self.vangle_label = FCLabel('%s:' % _("V-Angle")) @@ -323,13 +323,13 @@ class ToolsDB2UI: _("V-Agle.\n" "Angle at the tip for the V-Shape Tools.")) - self.vangle_entry = FCDoubleSpinner() - self.vangle_entry.set_range(-360.0, 360.0) - self.vangle_entry.set_precision(self.decimals) - self.vangle_entry.setObjectName('gdb_vangle') + self.mill_vangle_entry = FCDoubleSpinner() + self.mill_vangle_entry.set_range(-360.0, 360.0) + self.mill_vangle_entry.set_precision(self.decimals) + self.mill_vangle_entry.setObjectName('gdb_vangle') self.grid0.addWidget(self.vangle_label, 6, 0) - self.grid0.addWidget(self.vangle_entry, 6, 1) + self.grid0.addWidget(self.mill_vangle_entry, 6, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -345,12 +345,12 @@ class ToolsDB2UI: "Rough = rough cut, low feedrate, multiple passes\n" "Finish = finishing cut, high feedrate")) - self.type_combo = FCComboBox() - self.type_combo.addItems(["Iso", "Rough", "Finish"]) - self.type_combo.setObjectName('gdb_type') + self.mill_type_combo = FCComboBox() + self.mill_type_combo.addItems(["Iso", "Rough", "Finish"]) + self.mill_type_combo.setObjectName('gdb_type') self.grid0.addWidget(self.type_label, 10, 0) - self.grid0.addWidget(self.type_combo, 10, 1) + self.grid0.addWidget(self.mill_type_combo, 10, 1) # Tool Offset self.tooloffset_label = FCLabel('%s:' % _('Tool Offset')) @@ -362,12 +362,12 @@ class ToolsDB2UI: "Out = offset outside by half of tool diameter\n" "Custom = custom offset using the Custom Offset value")) - self.tooloffset_combo = FCComboBox() - self.tooloffset_combo.addItems(["Path", "In", "Out", "Custom"]) - self.tooloffset_combo.setObjectName('gdb_tool_offset') + self.mill_tooloffset_combo = FCComboBox() + self.mill_tooloffset_combo.addItems(["Path", "In", "Out", "Custom"]) + self.mill_tooloffset_combo.setObjectName('gdb_tool_offset') self.grid0.addWidget(self.tooloffset_label, 12, 0) - self.grid0.addWidget(self.tooloffset_combo, 12, 1) + self.grid0.addWidget(self.mill_tooloffset_combo, 12, 1) # Custom Offset self.custom_offset_label = FCLabel('%s:' % _("Custom Offset")) @@ -375,13 +375,13 @@ class ToolsDB2UI: _("Custom Offset.\n" "A value to be used as offset from the current path.")) - self.custom_offset_entry = FCDoubleSpinner() - self.custom_offset_entry.set_range(-9999.9999, 9999.9999) - self.custom_offset_entry.set_precision(self.decimals) - self.custom_offset_entry.setObjectName('gdb_custom_offset') + self.mill_custom_offset_entry = FCDoubleSpinner() + self.mill_custom_offset_entry.set_range(-9999.9999, 9999.9999) + self.mill_custom_offset_entry.set_precision(self.decimals) + self.mill_custom_offset_entry.setObjectName('gdb_custom_offset') self.grid0.addWidget(self.custom_offset_label, 14, 0) - self.grid0.addWidget(self.custom_offset_entry, 14, 1) + self.grid0.addWidget(self.mill_custom_offset_entry, 14, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -394,13 +394,13 @@ class ToolsDB2UI: _("Cutting Depth.\n" "The depth at which to cut into material.")) - self.cutz_entry = FCDoubleSpinner() - self.cutz_entry.set_range(-9999.9999, 9999.9999) - self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.setObjectName('gdb_cutz') + self.mill_cutz_entry = FCDoubleSpinner() + self.mill_cutz_entry.set_range(-9999.9999, 9999.9999) + self.mill_cutz_entry.set_precision(self.decimals) + self.mill_cutz_entry.setObjectName('gdb_cutz') self.grid0.addWidget(self.cutz_label, 18, 0) - self.grid0.addWidget(self.cutz_entry, 18, 1) + self.grid0.addWidget(self.mill_cutz_entry, 18, 1) # Multi Depth self.multidepth_label = FCLabel('%s:' % _("MultiDepth")) @@ -409,11 +409,11 @@ class ToolsDB2UI: "Selecting this will allow cutting in multiple passes,\n" "each pass adding a DPP parameter depth.")) - self.multidepth_cb = FCCheckBox() - self.multidepth_cb.setObjectName('gdb_multidepth') + self.mill_multidepth_cb = FCCheckBox() + self.mill_multidepth_cb.setObjectName('gdb_multidepth') self.grid0.addWidget(self.multidepth_label, 20, 0) - self.grid0.addWidget(self.multidepth_cb, 20, 1) + self.grid0.addWidget(self.mill_multidepth_cb, 20, 1) # Depth Per Pass self.dpp_label = FCLabel('%s:' % _("DPP")) @@ -421,13 +421,13 @@ class ToolsDB2UI: _("DPP. Depth per Pass.\n" "The value used to cut into material on each pass.")) - self.multidepth_entry = FCDoubleSpinner() - self.multidepth_entry.set_range(-9999.9999, 9999.9999) - self.multidepth_entry.set_precision(self.decimals) - self.multidepth_entry.setObjectName('gdb_multidepth_entry') + self.mill_multidepth_entry = FCDoubleSpinner() + self.mill_multidepth_entry.set_range(-9999.9999, 9999.9999) + self.mill_multidepth_entry.set_precision(self.decimals) + self.mill_multidepth_entry.setObjectName('gdb_multidepth_entry') self.grid0.addWidget(self.dpp_label, 22, 0) - self.grid0.addWidget(self.multidepth_entry, 22, 1) + self.grid0.addWidget(self.mill_multidepth_entry, 22, 1) # Travel Z self.travelz_label = FCLabel('%s:' % _("Travel Z")) @@ -436,13 +436,13 @@ class ToolsDB2UI: "Height at which the milling bit will travel between cuts,\n" "above the surface of the material, avoiding all fixtures.")) - self.travelz_entry = FCDoubleSpinner() - self.travelz_entry.set_range(-9999.9999, 9999.9999) - self.travelz_entry.set_precision(self.decimals) - self.travelz_entry.setObjectName('gdb_travelz') + self.mill_travelz_entry = FCDoubleSpinner() + self.mill_travelz_entry.set_range(-9999.9999, 9999.9999) + self.mill_travelz_entry.set_precision(self.decimals) + self.mill_travelz_entry.setObjectName('gdb_travelz') self.grid0.addWidget(self.travelz_label, 24, 0) - self.grid0.addWidget(self.travelz_entry, 24, 1) + self.grid0.addWidget(self.mill_travelz_entry, 24, 1) # Extra Cut self.ecut_label = FCLabel('%s:' % _("ExtraCut")) @@ -453,11 +453,11 @@ class ToolsDB2UI: "such as that this point is covered by this extra cut to\n" "ensure a complete isolation.")) - self.ecut_cb = FCCheckBox() - self.ecut_cb.setObjectName('gdb_ecut') + self.mill_ecut_cb = FCCheckBox() + self.mill_ecut_cb.setObjectName('gdb_ecut') self.grid0.addWidget(self.ecut_label, 26, 0) - self.grid0.addWidget(self.ecut_cb, 26, 1) + self.grid0.addWidget(self.mill_ecut_cb, 26, 1) # Extra Cut Length self.ecut_length_label = FCLabel('%s:' % _("E-Cut Length")) @@ -469,13 +469,13 @@ class ToolsDB2UI: "ensure a complete isolation. This is the length of\n" "the extra cut.")) - self.ecut_length_entry = FCDoubleSpinner() - self.ecut_length_entry.set_range(0.0000, 9999.9999) - self.ecut_length_entry.set_precision(self.decimals) - self.ecut_length_entry.setObjectName('gdb_ecut_length') + self.mill_ecut_length_entry = FCDoubleSpinner() + self.mill_ecut_length_entry.set_range(0.0000, 9999.9999) + self.mill_ecut_length_entry.set_precision(self.decimals) + self.mill_ecut_length_entry.setObjectName('gdb_ecut_length') self.grid0.addWidget(self.ecut_length_label, 28, 0) - self.grid0.addWidget(self.ecut_length_entry, 28, 1) + self.grid0.addWidget(self.mill_ecut_length_entry, 28, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -488,13 +488,13 @@ class ToolsDB2UI: _("Feedrate X-Y. Feedrate\n" "The speed on XY plane used while cutting into material.")) - self.frxy_entry = FCDoubleSpinner() - self.frxy_entry.set_range(-999999.9999, 999999.9999) - self.frxy_entry.set_precision(self.decimals) - self.frxy_entry.setObjectName('gdb_frxy') + self.mill_frxy_entry = FCDoubleSpinner() + self.mill_frxy_entry.set_range(-999999.9999, 999999.9999) + self.mill_frxy_entry.set_precision(self.decimals) + self.mill_frxy_entry.setObjectName('gdb_frxy') self.grid0.addWidget(self.frxy_label, 32, 0) - self.grid0.addWidget(self.frxy_entry, 32, 1) + self.grid0.addWidget(self.mill_frxy_entry, 32, 1) # Feedrate Z self.frz_label = FCLabel('%s:' % _("Feedrate Z")) @@ -502,13 +502,13 @@ class ToolsDB2UI: _("Feedrate Z\n" "The speed on Z plane.")) - self.frz_entry = FCDoubleSpinner() - self.frz_entry.set_range(-999999.9999, 999999.9999) - self.frz_entry.set_precision(self.decimals) - self.frz_entry.setObjectName('gdb_frz') + self.mill_frz_entry = FCDoubleSpinner() + self.mill_frz_entry.set_range(-999999.9999, 999999.9999) + self.mill_frz_entry.set_precision(self.decimals) + self.mill_frz_entry.setObjectName('gdb_frz') self.grid0.addWidget(self.frz_label, 34, 0) - self.grid0.addWidget(self.frz_entry, 34, 1) + self.grid0.addWidget(self.mill_frz_entry, 34, 1) # Feedrate Rapids self.frapids_label = FCLabel('%s:' % _("FR Rapids")) @@ -518,13 +518,13 @@ class ToolsDB2UI: "This is used only by some devices that can't use\n" "the G0 g-code command. Mostly 3D printers.")) - self.frapids_entry = FCDoubleSpinner() - self.frapids_entry.set_range(0.0000, 9999.9999) - self.frapids_entry.set_precision(self.decimals) - self.frapids_entry.setObjectName('gdb_frapids') + self.mill_frapids_entry = FCDoubleSpinner() + self.mill_frapids_entry.set_range(0.0000, 9999.9999) + self.mill_frapids_entry.set_precision(self.decimals) + self.mill_frapids_entry.setObjectName('gdb_frapids') self.grid0.addWidget(self.frapids_label, 36, 0) - self.grid0.addWidget(self.frapids_entry, 36, 1) + self.grid0.addWidget(self.mill_frapids_entry, 36, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -538,13 +538,13 @@ class ToolsDB2UI: "If it's left empty it will not be used.\n" "The speed of the spindle in RPM.")) - self.spindle_entry = FCDoubleSpinner() - self.spindle_entry.set_range(-999999.9999, 999999.9999) - self.spindle_entry.set_precision(self.decimals) - self.spindle_entry.setObjectName('gdb_spindle') + self.mill_spindle_entry = FCDoubleSpinner() + self.mill_spindle_entry.set_range(-999999.9999, 999999.9999) + self.mill_spindle_entry.set_precision(self.decimals) + self.mill_spindle_entry.setObjectName('gdb_spindle') self.grid0.addWidget(self.spindle_label, 40, 0) - self.grid0.addWidget(self.spindle_entry, 40, 1) + self.grid0.addWidget(self.mill_spindle_entry, 40, 1) # Dwell self.dwell_label = FCLabel('%s:' % _("Dwell")) @@ -553,11 +553,11 @@ class ToolsDB2UI: "Check this if a delay is needed to allow\n" "the spindle motor to reach its set speed.")) - self.dwell_cb = FCCheckBox() - self.dwell_cb.setObjectName('gdb_dwell') + self.mill_dwell_cb = FCCheckBox() + self.mill_dwell_cb.setObjectName('gdb_dwell') self.grid0.addWidget(self.dwell_label, 42, 0) - self.grid0.addWidget(self.dwell_cb, 42, 1) + self.grid0.addWidget(self.mill_dwell_cb, 42, 1) # Dwell Time self.dwelltime_label = FCLabel('%s:' % _("Dwelltime")) @@ -565,13 +565,13 @@ class ToolsDB2UI: _("Dwell Time.\n" "A delay used to allow the motor spindle reach its set speed.")) - self.dwelltime_entry = FCDoubleSpinner() - self.dwelltime_entry.set_range(0.0000, 9999.9999) - self.dwelltime_entry.set_precision(self.decimals) - self.dwelltime_entry.setObjectName('gdb_dwelltime') + self.mill_dwelltime_entry = FCDoubleSpinner() + self.mill_dwelltime_entry.set_range(0.0000, 9999.9999) + self.mill_dwelltime_entry.set_precision(self.decimals) + self.mill_dwelltime_entry.setObjectName('gdb_dwelltime') self.grid0.addWidget(self.dwelltime_label, 44, 0) - self.grid0.addWidget(self.dwelltime_entry, 44, 1) + self.grid0.addWidget(self.mill_dwelltime_entry, 44, 1) # ########################################################################### # ############### NCC UI form ############################################### @@ -592,14 +592,14 @@ class ToolsDB2UI: "- Clear -> the regular non-copper clearing.") ) - self.op_radio = RadioSet([ + self.ncc_op_radio = RadioSet([ {"label": _("Clear"), "value": "clear"}, {"label": _("Isolation"), "value": "iso"} ], orientation='horizontal', stretch=False) - self.op_radio.setObjectName("gdb_n_operation") + self.ncc_op_radio.setObjectName("gdb_n_operation") self.grid2.addWidget(op_label, 13, 0) - self.grid2.addWidget(self.op_radio, 13, 1) + self.grid2.addWidget(self.ncc_op_radio, 13, 1) # Milling Type Radio Button self.milling_type_label = FCLabel('%s:' % _('Milling Type')) @@ -609,17 +609,17 @@ class ToolsDB2UI: "- conventional / useful when there is no backlash compensation") ) - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - self.milling_type_radio.setToolTip( + self.ncc_milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conventional'), 'value': 'cv'}]) + self.ncc_milling_type_radio.setToolTip( _("Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation") ) - self.milling_type_radio.setObjectName("gdb_n_milling_type") + self.ncc_milling_type_radio.setObjectName("gdb_n_milling_type") self.grid2.addWidget(self.milling_type_label, 14, 0) - self.grid2.addWidget(self.milling_type_radio, 14, 1) + self.grid2.addWidget(self.ncc_milling_type_radio, 14, 1) # Overlap Entry nccoverlabel = FCLabel('%s:' % _('Overlap')) @@ -741,15 +741,15 @@ class ToolsDB2UI: "Higher values = slow processing and slow execution on CNC\n" "due of too many paths.") ) - self.paintoverlap_entry = FCDoubleSpinner(suffix='%') - self.paintoverlap_entry.set_precision(3) - self.paintoverlap_entry.setWrapping(True) - self.paintoverlap_entry.setRange(0.0000, 99.9999) - self.paintoverlap_entry.setSingleStep(0.1) - self.paintoverlap_entry.setObjectName('gdb_p_overlap') + self.paint_overlap_entry = FCDoubleSpinner(suffix='%') + self.paint_overlap_entry.set_precision(3) + self.paint_overlap_entry.setWrapping(True) + self.paint_overlap_entry.setRange(0.0000, 99.9999) + self.paint_overlap_entry.setSingleStep(0.1) + self.paint_overlap_entry.setObjectName('gdb_p_overlap') self.grid3.addWidget(ovlabel, 1, 0) - self.grid3.addWidget(self.paintoverlap_entry, 1, 1) + self.grid3.addWidget(self.paint_overlap_entry, 1, 1) # Margin marginlabel = FCLabel('%s:' % _('Offset')) @@ -779,35 +779,35 @@ class ToolsDB2UI: "in the order specified.") ) - self.paintmethod_combo = FCComboBox() - self.paintmethod_combo.addItems( + self.paint_method_combo = FCComboBox() + self.paint_method_combo.addItems( [_("Standard"), _("Seed"), _("Lines"), _("Laser_lines"), _("Combo")] ) - idx = self.paintmethod_combo.findText(_("Laser_lines")) - self.paintmethod_combo.model().item(idx).setEnabled(False) + idx = self.paint_method_combo.findText(_("Laser_lines")) + self.paint_method_combo.model().item(idx).setEnabled(False) - self.paintmethod_combo.setObjectName('gdb_p_method') + self.paint_method_combo.setObjectName('gdb_p_method') self.grid3.addWidget(methodlabel, 7, 0) - self.grid3.addWidget(self.paintmethod_combo, 7, 1) + self.grid3.addWidget(self.paint_method_combo, 7, 1) # Connect lines - self.pathconnect_cb = FCCheckBox('%s' % _("Connect")) - self.pathconnect_cb.setObjectName('gdb_p_connect') - self.pathconnect_cb.setToolTip( + self.path_connect_cb = FCCheckBox('%s' % _("Connect")) + self.path_connect_cb.setObjectName('gdb_p_connect') + self.path_connect_cb.setToolTip( _("Draw lines between resulting\n" "segments to minimize tool lifts.") ) - self.paintcontour_cb = FCCheckBox('%s' % _("Contour")) - self.paintcontour_cb.setObjectName('gdb_p_contour') - self.paintcontour_cb.setToolTip( + self.paint_contour_cb = FCCheckBox('%s' % _("Contour")) + self.paint_contour_cb.setObjectName('gdb_p_contour') + self.paint_contour_cb.setToolTip( _("Cut around the perimeter of the polygon\n" "to trim rough edges.") ) - self.grid3.addWidget(self.pathconnect_cb, 10, 0) - self.grid3.addWidget(self.paintcontour_cb, 10, 1) + self.grid3.addWidget(self.path_connect_cb, 10, 0) + self.grid3.addWidget(self.paint_contour_cb, 10, 1) # ########################################################################### # ############### Isolation UI form ######################################### @@ -825,12 +825,12 @@ class ToolsDB2UI: _("Width of the isolation gap in\n" "number (integer) of tool widths.") ) - self.passes_entry = FCSpinner() - self.passes_entry.set_range(1, 999) - self.passes_entry.setObjectName("gdb_i_passes") + self.iso_passes_entry = FCSpinner() + self.iso_passes_entry.set_range(1, 999) + self.iso_passes_entry.setObjectName("gdb_i_passes") self.grid4.addWidget(passlabel, 0, 0) - self.grid4.addWidget(self.passes_entry, 0, 1) + self.grid4.addWidget(self.iso_passes_entry, 0, 1) # Overlap Entry overlabel = FCLabel('%s:' % _('Overlap')) @@ -848,24 +848,24 @@ class ToolsDB2UI: self.grid4.addWidget(self.iso_overlap_entry, 2, 1) # Milling Type Radio Button - self.milling_type_label = FCLabel('%s:' % _('Milling Type')) - self.milling_type_label.setToolTip( + self.iso_milling_type_label = FCLabel('%s:' % _('Milling Type')) + self.iso_milling_type_label.setToolTip( _("Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation") ) - self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, - {'label': _('Conventional'), 'value': 'cv'}]) - self.milling_type_radio.setToolTip( + self.iso_milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conventional'), 'value': 'cv'}]) + self.iso_milling_type_radio.setToolTip( _("Milling type when the selected tool is of type: 'iso_op':\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation") ) - self.milling_type_radio.setObjectName("gdb_i_milling_type") + self.iso_milling_type_radio.setObjectName("gdb_i_milling_type") - self.grid4.addWidget(self.milling_type_label, 4, 0) - self.grid4.addWidget(self.milling_type_radio, 4, 1) + self.grid4.addWidget(self.iso_milling_type_label, 4, 0) + self.grid4.addWidget(self.iso_milling_type_radio, 4, 1) # Follow self.follow_label = FCLabel('%s:' % _('Follow')) @@ -875,14 +875,14 @@ class ToolsDB2UI: "the middle of the trace.") ) - self.follow_cb = FCCheckBox() - self.follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" + self.iso_follow_cb = FCCheckBox() + self.iso_follow_cb.setToolTip(_("Generate a 'Follow' geometry.\n" "This means that it will cut through\n" "the middle of the trace.")) - self.follow_cb.setObjectName("gdb_i_follow") + self.iso_follow_cb.setObjectName("gdb_i_follow") self.grid4.addWidget(self.follow_label, 6, 0) - self.grid4.addWidget(self.follow_cb, 6, 1) + self.grid4.addWidget(self.iso_follow_cb, 6, 1) # Isolation Type self.iso_type_label = FCLabel('%s:' % _('Isolation Type')) @@ -920,19 +920,19 @@ class ToolsDB2UI: "below the copper surface.") ) - self.cutz_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cutz_drill_entry.set_precision(self.decimals) + self.drill_cutz_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_cutz_entry.set_precision(self.decimals) if self.machinist_setting == 0: - self.cutz_drill_entry.set_range(-9999.9999, 0.0000) + self.drill_cutz_entry.set_range(-9999.9999, 0.0000) else: - self.cutz_drill_entry.set_range(-9999.9999, 9999.9999) + self.drill_cutz_entry.set_range(-9999.9999, 9999.9999) - self.cutz_drill_entry.setSingleStep(0.1) - self.cutz_drill_entry.setObjectName("gdb_e_cutz") + self.drill_cutz_entry.setSingleStep(0.1) + self.drill_cutz_entry.setObjectName("gdb_e_cutz") self.grid5.addWidget(self.cutzlabel, 4, 0) - self.grid5.addWidget(self.cutz_drill_entry, 4, 1) + self.grid5.addWidget(self.drill_cutz_entry, 4, 1) # Tool Offset self.tool_offset_label = FCLabel('%s:' % _('Offset Z')) @@ -942,13 +942,13 @@ class ToolsDB2UI: "The value here can compensate the Cut Z parameter.") ) - self.offset_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.offset_drill_entry.set_precision(self.decimals) - self.offset_drill_entry.set_range(-9999.9999, 9999.9999) - self.offset_drill_entry.setObjectName("gdb_e_offset") + self.drill_offset_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_offset_entry.set_precision(self.decimals) + self.drill_offset_entry.set_range(-9999.9999, 9999.9999) + self.drill_offset_entry.setObjectName("gdb_e_offset") self.grid5.addWidget(self.tool_offset_label, 6, 0) - self.grid5.addWidget(self.offset_drill_entry, 6, 1) + self.grid5.addWidget(self.drill_offset_entry, 6, 1) # Multi-Depth self.multidepth_drill_label = FCLabel('%s:' % _("MultiDepth")) @@ -960,27 +960,27 @@ class ToolsDB2UI: "reached." ) ) - self.mpass_drill_cb = FCCheckBox() - self.mpass_drill_cb.setObjectName("gdb_e_multidepth") + self.drill_mpass_cb = FCCheckBox() + self.drill_mpass_cb.setObjectName("gdb_e_multidepth") self.grid5.addWidget(self.multidepth_drill_label, 7, 0) - self.grid5.addWidget(self.mpass_drill_cb, 7, 1) + self.grid5.addWidget(self.drill_mpass_cb, 7, 1) # Depth Per Pass self.dpp_drill_label = FCLabel('%s:' % _("DPP")) self.dpp_drill_label.setToolTip( _("DPP. Depth per Pass.\n" "The value used to cut into material on each pass.")) - self.maxdepth_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.maxdepth_drill_entry.set_precision(self.decimals) - self.maxdepth_drill_entry.set_range(0, 9999.9999) - self.maxdepth_drill_entry.setSingleStep(0.1) + self.drill_maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_maxdepth_entry.set_precision(self.decimals) + self.drill_maxdepth_entry.set_range(0, 9999.9999) + self.drill_maxdepth_entry.setSingleStep(0.1) - self.maxdepth_drill_entry.setToolTip(_("Depth of each pass (positive).")) - self.maxdepth_drill_entry.setObjectName("gdb_e_depthperpass") + self.drill_maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) + self.drill_maxdepth_entry.setObjectName("gdb_e_depthperpass") self.grid5.addWidget(self.dpp_drill_label, 8, 0) - self.grid5.addWidget(self.maxdepth_drill_entry, 8, 1) + self.grid5.addWidget(self.drill_maxdepth_entry, 8, 1) # Travel Z (z_move) self.travelzlabel = FCLabel('%s:' % _('Travel Z')) @@ -989,19 +989,19 @@ class ToolsDB2UI: "across the XY plane.") ) - self.travelz_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.travelz_drill_entry.set_precision(self.decimals) + self.drill_travelz_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_travelz_entry.set_precision(self.decimals) if self.machinist_setting == 0: - self.travelz_drill_entry.set_range(0.00001, 9999.9999) + self.drill_travelz_entry.set_range(0.00001, 9999.9999) else: - self.travelz_drill_entry.set_range(-9999.9999, 9999.9999) + self.drill_travelz_entry.set_range(-9999.9999, 9999.9999) - self.travelz_drill_entry.setSingleStep(0.1) - self.travelz_drill_entry.setObjectName("gdb_e_travelz") + self.drill_travelz_entry.setSingleStep(0.1) + self.drill_travelz_entry.setObjectName("gdb_e_travelz") self.grid5.addWidget(self.travelzlabel, 10, 0) - self.grid5.addWidget(self.travelz_drill_entry, 10, 1) + self.grid5.addWidget(self.drill_travelz_entry, 10, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -1016,14 +1016,14 @@ class ToolsDB2UI: "So called 'Plunge' feedrate.\n" "This is for linear move G01.") ) - self.feedrate_z_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.feedrate_z_drill_entry.set_precision(self.decimals) - self.feedrate_z_drill_entry.set_range(0.0, 99999.9999) - self.feedrate_z_drill_entry.setSingleStep(0.1) - self.feedrate_z_drill_entry.setObjectName("gdb_e_feedratez") + self.drill_feedrate_z_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_feedrate_z_entry.set_precision(self.decimals) + self.drill_feedrate_z_entry.set_range(0.0, 99999.9999) + self.drill_feedrate_z_entry.setSingleStep(0.1) + self.drill_feedrate_z_entry.setObjectName("gdb_e_feedratez") self.grid5.addWidget(self.frzlabel, 14, 0) - self.grid5.addWidget(self.feedrate_z_drill_entry, 14, 1) + self.grid5.addWidget(self.drill_feedrate_z_entry, 14, 1) # Excellon Rapid Feedrate self.feedrate_rapid_label = FCLabel('%s:' % _('Feedrate Rapids')) @@ -1034,14 +1034,14 @@ class ToolsDB2UI: "It is useful only for Marlin,\n" "ignore for any other cases.") ) - self.feedrate_rapid_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.feedrate_rapid_drill_entry.set_precision(self.decimals) - self.feedrate_rapid_drill_entry.set_range(0.0, 99999.9999) - self.feedrate_rapid_drill_entry.setSingleStep(0.1) - self.feedrate_rapid_drill_entry.setObjectName("gdb_e_fr_rapid") + self.drill_feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_feedrate_rapid_entry.set_precision(self.decimals) + self.drill_feedrate_rapid_entry.set_range(0.0, 99999.9999) + self.drill_feedrate_rapid_entry.setSingleStep(0.1) + self.drill_feedrate_rapid_entry.setObjectName("gdb_e_fr_rapid") self.grid5.addWidget(self.feedrate_rapid_label, 16, 0) - self.grid5.addWidget(self.feedrate_rapid_drill_entry, 16, 1) + self.grid5.addWidget(self.drill_feedrate_rapid_entry, 16, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -1055,13 +1055,13 @@ class ToolsDB2UI: "in RPM (optional)") ) - self.spindlespeed_drill_entry = FCSpinner(callback=self.confirmation_message_int) - self.spindlespeed_drill_entry.set_range(0, 1000000) - self.spindlespeed_drill_entry.set_step(100) - self.spindlespeed_drill_entry.setObjectName("gdb_e_spindlespeed") + self.drill_spindlespeed_entry = FCSpinner(callback=self.confirmation_message_int) + self.drill_spindlespeed_entry.set_range(0, 1000000) + self.drill_spindlespeed_entry.set_step(100) + self.drill_spindlespeed_entry.setObjectName("gdb_e_spindlespeed") self.grid5.addWidget(self.spindle_label, 20, 0) - self.grid5.addWidget(self.spindlespeed_drill_entry, 20, 1) + self.grid5.addWidget(self.drill_spindlespeed_entry, 20, 1) # Dwell self.dwell_drill_label = FCLabel('%s:' % _("Dwell")) @@ -1070,25 +1070,25 @@ class ToolsDB2UI: "Check this if a delay is needed to allow\n" "the spindle motor to reach its set speed.")) - self.dwell_drill_cb = FCCheckBox() - self.dwell_drill_cb.setObjectName("gdb_e_dwell") + self.drill_dwell_cb = FCCheckBox() + self.drill_dwell_cb.setObjectName("gdb_e_dwell") self.grid5.addWidget(self.dwell_drill_label, 21, 0) - self.grid5.addWidget(self.dwell_drill_cb, 21, 1) + self.grid5.addWidget(self.drill_dwell_cb, 21, 1) # Dwelltime self.dwelltime_drill_lbl = FCLabel('%s:' % _('Dwelltime')) self.dwelltime_drill_lbl.setToolTip( _("Dwell Time.\n" "A delay used to allow the motor spindle reach its set speed.")) - self.dwelltime_drill_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.dwelltime_drill_entry.set_precision(self.decimals) - self.dwelltime_drill_entry.set_range(0.0, 9999.9999) - self.dwelltime_drill_entry.setSingleStep(0.1) - self.dwelltime_drill_entry.setObjectName("gdb_e_dwelltime") + self.drill_dwelltime_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.drill_dwelltime_entry.set_precision(self.decimals) + self.drill_dwelltime_entry.set_range(0.0, 9999.9999) + self.drill_dwelltime_entry.setSingleStep(0.1) + self.drill_dwelltime_entry.setObjectName("gdb_e_dwelltime") self.grid5.addWidget(self.dwelltime_drill_lbl, 22, 0) - self.grid5.addWidget(self.dwelltime_drill_entry, 22, 1) + self.grid5.addWidget(self.drill_dwelltime_entry, 22, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) @@ -1100,11 +1100,11 @@ class ToolsDB2UI: self.drill_slots_drill_lbl.setToolTip( _("If the selected tool has slots then they will be drilled.") ) - self.drill_slots_drill_cb = FCCheckBox() - self.drill_slots_drill_cb.setObjectName("gdb_e_drill_slots") + self.drill_slots_cb = FCCheckBox() + self.drill_slots_cb.setObjectName("gdb_e_drill_slots") self.grid5.addWidget(self.drill_slots_drill_lbl, 26, 0,) - self.grid5.addWidget(self.drill_slots_drill_cb, 26, 1) + self.grid5.addWidget(self.drill_slots_cb, 26, 1) # Drill Overlap self.drill_overlap_label = FCLabel('%s:' % _('Overlap')) @@ -1112,15 +1112,15 @@ class ToolsDB2UI: _("How much (percentage) of the tool diameter to overlap previous drill hole.") ) - self.drill_overlap_drill_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message) - self.drill_overlap_drill_entry.set_precision(self.decimals) - self.drill_overlap_drill_entry.set_range(0.0, 100.0000) - self.drill_overlap_drill_entry.setSingleStep(0.1) + self.drill_overlap_entry = FCDoubleSpinner(suffix='%', callback=self.confirmation_message) + self.drill_overlap_entry.set_precision(self.decimals) + self.drill_overlap_entry.set_range(0.0, 100.0000) + self.drill_overlap_entry.setSingleStep(0.1) - self.drill_overlap_drill_entry.setObjectName("gdb_e_drill_slots_over") + self.drill_overlap_entry.setObjectName("gdb_e_drill_slots_over") self.grid5.addWidget(self.drill_overlap_label, 28, 0) - self.grid5.addWidget(self.drill_overlap_drill_entry, 28, 1) + self.grid5.addWidget(self.drill_overlap_entry, 28, 1) # Last drill in slot self.last_drill_drill_lbl = FCLabel('%s:' % _('Last drill')) @@ -1129,11 +1129,11 @@ class ToolsDB2UI: "add a drill hole on the slot end point.") ) - self.last_drill_drill_cb = FCCheckBox() - self.last_drill_drill_cb.setObjectName("gdb_e_drill_last_drill") + self.drill_last_drill_cb = FCCheckBox() + self.drill_last_drill_cb.setObjectName("gdb_e_drill_last_drill") self.grid5.addWidget(self.last_drill_drill_lbl, 30, 0, 1, 2) - self.grid5.addWidget(self.last_drill_drill_cb, 30, 1) + self.grid5.addWidget(self.drill_last_drill_cb, 30, 1) # ########################################################################### # ################### Cutout UI form ######################################## @@ -1184,7 +1184,7 @@ class ToolsDB2UI: "- M-Bites -> 'Mouse Bites' - same as 'bridge' but covered with drill holes") ) - self.gaptype_radio = RadioSet( + self.cutout_gaptype_radio = RadioSet( [ {'label': _('Bridge'), 'value': 'b'}, {'label': _('Thin'), 'value': 'bt'}, @@ -1192,10 +1192,10 @@ class ToolsDB2UI: ], stretch=True ) - self.gaptype_radio.setObjectName('gdb_ct_gap_type') + self.cutout_gaptype_radio.setObjectName('gdb_ct_gap_type') self.grid6.addWidget(self.gaptype_label, 15, 0) - self.grid6.addWidget(self.gaptype_radio, 15, 1) + self.grid6.addWidget(self.cutout_gaptype_radio, 15, 1) # Thin gaps Depth self.thin_depth_label = FCLabel('%s:' % _("Depth")) @@ -1203,44 +1203,44 @@ class ToolsDB2UI: _("The depth until the milling is done\n" "in order to thin the gaps.") ) - self.thin_depth_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.thin_depth_entry.set_precision(self.decimals) - self.thin_depth_entry.setObjectName('gdb_ct_gap_depth') + self.cutout_thin_depth_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.cutout_thin_depth_entry.set_precision(self.decimals) + self.cutout_thin_depth_entry.setObjectName('gdb_ct_gap_depth') if self.machinist_setting == 0: - self.thin_depth_entry.setRange(-9999.9999, -0.00001) + self.cutout_thin_depth_entry.setRange(-9999.9999, -0.00001) else: - self.thin_depth_entry.setRange(-9999.9999, 9999.9999) - self.thin_depth_entry.setSingleStep(0.1) + self.cutout_thin_depth_entry.setRange(-9999.9999, 9999.9999) + self.cutout_thin_depth_entry.setSingleStep(0.1) self.grid6.addWidget(self.thin_depth_label, 17, 0) - self.grid6.addWidget(self.thin_depth_entry, 17, 1) + self.grid6.addWidget(self.cutout_thin_depth_entry, 17, 1) # Mouse Bites Tool Diameter self.mb_dia_label = FCLabel('%s:' % _("Tool Diameter")) self.mb_dia_label.setToolTip( - _("The drill hole diameter when doing mpuse bites.") + _("The drill hole diameter when doing mouse bites.") ) - self.mb_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.mb_dia_entry.set_precision(self.decimals) - self.mb_dia_entry.setRange(0, 100.0000) - self.mb_dia_entry.setObjectName('gdb_ct_mb_dia') + self.cutout_mb_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.cutout_mb_dia_entry.set_precision(self.decimals) + self.cutout_mb_dia_entry.setRange(0, 100.0000) + self.cutout_mb_dia_entry.setObjectName('gdb_ct_mb_dia') self.grid6.addWidget(self.mb_dia_label, 19, 0) - self.grid6.addWidget(self.mb_dia_entry, 19, 1) + self.grid6.addWidget(self.cutout_mb_dia_entry, 19, 1) # Mouse Bites Holes Spacing self.mb_spacing_label = FCLabel('%s:' % _("Spacing")) self.mb_spacing_label.setToolTip( _("The spacing between drill holes when doing mouse bites.") ) - self.mb_spacing_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.mb_spacing_entry.set_precision(self.decimals) - self.mb_spacing_entry.setRange(0, 100.0000) - self.mb_spacing_entry.setObjectName('gdb_ct_mb_spacing') + self.cutout_mb_spacing_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.cutout_mb_spacing_entry.set_precision(self.decimals) + self.cutout_mb_spacing_entry.setRange(0, 100.0000) + self.cutout_mb_spacing_entry.setObjectName('gdb_ct_mb_spacing') self.grid6.addWidget(self.mb_spacing_label, 21, 0) - self.grid6.addWidget(self.mb_spacing_entry, 21, 1) + self.grid6.addWidget(self.cutout_mb_spacing_entry, 21, 1) # How gaps wil be rendered: # lr - left + right @@ -1450,78 +1450,78 @@ class ToolsDB2(QtWidgets.QWidget): "tooldia": self.ui.dia_entry, # Milling - "tool_type": self.ui.shape_combo, - "cutz": self.ui.cutz_entry, - "multidepth": self.ui.multidepth_cb, - "depthperpass": self.ui.multidepth_entry, - "travelz": self.ui.travelz_entry, - "feedrate": self.ui.frxy_entry, - "feedrate_z": self.ui.frz_entry, - "spindlespeed": self.ui.spindle_entry, - "dwell": self.ui.dwell_cb, - "dwelltime": self.ui.dwelltime_entry, + "tool_type": self.ui.mill_shape_combo, + "cutz": self.ui.mill_cutz_entry, + "multidepth": self.ui.mill_multidepth_cb, + "depthperpass": self.ui.mill_multidepth_entry, + "travelz": self.ui.mill_travelz_entry, + "feedrate": self.ui.mill_frxy_entry, + "feedrate_z": self.ui.mill_frz_entry, + "spindlespeed": self.ui.mill_spindle_entry, + "dwell": self.ui.mill_dwell_cb, + "dwelltime": self.ui.mill_dwelltime_entry, - "type": self.ui.type_combo, - "offset": self.ui.tooloffset_combo, - "offset_value": self.ui.custom_offset_entry, - "vtipdia": self.ui.vdia_entry, - "vtipangle": self.ui.vangle_entry, - "feedrate_rapid": self.ui.frapids_entry, - "extracut": self.ui.ecut_cb, - "extracut_length": self.ui.ecut_length_entry, + "type": self.ui.mill_type_combo, + "offset": self.ui.mill_tooloffset_combo, + "offset_value": self.ui.mill_custom_offset_entry, + "vtipdia": self.ui.mill_vdia_entry, + "vtipangle": self.ui.mill_vangle_entry, + "feedrate_rapid": self.ui.mill_frapids_entry, + "extracut": self.ui.mill_ecut_cb, + "extracut_length": self.ui.mill_ecut_length_entry, # NCC - "tools_ncc_operation": self.ui.op_radio, - "tools_ncc_milling_type": self.ui.milling_type_radio, - "tools_ncc_overlap": self.ui.ncc_overlap_entry, - "tools_ncc_margin": self.ui.ncc_margin_entry, - "tools_ncc_method": self.ui.ncc_method_combo, - "tools_ncc_connect": self.ui.ncc_connect_cb, - "tools_ncc_contour": self.ui.ncc_contour_cb, + "tools_ncc_operation": self.ui.ncc_op_radio, + "tools_ncc_milling_type": self.ui.ncc_milling_type_radio, + "tools_ncc_overlap": self.ui.ncc_overlap_entry, + "tools_ncc_margin": self.ui.ncc_margin_entry, + "tools_ncc_method": self.ui.ncc_method_combo, + "tools_ncc_connect": self.ui.ncc_connect_cb, + "tools_ncc_contour": self.ui.ncc_contour_cb, "tools_ncc_offset_choice": self.ui.ncc_choice_offset_cb, "tools_ncc_offset_value": self.ui.ncc_offset_spinner, # Paint - "tools_paintoverlap": self.ui.paintoverlap_entry, - "tools_paintoffset": self.ui.paint_offset_entry, - "tools_paintmethod": self.ui.paintmethod_combo, - "tools_pathconnect": self.ui.pathconnect_cb, - "tools_paintcontour": self.ui.paintcontour_cb, + "tools_paint_overlap": self.ui.paint_overlap_entry, + "tools_paint_offset": self.ui.paint_offset_entry, + "tools_paint_method": self.ui.paint_method_combo, + "tools_paint_connect": self.ui.path_connect_cb, + "tools_paint_contour": self.ui.paint_contour_cb, # Isolation - "tools_iso_passes": self.ui.passes_entry, + "tools_iso_passes": self.ui.iso_passes_entry, "tools_iso_overlap": self.ui.iso_overlap_entry, - "tools_iso_milling_type": self.ui.milling_type_radio, - "tools_iso_follow": self.ui.follow_cb, + "tools_iso_milling_type": self.ui.iso_milling_type_radio, + "tools_iso_follow": self.ui.iso_follow_cb, "tools_iso_isotype": self.ui.iso_type_radio, # Drilling - "tools_drill_cutz": self.ui.cutz_drill_entry, - "tools_drill_multidepth": self.ui.mpass_drill_cb, - "tools_drill_depthperpass": self.ui.maxdepth_drill_entry, - "tools_drill_travelz": self.ui.travelz_drill_entry, - "tools_drill_feedrate_z": self.ui.feedrate_z_drill_entry, + "tools_drill_cutz": self.ui.drill_cutz_entry, + "tools_drill_multidepth": self.ui.drill_mpass_cb, + "tools_drill_depthperpass": self.ui.drill_maxdepth_entry, + "tools_drill_travelz": self.ui.drill_travelz_entry, + "tools_drill_feedrate_z": self.ui.drill_feedrate_z_entry, - "tools_drill_feedrate_rapid": self.ui.feedrate_rapid_drill_entry, - "tools_drill_spindlespeed": self.ui.spindlespeed_drill_entry, - "tools_drill_dwell": self.ui.dwell_drill_cb, - "tools_drill_dwelltime": self.ui.dwelltime_drill_entry, + "tools_drill_feedrate_rapid": self.ui.drill_feedrate_rapid_entry, + "tools_drill_spindlespeed": self.ui.drill_spindlespeed_entry, + "tools_drill_dwell": self.ui.drill_dwell_cb, + "tools_drill_dwelltime": self.ui.drill_dwelltime_entry, - "tools_drill_offset": self.ui.offset_drill_entry, - "tools_drill_drill_slots": self.ui.drill_slots_drill_cb, - "tools_drill_drill_overlap": self.ui.drill_overlap_drill_entry, - "tools_drill_last_drill": self.ui.last_drill_drill_cb, + "tools_drill_offset": self.ui.drill_offset_entry, + "tools_drill_drill_slots": self.ui.drill_slots_cb, + "tools_drill_drill_overlap": self.ui.drill_overlap_entry, + "tools_drill_last_drill": self.ui.drill_last_drill_cb, # Cutout - "tools_cutout_margin": self.ui.cutout_margin_entry, - "tools_cutout_gapsize": self.ui.cutout_gapsize, + "tools_cutout_margin": self.ui.cutout_margin_entry, + "tools_cutout_gapsize": self.ui.cutout_gapsize, "tools_cutout_gaps_ff": self.ui.cutout_gaps, "tools_cutout_convexshape": self.ui.cutout_convex_box, - "tools_cutout_gap_type": self.ui.gaptype_radio, - "tools_cutout_gap_depth": self.ui.thin_depth_entry, - "tools_cutout_mb_dia": self.ui.mb_dia_entry, - "tools_cutout_mb_spacing": self.ui.mb_spacing_entry, + "tools_cutout_gap_type": self.ui.cutout_gaptype_radio, + "tools_cutout_gap_depth": self.ui.cutout_thin_depth_entry, + "tools_cutout_mb_dia": self.ui.cutout_mb_dia_entry, + "tools_cutout_mb_spacing": self.ui.cutout_mb_spacing_entry, } @@ -1566,11 +1566,11 @@ class ToolsDB2(QtWidgets.QWidget): "gdb_n_milling_type": "tools_ncc_milling_type", # Paint - 'gdb_p_overlap': "tools_paintoverlap", - 'gdb_p_offset': "tools_paintoffset", - 'gdb_p_method': "tools_paintmethod", - 'gdb_p_connect': "tools_pathconnect", - 'gdb_p_contour': "tools_paintcontour", + 'gdb_p_overlap': "tools_paint_overlap", + 'gdb_p_offset': "tools_paint_offset", + 'gdb_p_method': "tools_paint_method", + 'gdb_p_connect': "tools_paint_connect", + 'gdb_p_contour': "tools_paint_contour", # Isolation "gdb_i_passes": "tools_iso_passes", @@ -1912,11 +1912,11 @@ class ToolsDB2(QtWidgets.QWidget): "tools_ncc_offset_value": float(self.app.defaults["tools_ncc_offset_value"]), # Paint - "tools_paintoverlap": float(self.app.defaults["tools_paintoverlap"]), - "tools_paintoffset": float(self.app.defaults["tools_paintoffset"]), - "tools_paintmethod": self.app.defaults["tools_paintmethod"], - "tools_pathconnect": self.app.defaults["tools_pathconnect"], - "tools_paintcontour": self.app.defaults["tools_paintcontour"], + "tools_paint_overlap": float(self.app.defaults["tools_paint_overlap"]), + "tools_paint_offset": float(self.app.defaults["tools_paint_offset"]), + "tools_paint_method": self.app.defaults["tools_paint_method"], + "tools_paint_connect": self.app.defaults["tools_paint_connect"], + "tools_paint_contour": self.app.defaults["tools_paint_contour"], # Isolation "tools_iso_passes": int(self.app.defaults["tools_iso_passes"]), @@ -2217,10 +2217,10 @@ class ToolsDB2(QtWidgets.QWidget): self.on_save_tools_db() def on_calculate_tooldia(self): - if self.ui.shape_combo.get_value() == 'V': - tip_dia = float(self.ui.vdia_entry.get_value()) - half_tip_angle = float(self.ui.vangle_entry.get_value()) / 2.0 - cut_z = float(self.ui.cutz_entry.get_value()) + if self.ui.mill_shape_combo.get_value() == 'V': + tip_dia = float(self.ui.mill_vdia_entry.get_value()) + half_tip_angle = float(self.ui.mill_vangle_entry.get_value()) / 2.0 + cut_z = float(self.ui.mill_cutz_entry.get_value()) cut_z = -cut_z if cut_z < 0 else cut_z # calculated tool diameter so the cut_z parameter is obeyed @@ -2259,10 +2259,10 @@ class ToolsDB2(QtWidgets.QWidget): # connect the calculate tooldia method to the controls # if the tool shape is 'V' the tool dia will be calculated to obey Cut Z parameter - self.ui.shape_combo.currentIndexChanged.connect(self.on_calculate_tooldia) - self.ui.cutz_entry.valueChanged.connect(self.on_calculate_tooldia) - self.ui.vdia_entry.valueChanged.connect(self.on_calculate_tooldia) - self.ui.vangle_entry.valueChanged.connect(self.on_calculate_tooldia) + self.ui.mill_shape_combo.currentIndexChanged.connect(self.on_calculate_tooldia) + self.ui.mill_cutz_entry.valueChanged.connect(self.on_calculate_tooldia) + self.ui.mill_vdia_entry.valueChanged.connect(self.on_calculate_tooldia) + self.ui.mill_vangle_entry.valueChanged.connect(self.on_calculate_tooldia) def ui_disconnect(self): try: @@ -2271,22 +2271,22 @@ class ToolsDB2(QtWidgets.QWidget): pass try: - self.ui.shape_combo.currentIndexChanged.disconnect(self.on_calculate_tooldia) + self.ui.mill_shape_combo.currentIndexChanged.disconnect(self.on_calculate_tooldia) except (TypeError, AttributeError): pass try: - self.ui.cutz_entry.valueChanged.disconnect(self.on_calculate_tooldia) + self.ui.mill_cutz_entry.valueChanged.disconnect(self.on_calculate_tooldia) except (TypeError, AttributeError): pass try: - self.ui.vdia_entry.valueChanged.disconnect(self.on_calculate_tooldia) + self.ui.mill_vdia_entry.valueChanged.disconnect(self.on_calculate_tooldia) except (TypeError, AttributeError): pass try: - self.ui.vangle_entry.valueChanged.disconnect(self.on_calculate_tooldia) + self.ui.mill_vangle_entry.valueChanged.disconnect(self.on_calculate_tooldia) except (TypeError, AttributeError): pass @@ -2452,15 +2452,15 @@ class ToolsDB2(QtWidgets.QWidget): # Paint Tool elif wdg_name == "gdb_p_overlap": - self.db_tool_dict[tool_id]['data']['tools_paintoverlap'] = val + self.db_tool_dict[tool_id]['data']['tools_paint_overlap'] = val elif wdg_name == "gdb_p_offset": - self.db_tool_dict[tool_id]['data']['tools_paintoffset'] = val + self.db_tool_dict[tool_id]['data']['tools_paint_offset'] = val elif wdg_name == "gdb_p_method": - self.db_tool_dict[tool_id]['data']['tools_paintmethod'] = val + self.db_tool_dict[tool_id]['data']['tools_paint_method'] = val elif wdg_name == "gdb_p_connect": - self.db_tool_dict[tool_id]['data']['tools_pathconnect'] = val + self.db_tool_dict[tool_id]['data']['tools_paint_connect'] = val elif wdg_name == "gdb_p_contour": - self.db_tool_dict[tool_id]['data']['tools_paintcontour'] = val + self.db_tool_dict[tool_id]['data']['tools_paint_contour'] = val # Isolation Tool elif wdg_name == "gdb_i_passes": diff --git a/appEditors/AppGeoEditor.py b/appEditors/AppGeoEditor.py index 0019d90e..0c1a716f 100644 --- a/appEditors/AppGeoEditor.py +++ b/appEditors/AppGeoEditor.py @@ -547,33 +547,33 @@ class PaintOptionsTool(AppTool): def set_tool_ui(self): # Init appGUI - if self.app.defaults["tools_painttooldia"]: - self.painttooldia_entry.set_value(self.app.defaults["tools_painttooldia"]) + if self.app.defaults["tools_paint_tooldia"]: + self.painttooldia_entry.set_value(self.app.defaults["tools_paint_tooldia"]) else: self.painttooldia_entry.set_value(0.0) - if self.app.defaults["tools_paintoverlap"]: - self.paintoverlap_entry.set_value(self.app.defaults["tools_paintoverlap"]) + if self.app.defaults["tools_paint_overlap"]: + self.paintoverlap_entry.set_value(self.app.defaults["tools_paint_overlap"]) else: self.paintoverlap_entry.set_value(0.0) - if self.app.defaults["tools_paintoffset"]: - self.paintmargin_entry.set_value(self.app.defaults["tools_paintoffset"]) + if self.app.defaults["tools_paint_offset"]: + self.paintmargin_entry.set_value(self.app.defaults["tools_paint_offset"]) else: self.paintmargin_entry.set_value(0.0) - if self.app.defaults["tools_paintmethod"]: - self.paintmethod_combo.set_value(self.app.defaults["tools_paintmethod"]) + if self.app.defaults["tools_paint_method"]: + self.paintmethod_combo.set_value(self.app.defaults["tools_paint_method"]) else: self.paintmethod_combo.set_value(_("Seed")) - if self.app.defaults["tools_pathconnect"]: - self.pathconnect_cb.set_value(self.app.defaults["tools_pathconnect"]) + if self.app.defaults["tools_paint_connect"]: + self.pathconnect_cb.set_value(self.app.defaults["tools_paint_connect"]) else: self.pathconnect_cb.set_value(False) - if self.app.defaults["tools_paintcontour"]: - self.paintcontour_cb.set_value(self.app.defaults["tools_paintcontour"]) + if self.app.defaults["tools_paint_contour"]: + self.paintcontour_cb.set_value(self.app.defaults["tools_paint_contour"]) else: self.paintcontour_cb.set_value(False) diff --git a/appGUI/preferences/PreferencesUIManager.py b/appGUI/preferences/PreferencesUIManager.py index 7be81252..5a1a7c8a 100644 --- a/appGUI/preferences/PreferencesUIManager.py +++ b/appGUI/preferences/PreferencesUIManager.py @@ -428,23 +428,23 @@ class PreferencesUIManager: "tools_cutout_mb_spacing": self.ui.tools_defaults_form.tools_cutout_group.mb_spacing_entry, # Paint Area Tool - "tools_painttooldia": self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry, - "tools_paintorder": self.ui.tools_defaults_form.tools_paint_group.paint_order_radio, - "tools_paintoverlap": self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry, - "tools_paintoffset": self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry, - "tools_paintmethod": self.ui.tools_defaults_form.tools_paint_group.paintmethod_combo, - "tools_selectmethod": self.ui.tools_defaults_form.tools_paint_group.selectmethod_combo, + "tools_paint_tooldia": self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry, + "tools_paint_order": self.ui.tools_defaults_form.tools_paint_group.paint_order_radio, + "tools_paint_overlap": self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry, + "tools_paint_offset": self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry, + "tools_paint_method": self.ui.tools_defaults_form.tools_paint_group.paintmethod_combo, + "tools_paint_selectmethod": self.ui.tools_defaults_form.tools_paint_group.selectmethod_combo, "tools_paint_area_shape": self.ui.tools_defaults_form.tools_paint_group.area_shape_radio, - "tools_pathconnect": self.ui.tools_defaults_form.tools_paint_group.pathconnect_cb, - "tools_paintcontour": self.ui.tools_defaults_form.tools_paint_group.contour_cb, + "tools_paint_connect": self.ui.tools_defaults_form.tools_paint_group.pathconnect_cb, + "tools_paint_contour": self.ui.tools_defaults_form.tools_paint_group.contour_cb, "tools_paint_plotting": self.ui.tools_defaults_form.tools_paint_group.paint_plotting_radio, - "tools_paintrest": self.ui.tools_defaults_form.tools_paint_group.rest_cb, - "tools_painttool_type": self.ui.tools_defaults_form.tools_paint_group.tool_type_radio, - "tools_paintcutz": self.ui.tools_defaults_form.tools_paint_group.cutz_entry, - "tools_painttipdia": self.ui.tools_defaults_form.tools_paint_group.tipdia_entry, - "tools_painttipangle": self.ui.tools_defaults_form.tools_paint_group.tipangle_entry, - "tools_paintnewdia": self.ui.tools_defaults_form.tools_paint_group.newdia_entry, + "tools_paint_rest": self.ui.tools_defaults_form.tools_paint_group.rest_cb, + "tools_paint_tool_type": self.ui.tools_defaults_form.tools_paint_group.tool_type_radio, + "tools_paint_cutz": self.ui.tools_defaults_form.tools_paint_group.cutz_entry, + "tools_paint_tipdia": self.ui.tools_defaults_form.tools_paint_group.tipdia_entry, + "tools_paint_tipangle": self.ui.tools_defaults_form.tools_paint_group.tipangle_entry, + "tools_paint_newdia": self.ui.tools_defaults_form.tools_paint_group.newdia_entry, # 2-sided Tool "tools_2sided_mirror_axis": self.ui.tools_defaults_form.tools_2sided_group.mirror_axis_radio, diff --git a/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py b/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py index 665afd18..34a4a373 100644 --- a/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py @@ -185,7 +185,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): # Mouse Bites Tool Diameter self.mb_dia_label = FCLabel('%s:' % _("Tool Diameter")) self.mb_dia_label.setToolTip( - _("The drill hole diameter when doing mpuse bites.") + _("The drill hole diameter when doing mouse bites.") ) self.mb_dia_entry = FCDoubleSpinner() self.mb_dia_entry.set_precision(self.decimals) diff --git a/appParsers/ParseHPGL2.py b/appParsers/ParseHPGL2.py index 45b81e41..c78d3559 100644 --- a/appParsers/ParseHPGL2.py +++ b/appParsers/ParseHPGL2.py @@ -81,26 +81,26 @@ class HPGL2: "toolchangexy": self.app.defaults["geometry_toolchangexy"], "startz": self.app.defaults["geometry_startz"], - "tooldia": self.app.defaults["tools_painttooldia"], - "tools_paintoffset": self.app.defaults["tools_paintoffset"], - "tools_paintmethod": self.app.defaults["tools_paintmethod"], - "tools_selectmethod": self.app.defaults["tools_selectmethod"], - "tools_pathconnect": self.app.defaults["tools_pathconnect"], - "tools_paintcontour": self.app.defaults["tools_paintcontour"], - "tools_paintoverlap": self.app.defaults["tools_paintoverlap"], - "tools_paintrest": self.app.defaults["tools_paintrest"], + "tooldia": self.app.defaults["tools_paint_tooldia"], + "tools_paint_offset": self.app.defaults["tools_paint_offset"], + "tools_paint_method": self.app.defaults["tools_paint_method"], + "tools_paint_selectmethod": self.app.defaults["tools_paint_selectmethod"], + "tools_paint_connect": self.app.defaults["tools_paint_connect"], + "tools_paint_contour": self.app.defaults["tools_paint_contour"], + "tools_paint_overlap": self.app.defaults["tools_paint_overlap"], + "tools_paint_rest": self.app.defaults["tools_paint_rest"], - "tools_ncc_operation": self.app.defaults["tools_ncc_operation"], - "tools_ncc_margin": self.app.defaults["tools_ncc_margin"], - "tools_ncc_method": self.app.defaults["tools_ncc_method"], - "tools_ncc_connect": self.app.defaults["tools_ncc_connect"], - "tools_ncc_contour": self.app.defaults["tools_ncc_contour"], - "tools_ncc_overlap": self.app.defaults["tools_ncc_overlap"], - "tools_ncc_rest": self.app.defaults["tools_ncc_rest"], - "tools_ncc_ref": self.app.defaults["tools_ncc_ref"], + "tools_ncc_operation": self.app.defaults["tools_ncc_operation"], + "tools_ncc_margin": self.app.defaults["tools_ncc_margin"], + "tools_ncc_method": self.app.defaults["tools_ncc_method"], + "tools_ncc_connect": self.app.defaults["tools_ncc_connect"], + "tools_ncc_contour": self.app.defaults["tools_ncc_contour"], + "tools_ncc_overlap": self.app.defaults["tools_ncc_overlap"], + "tools_ncc_rest": self.app.defaults["tools_ncc_rest"], + "tools_ncc_ref": self.app.defaults["tools_ncc_ref"], "tools_ncc_offset_choice": self.app.defaults["tools_ncc_offset_choice"], "tools_ncc_offset_value": self.app.defaults["tools_ncc_offset_value"], - "tools_ncc_milling_type": self.app.defaults["tools_ncc_milling_type"], + "tools_ncc_milling_type": self.app.defaults["tools_ncc_milling_type"], "tools_iso_passes": self.app.defaults["tools_iso_passes"], "tools_iso_overlap": self.app.defaults["tools_iso_overlap"], diff --git a/appTools/ToolCutOut.py b/appTools/ToolCutOut.py index 7faefbf5..db4c25aa 100644 --- a/appTools/ToolCutOut.py +++ b/appTools/ToolCutOut.py @@ -2219,7 +2219,7 @@ class CutoutUI: # Mouse Bites Tool Diameter self.mb_dia_label = FCLabel('%s:' % _("Tool Diameter")) self.mb_dia_label.setToolTip( - _("The drill hole diameter when doing mpuse bites.") + _("The drill hole diameter when doing mouse bites.") ) self.mb_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.mb_dia_entry.set_precision(self.decimals) diff --git a/appTools/ToolPaint.py b/appTools/ToolPaint.py index 2fe580f2..c29e079e 100644 --- a/appTools/ToolPaint.py +++ b/appTools/ToolPaint.py @@ -106,19 +106,19 @@ class ToolPaint(AppTool, Gerber): self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"] self.form_fields = { - "tools_paintoverlap": self.ui.paintoverlap_entry, - "tools_paintoffset": self.ui.offset_entry, - "tools_paintmethod": self.ui.paintmethod_combo, - "tools_pathconnect": self.ui.pathconnect_cb, - "tools_paintcontour": self.ui.paintcontour_cb, + "tools_paint_overlap": self.ui.paintoverlap_entry, + "tools_paint_offset": self.ui.offset_entry, + "tools_paint_method": self.ui.paintmethod_combo, + "tools_paint_connect": self.ui.pathconnect_cb, + "tools_paint_contour": self.ui.paintcontour_cb, } self.name2option = { - 'p_overlap': "tools_paintoverlap", - 'p_offset': "tools_paintoffset", - 'p_method': "tools_paintmethod", - 'p_connect': "tools_pathconnect", - 'p_contour': "tools_paintcontour", + 'p_overlap': "tools_paint_overlap", + 'p_offset': "tools_paint_offset", + 'p_method': "tools_paint_method", + 'p_connect': "tools_paint_connect", + 'p_contour': "tools_paint_contour", } # store here the points for the "Polygon" area selection shape @@ -439,9 +439,9 @@ class ToolPaint(AppTool, Gerber): self.default_data.update({ "name": '_paint', "plot": self.app.defaults["geometry_plot"], - "cutz": float(self.app.defaults["tools_paintcutz"]), - "vtipdia": float(self.app.defaults["tools_painttipdia"]), - "vtipangle": float(self.app.defaults["tools_painttipangle"]), + "cutz": float(self.app.defaults["tools_paint_cutz"]), + "vtipdia": float(self.app.defaults["tools_paint_tipdia"]), + "vtipangle": float(self.app.defaults["tools_paint_tipangle"]), "travelz": float(self.app.defaults["geometry_travelz"]), "feedrate": float(self.app.defaults["geometry_feedrate"]), "feedrate_z": float(self.app.defaults["geometry_feedrate_z"]), @@ -468,28 +468,28 @@ class ToolPaint(AppTool, Gerber): "area_overz": float(self.app.defaults["geometry_area_overz"]), "optimization_type": self.app.defaults["geometry_optimization_type"], - "tooldia": self.app.defaults["tools_painttooldia"], - "tools_paintoffset": self.app.defaults["tools_paintoffset"], - "tools_paintmethod": self.app.defaults["tools_paintmethod"], - "tools_selectmethod": self.app.defaults["tools_selectmethod"], - "tools_pathconnect": self.app.defaults["tools_pathconnect"], - "tools_paintcontour": self.app.defaults["tools_paintcontour"], - "tools_paintoverlap": self.app.defaults["tools_paintoverlap"], - "tools_paintrest": self.app.defaults["tools_paintrest"], + "tooldia": self.app.defaults["tools_paint_tooldia"], + "tools_paint_offset": self.app.defaults["tools_paint_offset"], + "tools_paint_method": self.app.defaults["tools_paint_method"], + "tools_paint_selectmethod": self.app.defaults["tools_paint_selectmethod"], + "tools_paint_connect": self.app.defaults["tools_paint_connect"], + "tools_paint_contour": self.app.defaults["tools_paint_contour"], + "tools_paint_overlap": self.app.defaults["tools_paint_overlap"], + "tools_paint_rest": self.app.defaults["tools_paint_rest"], }) # ## Init the GUI interface - self.ui.order_radio.set_value(self.app.defaults["tools_paintorder"]) - self.ui.offset_entry.set_value(self.app.defaults["tools_paintoffset"]) - self.ui.paintmethod_combo.set_value(self.app.defaults["tools_paintmethod"]) - self.ui.selectmethod_combo.set_value(self.app.defaults["tools_selectmethod"]) + self.ui.order_radio.set_value(self.app.defaults["tools_paint_order"]) + self.ui.offset_entry.set_value(self.app.defaults["tools_paint_offset"]) + self.ui.paintmethod_combo.set_value(self.app.defaults["tools_paint_method"]) + self.ui.selectmethod_combo.set_value(self.app.defaults["tools_paint_selectmethod"]) self.ui.area_shape_radio.set_value(self.app.defaults["tools_paint_area_shape"]) - self.ui.pathconnect_cb.set_value(self.app.defaults["tools_pathconnect"]) - self.ui.paintcontour_cb.set_value(self.app.defaults["tools_paintcontour"]) - self.ui.paintoverlap_entry.set_value(self.app.defaults["tools_paintoverlap"]) + self.ui.pathconnect_cb.set_value(self.app.defaults["tools_paint_connect"]) + self.ui.paintcontour_cb.set_value(self.app.defaults["tools_paint_contour"]) + self.ui.paintoverlap_entry.set_value(self.app.defaults["tools_paint_overlap"]) - self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_paintnewdia"]) - self.ui.rest_cb.set_value(self.app.defaults["tools_paintrest"]) + self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_paint_newdia"]) + self.ui.rest_cb.set_value(self.app.defaults["tools_paint_rest"]) # # make the default object type, "Geometry" # self.type_obj_radio.set_value("geometry") @@ -521,29 +521,29 @@ class ToolPaint(AppTool, Gerber): self.on_reference_combo_changed() try: - diameters = [float(self.app.defaults["tools_painttooldia"])] + diameters = [float(self.app.defaults["tools_paint_tooldia"])] except (ValueError, TypeError): - if isinstance(self.app.defaults["tools_painttooldia"], str): - diameters = [eval(x) for x in self.app.defaults["tools_painttooldia"].split(",") if x != ''] + if isinstance(self.app.defaults["tools_paint_tooldia"], str): + diameters = [eval(x) for x in self.app.defaults["tools_paint_tooldia"].split(",") if x != ''] else: - diameters = self.app.defaults["tools_painttooldia"] + diameters = self.app.defaults["tools_paint_tooldia"] if not diameters: log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> NCC Tools.") self.build_ui() # if the Paint Method is "Single" disable the tool table context menu - if self.default_data["tools_selectmethod"] == "single": + if self.default_data["tools_paint_selectmethod"] == "single": self.ui.tools_table.setContextMenuPolicy(Qt.NoContextMenu) return for dia in diameters: self.on_tool_add(custom_dia=dia) - self.ui.on_rest_machining_check(state=self.app.defaults["tools_paintrest"]) + self.ui.on_rest_machining_check(state=self.app.defaults["tools_paint_rest"]) # if the Paint Method is "Single" disable the tool table context menu - if self.default_data["tools_selectmethod"] == "single": + if self.default_data["tools_paint_selectmethod"] == "single": self.ui.tools_table.setContextMenuPolicy(Qt.NoContextMenu) self.ui.tools_table.drag_drop_sig.connect(self.rebuild_ui) @@ -1777,11 +1777,11 @@ class ToolPaint(AppTool, Gerber): return "fail" # determine the tool parameters to use - over = float(tools_storage[current_uid]['data']['tools_paintoverlap']) / 100.0 - conn = tools_storage[current_uid]['data']['tools_pathconnect'] - cont = tools_storage[current_uid]['data']['tools_paintcontour'] + over = float(tools_storage[current_uid]['data']['tools_paint_overlap']) / 100.0 + conn = tools_storage[current_uid]['data']['tools_paint_connect'] + cont = tools_storage[current_uid]['data']['tools_paint_contour'] - paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset']) + paint_offset = float(tools_storage[current_uid]['data']['tools_paint_offset']) poly_buf = [] for pol in geometry: @@ -1967,9 +1967,9 @@ class ToolPaint(AppTool, Gerber): # cleared_geo = [] # determine the tool parameters to use - over = float(tools_storage[current_uid]['data']['tools_paintoverlap']) / 100.0 - conn = tools_storage[current_uid]['data']['tools_pathconnect'] - cont = tools_storage[current_uid]['data']['tools_paintcontour'] + over = float(tools_storage[current_uid]['data']['tools_paint_overlap']) / 100.0 + conn = tools_storage[current_uid]['data']['tools_paint_connect'] + cont = tools_storage[current_uid]['data']['tools_paint_contour'] pol_nr = 0 diff --git a/app_Main.py b/app_Main.py index a3d84d65..1e5077d0 100644 --- a/app_Main.py +++ b/app_Main.py @@ -4146,7 +4146,7 @@ class App(QtCore.QObject): def scale_defaults(self, sfactor, dimensions): for dim in dimensions: if dim in ['geometry_cnctooldia', 'tools_ncc_tools', 'tools_solderpaste_tools', 'tools_iso_tooldia', - 'tools_painttooldia', 'tools_transform_ref_point', 'tools_cal_toolchange_xy', + 'tools_paint_tooldia', 'tools_transform_ref_point', 'tools_cal_toolchange_xy', 'gerber_editor_newdim', 'tools_drill_toolchangexy', 'tools_drill_endxy', 'geometry_toolchangexy', 'geometry_endxy', 'tools_solderpaste_xy_toolchange']: if not self.defaults[dim] or self.defaults[dim] == '': @@ -4269,7 +4269,7 @@ class App(QtCore.QObject): 'tools_cutout_gapsize', 'tools_cutout_gap_depth', 'tools_cutout_mb_dia', 'tools_cutout_mb_spacing', # Paint Tool - "tools_painttooldia", 'tools_paintoffset', "tools_paintcutz", "tools_painttipdia", "tools_paintnewdia", + "tools_paint_tooldia", 'tools_paint_offset', "tools_paint_cutz", "tools_paint_tipdia", "tools_paint_newdia", # 2Sided Tool "tools_2sided_drilldia", diff --git a/defaults.py b/defaults.py index d27f5ef1..61fef51c 100644 --- a/defaults.py +++ b/defaults.py @@ -503,22 +503,22 @@ class FlatCAMDefaults: "tools_cutout_mb_spacing": 0.3, # Paint Tool - "tools_painttooldia": 0.3, - "tools_paintorder": 'rev', - "tools_paintoverlap": 20, - "tools_paintoffset": 0.0, - "tools_paintmethod": _("Seed"), - "tools_selectmethod": _("All"), + "tools_paint_tooldia": 0.3, + "tools_paint_order": 'rev', + "tools_paint_overlap": 20, + "tools_paint_offset": 0.0, + "tools_paint_method": _("Seed"), + "tools_paint_selectmethod": _("All"), "tools_paint_area_shape": "square", - "tools_pathconnect": True, - "tools_paintcontour": True, + "tools_paint_connect": True, + "tools_paint_contour": True, "tools_paint_plotting": 'normal', - "tools_paintrest": False, - "tools_painttool_type": 'C1', - "tools_paintcutz": -0.05, - "tools_painttipdia": 0.1, - "tools_painttipangle": 30, - "tools_paintnewdia": 0.1, + "tools_paint_rest": False, + "tools_paint_tool_type": 'C1', + "tools_paint_cutz": -0.05, + "tools_paint_tipdia": 0.1, + "tools_paint_tipangle": 30, + "tools_paint_newdia": 0.1, # 2-Sided Tool "tools_2sided_mirror_axis": "X", diff --git a/locale/tr/LC_MESSAGES/strings.mo b/locale/tr/LC_MESSAGES/strings.mo index a6ab1d3f35e52574cdd2702a490809e71023cd82..ce1e8e82f64c3a3e1f139654ee1c3368e0c52f04 100644 GIT binary patch delta 74178 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 e!F;==* zi^$0Ez%H>LviT({8xX>}4-AcY-@>mzuE?m~{riS=3-v@sg@r~$hvxcYelBB2~*=Insr+G;9k3qyN{g?k*A z{lj#bowH?6#D9rnlBf627CYdnU#gVJgAebBI=nX``taWH(1`9~v19-7o02qbt;6%% z)o#?FcH1MHY986-v1zAH;vbSK=KJpM48EMKetrGZ$4toP-z=kvk}u3tOIe0^s`ri# ziE<9bwQT-%Q~$4l?AiSfr(+xckFnU>+5M|#NmaXd|ImoA2u|1GaiIglq5|8*gf#U} z6H~mhf6)IOY#URenHkI$b2XhiN$lpz{-g8x)~yv=vb%rQjK%Ew6ysDo_lRPif89Pf z>KY9X^VA573J*QHC^{@Ew$X6^B%Tz`-Z5uJYuzZe#RC85nPVpG^iL8~W|#lMnC-j# zQ^s7_lqe%_pbi~|4gBWSBCXrDG%?6=ze%_oCWsr#JoHcG z|G%!cZVLb7dLuU1JMfwRJ)fAH&;0}9CEGma-gEy_F(04%XG;2?H-_{t{Er5vZE<*S zAGXKgy`JVIX0}}Q*z528mnTiZJ)&1wM3|@gkdP?0W8+x_DMQ-Bj4D38Qr_mB>T^;AA7Ti`_CqU`5P9g5f&ZV zzd-Ee5$=)IvKYr6_HF;@(5Pa;Iy%-{a7@d6?$O>BA$>fxdq?S{d8!{?S*(6Y-;n6Q z>J3^r_nNvxdxS)3-T%{t>;EHn?1JM)Lp*Im`f8KwboOz){5wLhtA1o;RQH%S``qoT z9v&AGF2z0^2j|fLXEx5+)m^G>NQ9?}whHU`uUxytcsBZ_i|xMO{Y5o*Xmszeh?rCV zxGPnN=ad_OJPu)-I0rYXPiX%z*Z)=M8aZS@^nlm|pWI#iS~{x|;%RM?N3|| delta 71837 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 diff --git a/locale/tr/LC_MESSAGES/strings.po b/locale/tr/LC_MESSAGES/strings.po index 0d358b70..5bb9f7f7 100644 --- a/locale/tr/LC_MESSAGES/strings.po +++ b/locale/tr/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-23 18:46+0300\n" -"PO-Revision-Date: 2020-10-23 18:46+0300\n" +"POT-Creation-Date: 2020-10-23 23:11+0300\n" +"PO-Revision-Date: 2020-10-23 23:11+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: tr_TR\n" @@ -219,7 +219,7 @@ msgstr "Seçilen dışlama alanları silindi." #: appDatabase.py:40 msgid "ID" -msgstr "" +msgstr "ID" #: appDatabase.py:40 msgid "Tool Name" @@ -272,15 +272,15 @@ msgstr "" #: appDatabase.py:220 appEditors/AppExcEditor.py:2567 #: appEditors/AppExcEditor.py:3732 appGUI/ObjectUI.py:666 -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appObjects/FlatCAMObj.py:719 appObjects/FlatCAMObj.py:782 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 #: appTools/ToolDrilling.py:2065 appTools/ToolIsolation.py:3022 #: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175 #: appTools/ToolMilling.py:1360 appTools/ToolMilling.py:1670 #: appTools/ToolNCC.py:3885 appTools/ToolPaint.py:2813 -#: appTools/ToolPcbWizard.py:404 appTools/ToolProperties.py:416 -#: appTools/ToolProperties.py:479 appTools/ToolSolderPaste.py:1166 +#: appTools/ToolPcbWizard.py:404 appTools/ToolProperties.py:413 +#: appTools/ToolProperties.py:476 appTools/ToolSolderPaste.py:1166 #: tclCommands/TclCommandDrillcncjob.py:195 msgid "Diameter" msgstr "Kalınlık" @@ -1243,7 +1243,8 @@ msgstr "" "- İncelik -> Boyutu, 'Geçit' ile aynıdır ancak \"Geçit\" kısmı frezelenerek " "PCB bütünlüğünden\n" " kopmayacak kadar inceltilecektir.\n" -"- Fare Isırığı -> Boyutu 'Köprü' ile aynıdır, ancak deliklerle kaplanmıştır" +"- Fare Isırığı (M-Bites) -> Boyutu 'Köprü' ile aynıdır, ancak deliklerle " +"kaplanmıştır" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 #: appTools/ToolCutOut.py:2192 @@ -1277,7 +1278,7 @@ msgstr "Uç Kalınlığı" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 #: appTools/ToolCutOut.py:2222 -msgid "The drill hole diameter when doing mpuse bites." +msgid "The drill hole diameter when doing mouse bites." msgstr "Geçitlerde fare ısırığı şekli için delik genişliği." #: appDatabase.py:1233 @@ -1686,12 +1687,12 @@ msgstr "Bitti. Delikleri taşıma işlemi tamamlandı." msgid "Done. Drill(s) copied." msgstr "Bitti. Delikler kopyalandı." -#: appEditors/AppExcEditor.py:1897 appObjects/FlatCAMExcellon.py:330 +#: appEditors/AppExcEditor.py:1897 appObjects/FlatCAMExcellon.py:333 #: appTools/ToolDrilling.py:571 appTools/ToolMilling.py:494 msgid "Total Drills" msgstr "Toplam Delik" -#: appEditors/AppExcEditor.py:1929 appObjects/FlatCAMExcellon.py:364 +#: appEditors/AppExcEditor.py:1929 appObjects/FlatCAMExcellon.py:367 #: appTools/ToolDrilling.py:598 appTools/ToolMilling.py:521 msgid "Total Slots" msgstr "Toplam Yuva" @@ -2078,7 +2079,7 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 #: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 -#: appTools/ToolProperties.py:574 +#: appTools/ToolProperties.py:571 msgid "Length" msgstr "Uzunluk" @@ -2262,7 +2263,7 @@ msgid "Text Tool" msgstr "Metin Aracı" #: appEditors/AppGeoEditor.py:404 appGUI/MainGUI.py:511 appGUI/MainGUI.py:1245 -#: appGUI/ObjectUI.py:1172 appObjects/FlatCAMExcellon.py:880 +#: appGUI/ObjectUI.py:1172 appObjects/FlatCAMExcellon.py:886 #: appObjects/FlatCAMGeometry.py:951 appTools/ToolDrilling.py:711 #: appTools/ToolDrilling.py:1033 appTools/ToolDrilling.py:2116 #: appTools/ToolIsolation.py:697 appTools/ToolIsolation.py:3166 @@ -2310,8 +2311,8 @@ msgstr "Çizim işlemi iptal edildi. Şekil seçilmedi." #: appEditors/AppGeoEditor.py:595 appEditors/AppGeoEditor.py:2984 #: appEditors/AppGeoEditor.py:3012 appEditors/AppGeoEditor.py:3040 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:71 -#: appObjects/FlatCAMObj.py:495 appTools/ToolProperties.py:116 -#: appTools/ToolProperties.py:164 +#: appObjects/FlatCAMObj.py:495 appTools/ToolProperties.py:113 +#: appTools/ToolProperties.py:161 msgid "Tools" msgstr "Araçlar" @@ -3401,7 +3402,7 @@ msgid "Gerber Editor" msgstr "Gerber Düzenleyici" #: appEditors/AppGerberEditor.py:2482 appGUI/ObjectUI.py:281 -#: appObjects/FlatCAMObj.py:492 appTools/ToolProperties.py:161 +#: appObjects/FlatCAMObj.py:492 appTools/ToolProperties.py:158 msgid "Apertures" msgstr "Şekiller" @@ -3994,7 +3995,7 @@ msgstr "TT" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 #: appObjects/FlatCAMObj.py:499 appTools/ToolDrilling.py:2065 #: appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1769 -#: appTools/ToolProperties.py:168 +#: appTools/ToolProperties.py:165 msgid "Drills" msgstr "Delikler" @@ -4004,7 +4005,7 @@ msgstr "Delikler" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 #: appObjects/FlatCAMObj.py:501 appTools/ToolDrilling.py:2065 #: appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1770 -#: appTools/ToolProperties.py:170 +#: appTools/ToolProperties.py:167 msgid "Slots" msgstr "Yuvalar" @@ -4183,8 +4184,6 @@ msgid "File" msgstr "Dosya" #: appGUI/MainGUI.py:84 -#, fuzzy -#| msgid "&New Project ...\tCtrl+N" msgid "New Project ...\tCtrl+N" msgstr "Yeni Proje ...\tCTRL+N" @@ -4229,20 +4228,14 @@ msgid "Will create a new, empty Document Object." msgstr "Yeni, boş bir Belge nesnesi oluşturur." #: appGUI/MainGUI.py:129 -#, fuzzy -#| msgid "Open &Gerber ...\tCtrl+G" msgid "Open Gerber ...\tCtrl+G" msgstr "Gerber'i Aç ...\tCTRL+G" #: appGUI/MainGUI.py:134 -#, fuzzy -#| msgid "Open &Excellon ...\tCtrl+E" msgid "Open Excellon ...\tCtrl+E" msgstr "Excellon'u Aç ...\tCTRL+E" #: appGUI/MainGUI.py:139 -#, fuzzy -#| msgid "Open G-&Code ..." msgid "Open G-Code ..." msgstr "G-Kodunu Aç ..." @@ -4263,14 +4256,10 @@ msgid "Save" msgstr "Kaydet" #: appGUI/MainGUI.py:160 -#, fuzzy -#| msgid "&Save Project ...\tCtrl+S" msgid "Save Project ...\tCtrl+S" msgstr "Projeyi Kaydet ...\tCTRL+S" #: appGUI/MainGUI.py:165 -#, fuzzy -#| msgid "Save Project &As ...\tCtrl+Shift+S" msgid "Save Project As ...\tCtrl+Shift+S" msgstr "Projeyi Farklı Kaydet ...\tCtrl+Shift+S" @@ -4295,26 +4284,18 @@ msgid "Import" msgstr "İçe Aktar" #: appGUI/MainGUI.py:209 -#, fuzzy -#| msgid "&SVG as Geometry Object ..." msgid "SVG as Geometry Object ..." msgstr "SVG Şekil Nesnesi ..." #: appGUI/MainGUI.py:212 -#, fuzzy -#| msgid "&SVG as Gerber Object ..." msgid "SVG as Gerber Object ..." msgstr "SVG Gerber Nesnesi ..." #: appGUI/MainGUI.py:217 -#, fuzzy -#| msgid "&DXF as Geometry Object ..." msgid "DXF as Geometry Object ..." msgstr "DXF Şekil Nesnesi ..." #: appGUI/MainGUI.py:220 -#, fuzzy -#| msgid "&DXF as Gerber Object ..." msgid "DXF as Gerber Object ..." msgstr "DXF Gerber Nesnesi ..." @@ -4327,8 +4308,6 @@ msgid "Export" msgstr "Dışa Aktar" #: appGUI/MainGUI.py:234 -#, fuzzy -#| msgid "Export &SVG ..." msgid "Export SVG ..." msgstr "SVG'i Dışa Aktar ..." @@ -4337,8 +4316,6 @@ msgid "Export DXF ..." msgstr "DXF'i Dışa Aktar ..." #: appGUI/MainGUI.py:244 -#, fuzzy -#| msgid "Export &PNG ..." msgid "Export PNG ..." msgstr "PNG'i Dışa Aktar ..." @@ -4353,8 +4330,6 @@ msgstr "" "alanında o anda açık olan görsel bilgileri içerir." #: appGUI/MainGUI.py:255 -#, fuzzy -#| msgid "Export &Excellon ..." msgid "Export Excellon ..." msgstr "Excellon'u Dışa Aktar ..." @@ -4369,8 +4344,6 @@ msgstr "" "Ayarlar -> Excellon'u Dışa Aktar'da ayarlanır." #: appGUI/MainGUI.py:264 -#, fuzzy -#| msgid "Export &Gerber ..." msgid "Export Gerber ..." msgstr "Gerber'i Dışa Aktar ..." @@ -4457,8 +4430,6 @@ msgid "Join Objects" msgstr "Nesneleri Birleştir" #: appGUI/MainGUI.py:364 -#, fuzzy -#| msgid "&Join Geo/Gerber/Exc -> Geo" msgid "Join Geo/Gerber/Exc -> Geo" msgstr "Şekil / Gerber / Excellon -> Şekli Birleştir" @@ -4495,8 +4466,6 @@ msgstr "" "Seçili Gerber nesnelerini yeni bir karma Gerber nesnesiyle birleştirir." #: appGUI/MainGUI.py:388 -#, fuzzy -#| msgid "&Copy\tCtrl+C" msgid "Copy\tCtrl+C" msgstr "Kopyala\tCTRL+C" @@ -4505,8 +4474,6 @@ msgid "Delete\tDEL" msgstr "Sil\tDEL" #: appGUI/MainGUI.py:398 -#, fuzzy -#| msgid "Se&t Origin\tO" msgid "Set Origin\tO" msgstr "Orijini Ayarla\tO" @@ -4527,49 +4494,35 @@ msgid "Toggle Units\tQ" msgstr "Birimleri Değiştir\tQ" #: appGUI/MainGUI.py:412 -#, fuzzy -#| msgid "&Select All\tCtrl+A" msgid "Select All\tCtrl+A" msgstr "Tümünü Seç\tCTRL+A" #: appGUI/MainGUI.py:417 -#, fuzzy -#| msgid "&Preferences\tShift+P" msgid "Preferences\tShift+P" -msgstr "&Ayarlar\tSHIFT+P" +msgstr "Ayarlar\tSHIFT+P" #: appGUI/MainGUI.py:423 appObjects/FlatCAMObj.py:488 -#: appTools/ToolProperties.py:157 +#: appTools/ToolProperties.py:154 msgid "Options" msgstr "Seçenekler" #: appGUI/MainGUI.py:425 -#, fuzzy -#| msgid "&Rotate Selection\tShift+(R)" msgid "Rotate Selection\tShift+(R)" -msgstr "&Seçimi Döndür\tSHIFT+(R)" +msgstr "Seçimi Döndür\tSHIFT+(R)" #: appGUI/MainGUI.py:430 -#, fuzzy -#| msgid "&Skew on X axis\tShift+X" msgid "Skew on X axis\tShift+X" -msgstr "&X Ekseninde Eğrilt\tSHIFT+X" +msgstr "X Ekseninde Eğrilt\tSHIFT+X" #: appGUI/MainGUI.py:432 -#, fuzzy -#| msgid "S&kew on Y axis\tShift+Y" msgid "Skew on Y axis\tShift+Y" msgstr "Y Ekseninde Eğrilt\tSHIFT+Y" #: appGUI/MainGUI.py:437 -#, fuzzy -#| msgid "Flip on &X axis\tX" msgid "Flip on X axis\tX" msgstr "X Ekseninde Çevir\tX" #: appGUI/MainGUI.py:439 -#, fuzzy -#| msgid "Flip on &Y axis\tY" msgid "Flip on Y axis\tY" msgstr "Y Ekseninde Çevir\tY" @@ -4598,22 +4551,16 @@ msgid "Disable non-selected\tAlt+3" msgstr "Seçili Olmayanları Devre Dışı Bırak\tALT+3" #: appGUI/MainGUI.py:463 -#, fuzzy -#| msgid "&Zoom Fit\tV" msgid "Zoom Fit\tV" msgstr "Ekrana Sığdır\tV" #: appGUI/MainGUI.py:465 -#, fuzzy -#| msgid "&Zoom In\t=" msgid "Zoom In\t=" -msgstr "&Yakınlaştır\t=" +msgstr "Yakınlaştır\t=" #: appGUI/MainGUI.py:467 -#, fuzzy -#| msgid "&Zoom Out\t-" msgid "Zoom Out\t-" -msgstr "&Uzaklaştır\t-" +msgstr "Uzaklaştır\t-" #: appGUI/MainGUI.py:472 msgid "Redraw All\tF5" @@ -4624,40 +4571,28 @@ msgid "Toggle Code Editor\tShift+E" msgstr "Kod Düzenleyiciyi Aç/Kapat\tSHIFT+E" #: appGUI/MainGUI.py:479 -#, fuzzy -#| msgid "&Toggle FullScreen\tAlt+F10" msgid "Toggle FullScreen\tAlt+F10" -msgstr "&Tam Ekranı Aç/Kapat\tALT+F10" +msgstr "Tam Ekranı Aç/Kapat\tALT+F10" #: appGUI/MainGUI.py:481 -#, fuzzy -#| msgid "&Toggle Plot Area\tCtrl+F10" msgid "Toggle Plot Area\tCtrl+F10" -msgstr "&Çalışma Alanını Aç/Kapat\tCTRL+F10" +msgstr "Çalışma Alanını Aç/Kapat\tCTRL+F10" #: appGUI/MainGUI.py:483 -#, fuzzy -#| msgid "&Toggle Project/Sel/Tool\t`" msgid "Toggle Project/Sel/Tool\t`" -msgstr "&Yan Paneli Aç/Kapat\t`" +msgstr "Yan Paneli Aç/Kapat\t`" #: appGUI/MainGUI.py:487 -#, fuzzy -#| msgid "&Toggle Grid Snap\tG" msgid "Toggle Grid Snap\tG" -msgstr "&Izgaraya Yapıştırmayı Aç/Kapat\tG" +msgstr "Izgaraya Yapıştırmayı Aç/Kapat\tG" #: appGUI/MainGUI.py:489 -#, fuzzy -#| msgid "&Toggle Grid Lines\tAlt+G" msgid "Toggle Grid Lines\tAlt+G" -msgstr "&Izgarayı Göster/Gizle\tALT+G" +msgstr "Izgarayı Göster/Gizle\tALT+G" #: appGUI/MainGUI.py:491 -#, fuzzy -#| msgid "&Toggle Axis\tShift+G" msgid "Toggle Axis\tShift+G" -msgstr "&Ekseni Göster/Gizle\tSHIFT+G" +msgstr "Ekseni Göster/Gizle\tSHIFT+G" #: appGUI/MainGUI.py:493 msgid "Toggle Workspace\tShift+W" @@ -4682,10 +4617,8 @@ msgid "Deselect All" msgstr "Tüm Seçimleri Kaldır" #: appGUI/MainGUI.py:514 -#, fuzzy -#| msgid "&Command Line\tS" msgid "Command Line\tS" -msgstr "&Komut Satırı\tS" +msgstr "Komut Satırı\tS" #: appGUI/MainGUI.py:519 msgid "Help" @@ -5062,8 +4995,6 @@ msgid "Replot" msgstr "Yeniden Çiz" #: appGUI/MainGUI.py:898 appGUI/MainGUI.py:2055 -#, fuzzy -#| msgid "&Clear plot" msgid "Clear plot" msgstr "Nesneyi Temizle" @@ -5120,7 +5051,7 @@ msgstr "Delme" #: appGUI/MainGUI.py:943 appGUI/MainGUI.py:2098 msgid "Panel Tool" -msgstr "PCB Paneli" +msgstr "Panelli PCB" #: appGUI/MainGUI.py:945 appGUI/MainGUI.py:2100 appTools/ToolFilm.py:108 msgid "Film Tool" @@ -5403,10 +5334,8 @@ msgstr "" "Referans (X = 0, Y = 0) konumudur" #: appGUI/MainGUI.py:1194 -#, fuzzy -#| msgid "Show Shell" msgid "TCL Shell" -msgstr "Komut Satırını Göster" +msgstr "Komut Satırı" #: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 msgid "Project" @@ -6392,7 +6321,7 @@ msgstr "ARAÇLAR" #: appGUI/ObjectUI.py:409 appGUI/ObjectUI.py:758 msgid "Show the Utilties." -msgstr "Araçaları göster." +msgstr "Araçları göster." #: appGUI/ObjectUI.py:433 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:32 msgid "Non-copper regions" @@ -7393,7 +7322,7 @@ msgstr "" "numaralar gösterilir." #: appGUI/ObjectUI.py:1939 appObjects/FlatCAMObj.py:864 -#: appTools/ToolProperties.py:561 +#: appTools/ToolProperties.py:558 msgid "Travelled distance" msgstr "Katedilen Mesafe" @@ -7718,7 +7647,7 @@ msgstr "Her ilerletme eylemi, eksenleri bu değerle hareket ettirecektir." #: appGUI/ObjectUI.py:2474 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:185 #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:89 -#: appObjects/FlatCAMObj.py:831 appTools/ToolProperties.py:528 +#: appObjects/FlatCAMObj.py:831 appTools/ToolProperties.py:525 msgid "Feedrate" msgstr "İlerleme Hızı" @@ -8419,7 +8348,7 @@ msgstr "" #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 #: appTools/ToolDistance.py:562 appTools/ToolDistanceMin.py:237 -#: appTools/ToolPcbWizard.py:455 appTools/ToolProperties.py:156 +#: appTools/ToolPcbWizard.py:455 appTools/ToolProperties.py:153 msgid "Units" msgstr "Birimler" @@ -10067,9 +9996,9 @@ msgstr "" #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 #: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 -#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 -#: appTools/ToolProperties.py:458 appTools/ToolProperties.py:486 -#: appTools/ToolProperties.py:493 appTools/ToolProperties.py:496 +#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 +#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 +#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 msgid "None" msgstr "Yok" @@ -10747,7 +10676,7 @@ msgstr "Dikdörtgensel pedlerin işlenmesi." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 #: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:174 +#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Diğerleri" @@ -13143,38 +13072,38 @@ msgstr "" msgid "Document Editor" msgstr "Belge Düzenleyici" -#: appObjects/FlatCAMExcellon.py:874 appObjects/FlatCAMExcellon.py:982 +#: appObjects/FlatCAMExcellon.py:880 appObjects/FlatCAMExcellon.py:988 #: appTools/ToolDrilling.py:1612 appTools/ToolMilling.py:1038 #: appTools/ToolMilling.py:1154 appTools/ToolMilling.py:1340 msgid "Please select one or more tools from the list and try again." msgstr "Lütfen listeden bir veya daha fazla araç seçin ve tekrar deneyin." -#: appObjects/FlatCAMExcellon.py:879 appTools/ToolMilling.py:1045 +#: appObjects/FlatCAMExcellon.py:885 appTools/ToolMilling.py:1045 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "Matkap ucu delik boyutundan daha büyüktür. İptal edildi." -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 #: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175 #: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195 msgid "Tool_nr" msgstr "Uç Numarası" -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 #: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175 #: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195 msgid "Drills_Nr" msgstr "Delik Sayısı" -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 #: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175 #: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195 msgid "Slots_Nr" msgstr "Yuva Sayısı" -#: appObjects/FlatCAMExcellon.py:991 appTools/ToolMilling.py:1163 +#: appObjects/FlatCAMExcellon.py:997 appTools/ToolMilling.py:1163 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "YUVA için matkap ucu delik boyutundan daha büyüktür. İptal edildi." @@ -13417,89 +13346,89 @@ msgstr "Ölçekleniyor ..." msgid "Skewing..." msgstr "Eğriltiliyor..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:155 +#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Boyutlar" -#: appObjects/FlatCAMObj.py:510 appTools/ToolProperties.py:198 +#: appObjects/FlatCAMObj.py:510 appTools/ToolProperties.py:195 msgid "Calculating dimensions ... Please wait." msgstr "Boyutlar hesaplanıyor ... Lütfen bekleyin." #: appObjects/FlatCAMObj.py:724 appObjects/FlatCAMObj.py:792 -#: appTools/ToolProperties.py:421 appTools/ToolProperties.py:489 +#: appTools/ToolProperties.py:418 appTools/ToolProperties.py:486 msgid "Drills number" msgstr "Delik Sayısı" #: appObjects/FlatCAMObj.py:725 appObjects/FlatCAMObj.py:794 -#: appTools/ToolProperties.py:422 appTools/ToolProperties.py:491 +#: appTools/ToolProperties.py:419 appTools/ToolProperties.py:488 msgid "Slots number" msgstr "Yuva Sayısı" -#: appObjects/FlatCAMObj.py:727 appTools/ToolProperties.py:424 +#: appObjects/FlatCAMObj.py:727 appTools/ToolProperties.py:421 msgid "Drills total number:" msgstr "Toplam Delik:" -#: appObjects/FlatCAMObj.py:728 appTools/ToolProperties.py:425 +#: appObjects/FlatCAMObj.py:728 appTools/ToolProperties.py:422 msgid "Slots total number:" msgstr "Toplam Yuva:" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 -#: appTools/ToolProperties.py:458 appTools/ToolProperties.py:486 -#: appTools/ToolProperties.py:493 appTools/ToolProperties.py:496 +#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 +#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 +#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 msgid "Present" msgstr "Mevcut" #: appObjects/FlatCAMObj.py:756 appObjects/FlatCAMObj.py:790 -#: appTools/ToolProperties.py:453 appTools/ToolProperties.py:487 +#: appTools/ToolProperties.py:450 appTools/ToolProperties.py:484 msgid "Solid Geometry" msgstr "Dolgulu Şekil" #: appObjects/FlatCAMObj.py:759 appObjects/FlatCAMObj.py:797 -#: appTools/ToolProperties.py:456 appTools/ToolProperties.py:494 +#: appTools/ToolProperties.py:453 appTools/ToolProperties.py:491 msgid "GCode Text" msgstr "G-Kod Metni" #: appObjects/FlatCAMObj.py:762 appObjects/FlatCAMObj.py:800 -#: appTools/ToolProperties.py:459 appTools/ToolProperties.py:497 +#: appTools/ToolProperties.py:456 appTools/ToolProperties.py:494 msgid "GCode Geometry" msgstr "G Kod Şekli" #: appObjects/FlatCAMObj.py:770 appObjects/FlatCAMObj.py:843 -#: appTools/ToolProperties.py:467 appTools/ToolProperties.py:540 +#: appTools/ToolProperties.py:464 appTools/ToolProperties.py:537 msgid "Tool Data" msgstr "Veriler" -#: appObjects/FlatCAMObj.py:807 appTools/ToolProperties.py:504 +#: appObjects/FlatCAMObj.py:807 appTools/ToolProperties.py:501 msgid "Depth of Cut" msgstr "Kesme Derinliği" -#: appObjects/FlatCAMObj.py:819 appTools/ToolProperties.py:516 +#: appObjects/FlatCAMObj.py:819 appTools/ToolProperties.py:513 msgid "Clearance Height" msgstr "Açıklık Yüksekliği" -#: appObjects/FlatCAMObj.py:857 appTools/ToolProperties.py:554 +#: appObjects/FlatCAMObj.py:857 appTools/ToolProperties.py:551 msgid "Routing time" msgstr "Dönme Süresi" -#: appObjects/FlatCAMObj.py:882 appTools/ToolProperties.py:579 +#: appObjects/FlatCAMObj.py:882 appTools/ToolProperties.py:576 msgid "Width" msgstr "Genişlik" #: appObjects/FlatCAMObj.py:888 appObjects/FlatCAMObj.py:896 -#: appTools/ToolProperties.py:585 appTools/ToolProperties.py:593 +#: appTools/ToolProperties.py:582 appTools/ToolProperties.py:590 msgid "Box Area" msgstr "Kutu Alanı" #: appObjects/FlatCAMObj.py:891 appObjects/FlatCAMObj.py:899 -#: appTools/ToolProperties.py:588 appTools/ToolProperties.py:596 +#: appTools/ToolProperties.py:585 appTools/ToolProperties.py:593 msgid "Convex_Hull Area" msgstr "Dışbükey Gövde Alanı" #: appObjects/FlatCAMObj.py:906 appObjects/FlatCAMObj.py:909 -#: appTools/ToolProperties.py:603 appTools/ToolProperties.py:606 +#: appTools/ToolProperties.py:600 appTools/ToolProperties.py:603 msgid "Copper Area" msgstr "Bakır Alan" @@ -13964,7 +13893,7 @@ msgstr "" "olduğunca) köşesinde olmalıdır." #: appTools/ToolCalibration.py:888 appTools/ToolImage.py:196 -#: appTools/ToolPanelize.py:676 appTools/ToolProperties.py:179 +#: appTools/ToolPanelize.py:676 appTools/ToolProperties.py:176 msgid "Object Type" msgstr "Nesne Türü" @@ -14314,7 +14243,7 @@ msgstr "Desen kaplama maskesi oluşturma işlemi tamamlandı." #: appTools/ToolCopperThieving.py:1112 msgid "Copper Thieving Tool exit." -msgstr "Bakır dolgu aracından çık." +msgstr "Bakır dolgu aracından çıkış." #: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 msgid "Gerber Object to which will be added a copper thieving." @@ -17123,48 +17052,48 @@ msgstr "" "Excellon dosyasını içe aktarın. \n" "Birinde genellikle .DRL, diğerinde .INF uzantısı vardır." -#: appTools/ToolProperties.py:115 appTools/ToolTransform.py:142 +#: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 #: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 #: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 #: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 msgid "No object selected." msgstr "Hiçbir nesne seçilmedi." -#: appTools/ToolProperties.py:130 +#: appTools/ToolProperties.py:127 msgid "Object Properties are displayed." msgstr "Nesne özellikleri görüntüleniyor." -#: appTools/ToolProperties.py:135 +#: appTools/ToolProperties.py:132 msgid "Properties Tool" msgstr "Özellikler" -#: appTools/ToolProperties.py:152 +#: appTools/ToolProperties.py:149 msgid "TYPE" msgstr "TİP" -#: appTools/ToolProperties.py:153 +#: appTools/ToolProperties.py:150 msgid "NAME" msgstr "İSİM" -#: appTools/ToolProperties.py:183 +#: appTools/ToolProperties.py:180 msgid "Geo Type" msgstr "Şekil Tipi" -#: appTools/ToolProperties.py:186 +#: appTools/ToolProperties.py:183 msgid "Single-Geo" msgstr "Tek Şekilli" -#: appTools/ToolProperties.py:187 +#: appTools/ToolProperties.py:184 msgid "Multi-Geo" msgstr "Çok Şekilli" -#: appTools/ToolProperties.py:341 appTools/ToolProperties.py:345 -#: appTools/ToolProperties.py:347 +#: appTools/ToolProperties.py:338 appTools/ToolProperties.py:342 +#: appTools/ToolProperties.py:344 msgid "Inch" msgstr "İnç" -#: appTools/ToolProperties.py:341 appTools/ToolProperties.py:346 -#: appTools/ToolProperties.py:348 +#: appTools/ToolProperties.py:338 appTools/ToolProperties.py:343 +#: appTools/ToolProperties.py:345 msgid "Metric" msgstr "Metrik" @@ -17510,10 +17439,8 @@ msgid "...processing..." msgstr "...işleniyor..." #: appTools/ToolShell.py:293 -#, fuzzy -#| msgid "FlatCAM Beta" msgid "FlatCAM Shell" -msgstr "FlatCAM Beta" +msgstr "" #: appTools/ToolSolderPaste.py:459 msgid "Please enter a tool diameter to add, in Float format." @@ -18101,7 +18028,7 @@ msgstr "" #: app_Main.py:2267 msgid "EDITOR Area" -msgstr "" +msgstr "DÜZENLEYİCİ Alanı" #: app_Main.py:2269 msgid "Editor is activated ..." @@ -19104,46 +19031,36 @@ msgid "Clear Recent files" msgstr "Listeyi Temizle" #: app_Main.py:9730 -#, fuzzy -#| msgid "FlatCAM.org" msgid "FlatCAM Evo" -msgstr "FlatCAM.org" +msgstr "" #: app_Main.py:9734 msgid "Release date" -msgstr "" +msgstr "Yayın Tarihi" #: app_Main.py:9738 msgid "Displayed" -msgstr "" +msgstr "Görüntülendi" #: app_Main.py:9741 -#, fuzzy -#| msgid "Snap Max" msgid "Snap" msgstr "Maksimum Yapışma" #: app_Main.py:9750 msgid "Canvas" -msgstr "" +msgstr "Çalışma Alanı" #: app_Main.py:9755 -#, fuzzy -#| msgid "Workspace Settings" msgid "Workspace active" -msgstr "Çalışma Alanı Ayarları" +msgstr "Çalışma alanı etkin" #: app_Main.py:9759 -#, fuzzy -#| msgid "Workspace disabled." msgid "Workspace size" -msgstr "Çalışma alanı devre dışı." +msgstr "Çalışma alanı boyutu" #: app_Main.py:9763 -#, fuzzy -#| msgid "Workspace Settings" msgid "Workspace orientation" -msgstr "Çalışma Alanı Ayarları" +msgstr "Çalışma alanı yönlendirmesi" #: app_Main.py:9826 msgid "Failed checking for latest version. Could not connect." diff --git a/locale_template/strings.pot b/locale_template/strings.pot index 558a4570..fe7904ba 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-23 18:46+0300\n" +"POT-Creation-Date: 2020-10-23 23:09+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -253,13 +253,13 @@ msgid "" msgstr "" #: appDatabase.py:220 appEditors/AppExcEditor.py:2567 appEditors/AppExcEditor.py:3732 -#: appGUI/ObjectUI.py:666 appObjects/FlatCAMExcellon.py:902 -#: appObjects/FlatCAMExcellon.py:1002 appObjects/FlatCAMObj.py:719 +#: appGUI/ObjectUI.py:666 appObjects/FlatCAMExcellon.py:908 +#: appObjects/FlatCAMExcellon.py:1008 appObjects/FlatCAMObj.py:719 #: appObjects/FlatCAMObj.py:782 appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 #: appTools/ToolDrilling.py:2065 appTools/ToolIsolation.py:3022 appTools/ToolMilling.py:1071 #: appTools/ToolMilling.py:1175 appTools/ToolMilling.py:1360 appTools/ToolMilling.py:1670 #: appTools/ToolNCC.py:3885 appTools/ToolPaint.py:2813 appTools/ToolPcbWizard.py:404 -#: appTools/ToolProperties.py:416 appTools/ToolProperties.py:479 +#: appTools/ToolProperties.py:413 appTools/ToolProperties.py:476 #: appTools/ToolSolderPaste.py:1166 tclCommands/TclCommandDrillcncjob.py:195 msgid "Diameter" msgstr "" @@ -1069,7 +1069,7 @@ msgstr "" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 #: appTools/ToolCutOut.py:2222 -msgid "The drill hole diameter when doing mpuse bites." +msgid "The drill hole diameter when doing mouse bites." msgstr "" #: appDatabase.py:1233 appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 @@ -1436,12 +1436,12 @@ msgstr "" msgid "Done. Drill(s) copied." msgstr "" -#: appEditors/AppExcEditor.py:1897 appObjects/FlatCAMExcellon.py:330 +#: appEditors/AppExcEditor.py:1897 appObjects/FlatCAMExcellon.py:333 #: appTools/ToolDrilling.py:571 appTools/ToolMilling.py:494 msgid "Total Drills" msgstr "" -#: appEditors/AppExcEditor.py:1929 appObjects/FlatCAMExcellon.py:364 +#: appEditors/AppExcEditor.py:1929 appObjects/FlatCAMExcellon.py:367 #: appTools/ToolDrilling.py:598 appTools/ToolMilling.py:521 msgid "Total Slots" msgstr "" @@ -1790,7 +1790,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 appObjects/FlatCAMObj.py:877 -#: appTools/ToolCorners.py:398 appTools/ToolProperties.py:574 +#: appTools/ToolCorners.py:398 appTools/ToolProperties.py:571 msgid "Length" msgstr "" @@ -1955,7 +1955,7 @@ msgid "Text Tool" msgstr "" #: appEditors/AppGeoEditor.py:404 appGUI/MainGUI.py:511 appGUI/MainGUI.py:1245 -#: appGUI/ObjectUI.py:1172 appObjects/FlatCAMExcellon.py:880 +#: appGUI/ObjectUI.py:1172 appObjects/FlatCAMExcellon.py:886 #: appObjects/FlatCAMGeometry.py:951 appTools/ToolDrilling.py:711 #: appTools/ToolDrilling.py:1033 appTools/ToolDrilling.py:2116 appTools/ToolIsolation.py:697 #: appTools/ToolIsolation.py:3166 appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 @@ -1997,7 +1997,7 @@ msgstr "" #: appEditors/AppGeoEditor.py:595 appEditors/AppGeoEditor.py:2984 #: appEditors/AppGeoEditor.py:3012 appEditors/AppGeoEditor.py:3040 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:71 appObjects/FlatCAMObj.py:495 -#: appTools/ToolProperties.py:116 appTools/ToolProperties.py:164 +#: appTools/ToolProperties.py:113 appTools/ToolProperties.py:161 msgid "Tools" msgstr "" @@ -2990,7 +2990,7 @@ msgid "Gerber Editor" msgstr "" #: appEditors/AppGerberEditor.py:2482 appGUI/ObjectUI.py:281 appObjects/FlatCAMObj.py:492 -#: appTools/ToolProperties.py:161 +#: appTools/ToolProperties.py:158 msgid "Apertures" msgstr "" @@ -3533,7 +3533,7 @@ msgstr "" #: appEditors/appGCodeEditor.py:703 appGUI/ObjectUI.py:666 appGUI/ObjectUI.py:2019 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 appObjects/FlatCAMObj.py:499 #: appTools/ToolDrilling.py:2065 appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1769 -#: appTools/ToolProperties.py:168 +#: appTools/ToolProperties.py:165 msgid "Drills" msgstr "" @@ -3541,7 +3541,7 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72 appObjects/FlatCAMObj.py:501 #: appTools/ToolDrilling.py:2065 appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1770 -#: appTools/ToolProperties.py:170 +#: appTools/ToolProperties.py:167 msgid "Slots" msgstr "" @@ -4009,7 +4009,7 @@ msgstr "" msgid "Preferences\tShift+P" msgstr "" -#: appGUI/MainGUI.py:423 appObjects/FlatCAMObj.py:488 appTools/ToolProperties.py:157 +#: appGUI/MainGUI.py:423 appObjects/FlatCAMObj.py:488 appTools/ToolProperties.py:154 msgid "Options" msgstr "" @@ -6530,7 +6530,7 @@ msgid "" "of a travel line." msgstr "" -#: appGUI/ObjectUI.py:1939 appObjects/FlatCAMObj.py:864 appTools/ToolProperties.py:561 +#: appGUI/ObjectUI.py:1939 appObjects/FlatCAMObj.py:864 appTools/ToolProperties.py:558 msgid "Travelled distance" msgstr "" @@ -6804,7 +6804,7 @@ msgstr "" #: appGUI/ObjectUI.py:2474 appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:185 #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:89 appObjects/FlatCAMObj.py:831 -#: appTools/ToolProperties.py:528 +#: appTools/ToolProperties.py:525 msgid "Feedrate" msgstr "" @@ -7433,7 +7433,7 @@ msgstr "" #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:42 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:82 appTools/ToolDistance.py:562 #: appTools/ToolDistanceMin.py:237 appTools/ToolPcbWizard.py:455 -#: appTools/ToolProperties.py:156 +#: appTools/ToolProperties.py:153 msgid "Units" msgstr "" @@ -8783,9 +8783,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 appObjects/FlatCAMObj.py:755 #: appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 appTools/ToolFiducials.py:815 -#: appTools/ToolFilm.py:1102 appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 -#: appTools/ToolProperties.py:458 appTools/ToolProperties.py:486 -#: appTools/ToolProperties.py:493 appTools/ToolProperties.py:496 +#: appTools/ToolFilm.py:1102 appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 +#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 +#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 msgid "None" msgstr "" @@ -9372,7 +9372,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 appObjects/FlatCAMObj.py:505 #: appTools/ToolExtractDrills.py:502 appTools/ToolExtractDrills.py:645 -#: appTools/ToolProperties.py:174 appTools/ToolPunchGerber.py:778 +#: appTools/ToolProperties.py:171 appTools/ToolPunchGerber.py:778 #: appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "" @@ -11311,38 +11311,38 @@ msgstr "" msgid "Document Editor" msgstr "" -#: appObjects/FlatCAMExcellon.py:874 appObjects/FlatCAMExcellon.py:982 +#: appObjects/FlatCAMExcellon.py:880 appObjects/FlatCAMExcellon.py:988 #: appTools/ToolDrilling.py:1612 appTools/ToolMilling.py:1038 appTools/ToolMilling.py:1154 #: appTools/ToolMilling.py:1340 msgid "Please select one or more tools from the list and try again." msgstr "" -#: appObjects/FlatCAMExcellon.py:879 appTools/ToolMilling.py:1045 +#: appObjects/FlatCAMExcellon.py:885 appTools/ToolMilling.py:1045 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 appTools/ToolMilling.py:1071 #: appTools/ToolMilling.py:1175 appTools/ToolMilling.py:1360 #: tclCommands/TclCommandDrillcncjob.py:195 msgid "Tool_nr" msgstr "" -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 appTools/ToolMilling.py:1071 #: appTools/ToolMilling.py:1175 appTools/ToolMilling.py:1360 #: tclCommands/TclCommandDrillcncjob.py:195 msgid "Drills_Nr" msgstr "" -#: appObjects/FlatCAMExcellon.py:902 appObjects/FlatCAMExcellon.py:1002 +#: appObjects/FlatCAMExcellon.py:908 appObjects/FlatCAMExcellon.py:1008 #: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827 appTools/ToolMilling.py:1071 #: appTools/ToolMilling.py:1175 appTools/ToolMilling.py:1360 #: tclCommands/TclCommandDrillcncjob.py:195 msgid "Slots_Nr" msgstr "" -#: appObjects/FlatCAMExcellon.py:991 appTools/ToolMilling.py:1163 +#: appObjects/FlatCAMExcellon.py:997 appTools/ToolMilling.py:1163 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" @@ -11566,88 +11566,88 @@ msgstr "" msgid "Skewing..." msgstr "" -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:155 +#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "" -#: appObjects/FlatCAMObj.py:510 appTools/ToolProperties.py:198 +#: appObjects/FlatCAMObj.py:510 appTools/ToolProperties.py:195 msgid "Calculating dimensions ... Please wait." msgstr "" -#: appObjects/FlatCAMObj.py:724 appObjects/FlatCAMObj.py:792 appTools/ToolProperties.py:421 -#: appTools/ToolProperties.py:489 +#: appObjects/FlatCAMObj.py:724 appObjects/FlatCAMObj.py:792 appTools/ToolProperties.py:418 +#: appTools/ToolProperties.py:486 msgid "Drills number" msgstr "" -#: appObjects/FlatCAMObj.py:725 appObjects/FlatCAMObj.py:794 appTools/ToolProperties.py:422 -#: appTools/ToolProperties.py:491 +#: appObjects/FlatCAMObj.py:725 appObjects/FlatCAMObj.py:794 appTools/ToolProperties.py:419 +#: appTools/ToolProperties.py:488 msgid "Slots number" msgstr "" -#: appObjects/FlatCAMObj.py:727 appTools/ToolProperties.py:424 +#: appObjects/FlatCAMObj.py:727 appTools/ToolProperties.py:421 msgid "Drills total number:" msgstr "" -#: appObjects/FlatCAMObj.py:728 appTools/ToolProperties.py:425 +#: appObjects/FlatCAMObj.py:728 appTools/ToolProperties.py:422 msgid "Slots total number:" msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:761 #: appObjects/FlatCAMObj.py:789 appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 -#: appTools/ToolProperties.py:458 appTools/ToolProperties.py:486 -#: appTools/ToolProperties.py:493 appTools/ToolProperties.py:496 +#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 +#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 +#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 msgid "Present" msgstr "" -#: appObjects/FlatCAMObj.py:756 appObjects/FlatCAMObj.py:790 appTools/ToolProperties.py:453 -#: appTools/ToolProperties.py:487 +#: appObjects/FlatCAMObj.py:756 appObjects/FlatCAMObj.py:790 appTools/ToolProperties.py:450 +#: appTools/ToolProperties.py:484 msgid "Solid Geometry" msgstr "" -#: appObjects/FlatCAMObj.py:759 appObjects/FlatCAMObj.py:797 appTools/ToolProperties.py:456 -#: appTools/ToolProperties.py:494 +#: appObjects/FlatCAMObj.py:759 appObjects/FlatCAMObj.py:797 appTools/ToolProperties.py:453 +#: appTools/ToolProperties.py:491 msgid "GCode Text" msgstr "" -#: appObjects/FlatCAMObj.py:762 appObjects/FlatCAMObj.py:800 appTools/ToolProperties.py:459 -#: appTools/ToolProperties.py:497 +#: appObjects/FlatCAMObj.py:762 appObjects/FlatCAMObj.py:800 appTools/ToolProperties.py:456 +#: appTools/ToolProperties.py:494 msgid "GCode Geometry" msgstr "" -#: appObjects/FlatCAMObj.py:770 appObjects/FlatCAMObj.py:843 appTools/ToolProperties.py:467 -#: appTools/ToolProperties.py:540 +#: appObjects/FlatCAMObj.py:770 appObjects/FlatCAMObj.py:843 appTools/ToolProperties.py:464 +#: appTools/ToolProperties.py:537 msgid "Tool Data" msgstr "" -#: appObjects/FlatCAMObj.py:807 appTools/ToolProperties.py:504 +#: appObjects/FlatCAMObj.py:807 appTools/ToolProperties.py:501 msgid "Depth of Cut" msgstr "" -#: appObjects/FlatCAMObj.py:819 appTools/ToolProperties.py:516 +#: appObjects/FlatCAMObj.py:819 appTools/ToolProperties.py:513 msgid "Clearance Height" msgstr "" -#: appObjects/FlatCAMObj.py:857 appTools/ToolProperties.py:554 +#: appObjects/FlatCAMObj.py:857 appTools/ToolProperties.py:551 msgid "Routing time" msgstr "" -#: appObjects/FlatCAMObj.py:882 appTools/ToolProperties.py:579 +#: appObjects/FlatCAMObj.py:882 appTools/ToolProperties.py:576 msgid "Width" msgstr "" -#: appObjects/FlatCAMObj.py:888 appObjects/FlatCAMObj.py:896 appTools/ToolProperties.py:585 -#: appTools/ToolProperties.py:593 +#: appObjects/FlatCAMObj.py:888 appObjects/FlatCAMObj.py:896 appTools/ToolProperties.py:582 +#: appTools/ToolProperties.py:590 msgid "Box Area" msgstr "" -#: appObjects/FlatCAMObj.py:891 appObjects/FlatCAMObj.py:899 appTools/ToolProperties.py:588 -#: appTools/ToolProperties.py:596 +#: appObjects/FlatCAMObj.py:891 appObjects/FlatCAMObj.py:899 appTools/ToolProperties.py:585 +#: appTools/ToolProperties.py:593 msgid "Convex_Hull Area" msgstr "" -#: appObjects/FlatCAMObj.py:906 appObjects/FlatCAMObj.py:909 appTools/ToolProperties.py:603 -#: appTools/ToolProperties.py:606 +#: appObjects/FlatCAMObj.py:906 appObjects/FlatCAMObj.py:909 appTools/ToolProperties.py:600 +#: appTools/ToolProperties.py:603 msgid "Copper Area" msgstr "" @@ -12062,7 +12062,7 @@ msgid "" msgstr "" #: appTools/ToolCalibration.py:888 appTools/ToolImage.py:196 appTools/ToolPanelize.py:676 -#: appTools/ToolProperties.py:179 +#: appTools/ToolProperties.py:176 msgid "Object Type" msgstr "" @@ -14731,47 +14731,47 @@ msgid "" "the other has .INF extension." msgstr "" -#: appTools/ToolProperties.py:115 appTools/ToolTransform.py:142 app_Main.py:4976 +#: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 app_Main.py:4976 #: app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 app_Main.py:7503 app_Main.py:7545 #: app_Main.py:7587 app_Main.py:7631 app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 msgid "No object selected." msgstr "" -#: appTools/ToolProperties.py:130 +#: appTools/ToolProperties.py:127 msgid "Object Properties are displayed." msgstr "" -#: appTools/ToolProperties.py:135 +#: appTools/ToolProperties.py:132 msgid "Properties Tool" msgstr "" -#: appTools/ToolProperties.py:152 +#: appTools/ToolProperties.py:149 msgid "TYPE" msgstr "" -#: appTools/ToolProperties.py:153 +#: appTools/ToolProperties.py:150 msgid "NAME" msgstr "" -#: appTools/ToolProperties.py:183 +#: appTools/ToolProperties.py:180 msgid "Geo Type" msgstr "" -#: appTools/ToolProperties.py:186 +#: appTools/ToolProperties.py:183 msgid "Single-Geo" msgstr "" -#: appTools/ToolProperties.py:187 +#: appTools/ToolProperties.py:184 msgid "Multi-Geo" msgstr "" -#: appTools/ToolProperties.py:341 appTools/ToolProperties.py:345 -#: appTools/ToolProperties.py:347 +#: appTools/ToolProperties.py:338 appTools/ToolProperties.py:342 +#: appTools/ToolProperties.py:344 msgid "Inch" msgstr "" -#: appTools/ToolProperties.py:341 appTools/ToolProperties.py:346 -#: appTools/ToolProperties.py:348 +#: appTools/ToolProperties.py:338 appTools/ToolProperties.py:343 +#: appTools/ToolProperties.py:345 msgid "Metric" msgstr "" diff --git a/tclCommands/TclCommandCopperClear.py b/tclCommands/TclCommandCopperClear.py index 15553036..f8701c7a 100644 --- a/tclCommands/TclCommandCopperClear.py +++ b/tclCommands/TclCommandCopperClear.py @@ -223,7 +223,7 @@ class TclCommandCopperClear(TclCommand): "area_strategy": self.app.defaults["geometry_area_strategy"], "area_overz": float(self.app.defaults["geometry_area_overz"]), - "tooldia": self.app.defaults["tools_painttooldia"], + "tooldia": self.app.defaults["tools_paint_tooldia"], "tools_ncc_operation": self.app.defaults["tools_ncc_operation"], "tools_ncc_margin": margin, diff --git a/tclCommands/TclCommandPaint.py b/tclCommands/TclCommandPaint.py index 660c872d..4b4fef81 100644 --- a/tclCommands/TclCommandPaint.py +++ b/tclCommands/TclCommandPaint.py @@ -102,22 +102,22 @@ class TclCommandPaint(TclCommand): if 'tooldia' in args: tooldia = str(args['tooldia']) else: - tooldia = float(self.app.defaults["tools_paintoverlap"]) + tooldia = float(self.app.defaults["tools_paint_overlap"]) if 'overlap' in args: overlap = float(args['overlap']) / 100.0 else: - overlap = float(self.app.defaults["tools_paintoverlap"]) / 100.0 + overlap = float(self.app.defaults["tools_paint_overlap"]) / 100.0 if 'order' in args: order = args['order'] else: - order = str(self.app.defaults["tools_paintorder"]) + order = str(self.app.defaults["tools_paint_order"]) if 'offset' in args: offset = float(args['offset']) else: - offset = float(self.app.defaults["tools_paintoffset"]) + offset = float(self.app.defaults["tools_paint_offset"]) if 'method' in args: method = args['method'] @@ -132,7 +132,7 @@ class TclCommandPaint(TclCommand): else: method = _("Combo") else: - method = str(self.app.defaults["tools_paintmethod"]) + method = str(self.app.defaults["tools_paint_method"]) if 'connect' in args: try: @@ -141,7 +141,7 @@ class TclCommandPaint(TclCommand): par = args['connect'] connect = bool(eval(par)) else: - connect = bool(eval(str(self.app.defaults["tools_pathconnect"]))) + connect = bool(eval(str(self.app.defaults["tools_paint_connect"]))) if 'contour' in args: try: @@ -150,7 +150,7 @@ class TclCommandPaint(TclCommand): par = args['contour'] contour = bool(eval(par)) else: - contour = bool(eval(str(self.app.defaults["tools_paintcontour"]))) + contour = bool(eval(str(self.app.defaults["tools_paint_contour"]))) if 'outname' in args: outname = args['outname'] @@ -175,8 +175,8 @@ class TclCommandPaint(TclCommand): "name": outname, "plot": False, "cutz": self.app.defaults["geometry_cutz"], - "vtipdia": float(self.app.defaults["tools_painttipdia"]), - "vtipangle": float(self.app.defaults["tools_painttipangle"]), + "vtipdia": float(self.app.defaults["tools_paint_tipdia"]), + "vtipangle": float(self.app.defaults["tools_paint_tipangle"]), "travelz": self.app.defaults["geometry_travelz"], "feedrate": self.app.defaults["geometry_feedrate"], "feedrate_z": self.app.defaults["geometry_feedrate_z"], @@ -202,13 +202,13 @@ class TclCommandPaint(TclCommand): "area_strategy": self.app.defaults["geometry_area_strategy"], "area_overz": float(self.app.defaults["geometry_area_overz"]), - "tooldia": self.app.defaults["tools_painttooldia"], - "tools_paintoffset": offset, - "tools_paintmethod": method, - "tools_selectmethod": select, - "tools_pathconnect": connect, - "tools_paintcontour": contour, - "tools_paintoverlap": overlap + "tooldia": self.app.defaults["tools_paint_tooldia"], + "tools_paint_offset": offset, + "tools_paint_method": method, + "tools_paint_selectmethod": select, + "tools_paint_connect": connect, + "tools_paint_contour": contour, + "tools_paint_overlap": overlap }) paint_tools = {}