- Levelling Tool: added parameter (in Preferences too) to control the probe tip diameter which is reflected in the probing location mark diameter

- Levelling Tool: when adding a Grid probing and the avoidance of Excellon is used, now the probing locations will be offset enough so the probing is not done in the Excellon holes
This commit is contained in:
Marius Stanciu
2023-11-25 18:43:14 +02:00
parent 6b4483044b
commit 89dd51ff99
7 changed files with 179 additions and 51 deletions

View File

@@ -22,6 +22,7 @@ import logging
import html
import sys
import inspect
from typing import Callable
import gettext
import appTranslation as fcTranslate
@@ -1434,11 +1435,12 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox):
def __init__(self, suffix=None, alignment=None, parent=None, callback=None, policy=True):
"""
:param suffix: a char added to the end of the value in the LineEdit; like a '%' or '$' etc
:param alignment: the value is aligned to left or right
:param parent:
:param callback: called when the entered value is outside limits; the min and max value will be passed to it
:param policy: by default the widget will not compact as much as possible on horizontal
:param suffix: str, a char added to the end of the value in the LineEdit; like a '%' or '$' etc.
:param alignment: str, 'left' or 'right', defines if the value is aligned to left or right
:param parent: QWidget, parent widget
:param callback: Callable, called when the entered value is outside limits;
the min and max value will be passed to it
:param policy: QtGui.QSizePolicy, by default the widget will not compact as much as possible on horizontal
"""
super(FCDoubleSpinner, self).__init__(parent)
self.cursor_pos = None

View File

@@ -400,11 +400,13 @@ class PreferencesUIManager(QtCore.QObject):
"tools_mill_milling_connect": self.ui.plugin_pref_form.tools_mill_group.connect_cb,
# Autolevelling Tool
"tools_al_avoid_exc_holes_size": self.ui.plugin_eng_pref_form.tools_level_group.avoid_exc_holes_size_entry,
"tools_al_mode": self.ui.plugin_eng_pref_form.tools_level_group.al_mode_radio,
"tools_al_method": self.ui.plugin_eng_pref_form.tools_level_group.al_method_radio,
"tools_al_rows": self.ui.plugin_eng_pref_form.tools_level_group.al_rows_entry,
"tools_al_columns": self.ui.plugin_eng_pref_form.tools_level_group.al_columns_entry,
"tools_al_travelz": self.ui.plugin_eng_pref_form.tools_level_group.ptravelz_entry,
"tools_al_travel_z": self.ui.plugin_eng_pref_form.tools_level_group.ptravelz_entry,
"tools_al_probe_tip_dia": self.ui.plugin_eng_pref_form.tools_level_group.probe_tip_dia_entry,
"tools_al_probe_depth": self.ui.plugin_eng_pref_form.tools_level_group.pdepth_entry,
"tools_al_probe_fr": self.ui.plugin_eng_pref_form.tools_level_group.feedrate_probe_entry,
"tools_al_controller": self.ui.plugin_eng_pref_form.tools_level_group.al_controller_combo,

View File

@@ -49,8 +49,8 @@ class ToolsLevelPrefGroupUI(OptionsGroupUI):
{'label': _('Manual'), 'value': 'manual'},
{'label': _('Grid'), 'value': 'grid'}
])
par_grid.addWidget(al_mode_lbl, 8, 0)
par_grid.addWidget(self.al_mode_radio, 8, 1)
par_grid.addWidget(al_mode_lbl, 0, 0)
par_grid.addWidget(self.al_mode_radio, 0, 1)
# AUTOLEVELL METHOD
self.al_method_lbl = FCLabel('%s:' % _("Method"))
@@ -63,8 +63,21 @@ class ToolsLevelPrefGroupUI(OptionsGroupUI):
{'label': _('Voronoi'), 'value': 'v'},
{'label': _('Bilinear'), 'value': 'b'}
])
par_grid.addWidget(self.al_method_lbl, 9, 0)
par_grid.addWidget(self.al_method_radio, 9, 1)
par_grid.addWidget(self.al_method_lbl, 2, 0)
par_grid.addWidget(self.al_method_radio, 2, 1)
# Avoid Excellon holes Size
self.avoid_exc_holes_size_label = FCLabel('%s:' % _("Avoid Step"))
self.avoid_exc_holes_size_label.setToolTip(
_("The incremental size to move to the side, to avoid an Excellon hole.")
)
self.avoid_exc_holes_size_entry = FCDoubleSpinner()
self.avoid_exc_holes_size_entry.set_precision(self.decimals)
self.avoid_exc_holes_size_entry.set_range(0.0000, 99999.0000)
par_grid.addWidget(self.avoid_exc_holes_size_label, 4, 0)
par_grid.addWidget(self.avoid_exc_holes_size_entry, 4, 1)
# ## Columns
self.al_columns_entry = FCSpinner()
@@ -73,8 +86,8 @@ class ToolsLevelPrefGroupUI(OptionsGroupUI):
self.al_columns_label.setToolTip(
_("The number of grid columns.")
)
par_grid.addWidget(self.al_columns_label, 10, 0)
par_grid.addWidget(self.al_columns_entry, 10, 1)
par_grid.addWidget(self.al_columns_label, 6, 0)
par_grid.addWidget(self.al_columns_entry, 6, 1)
# ## Rows
self.al_rows_entry = FCSpinner()
@@ -83,8 +96,20 @@ class ToolsLevelPrefGroupUI(OptionsGroupUI):
self.al_rows_label.setToolTip(
_("The number of grid rows.")
)
par_grid.addWidget(self.al_rows_label, 12, 0)
par_grid.addWidget(self.al_rows_entry, 12, 1)
par_grid.addWidget(self.al_rows_label, 8, 0)
par_grid.addWidget(self.al_rows_entry, 8, 1)
# Probe Diameter
self.probe_tip_dia_label = FCLabel('%s:' % _("Probe Tip Dia"))
self.probe_tip_dia_label.setToolTip(
_("The probe tip diameter.")
)
self.probe_tip_dia_entry = FCDoubleSpinner()
self.probe_tip_dia_entry.set_precision(self.decimals)
self.probe_tip_dia_entry.set_range(0.0000, 10.0000)
par_grid.addWidget(self.probe_tip_dia_label, 10, 0)
par_grid.addWidget(self.probe_tip_dia_entry, 10, 1)
# Travel Z Probe
self.ptravelz_label = FCLabel('%s:' % _("Probe Z travel"))