- working on the Calibrate Excellon Tool

- converted Excellon Editor to usage of SpinBoxes
This commit is contained in:
Marius Stanciu
2019-10-28 23:14:40 +02:00
committed by Marius
parent a88c64fb84
commit 120e866a01
4 changed files with 194 additions and 32 deletions

View File

@@ -9,7 +9,7 @@ from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt, QSettings
from camlib import distance, arc, FlatCAMRTreeStorage
from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, LengthEntry, RadioSet, SpinBoxDelegate
from flatcamGUI.GUIElements import FCEntry, FCComboBox, FCTable, FCDoubleSpinner, RadioSet, FCSpinner
from flatcamEditors.FlatCAMGeoEditor import FCShapeTool, DrawTool, DrawToolShape, DrawToolUtilityShape, FlatCAMGeoEditor
from flatcamParsers.ParseExcellon import Excellon
import FlatCAMApp
@@ -1445,6 +1445,9 @@ class FlatCAMExcEditor(QtCore.QObject):
self.app = app
self.canvas = self.app.plotcanvas
# Number of decimals used by tools in this class
self.decimals = 4
# ## Current application units in Upper Case
self.units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper()
@@ -1518,6 +1521,8 @@ class FlatCAMExcEditor(QtCore.QObject):
grid1 = QtWidgets.QGridLayout()
self.tools_box.addLayout(grid1)
grid1.setColumnStretch(0, 0)
grid1.setColumnStretch(1, 1)
addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia'))
addtool_entry_lbl.setToolTip(
@@ -1525,8 +1530,10 @@ class FlatCAMExcEditor(QtCore.QObject):
)
hlay = QtWidgets.QHBoxLayout()
self.addtool_entry = FCEntry()
self.addtool_entry.setValidator(QtGui.QDoubleValidator(0.0001, 99.9999, 4))
self.addtool_entry = FCDoubleSpinner()
self.addtool_entry.set_precision(self.decimals)
self.addtool_entry.set_range(0.0000, 9999.9999)
hlay.addWidget(self.addtool_entry)
self.addtool_btn = QtWidgets.QPushButton(_('Add Tool'))
@@ -1579,7 +1586,10 @@ class FlatCAMExcEditor(QtCore.QObject):
grid3.addWidget(res_entry_lbl, 0, 0)
hlay2 = QtWidgets.QHBoxLayout()
self.resdrill_entry = LengthEntry()
self.resdrill_entry = FCDoubleSpinner()
self.resdrill_entry.set_precision(self.decimals)
self.resdrill_entry.set_range(0.0000, 9999.9999)
hlay2.addWidget(self.resdrill_entry)
self.resize_btn = QtWidgets.QPushButton(_('Resize'))
@@ -1633,7 +1643,8 @@ class FlatCAMExcEditor(QtCore.QObject):
self.drill_array_size_label.setToolTip(_("Specify how many drills to be in the array."))
self.drill_array_size_label.setMinimumWidth(100)
self.drill_array_size_entry = LengthEntry()
self.drill_array_size_entry = FCSpinner()
self.drill_array_size_entry.set_range(1, 9999)
self.array_form.addRow(self.drill_array_size_label, self.drill_array_size_entry)
self.array_linear_frame = QtWidgets.QFrame()
@@ -1668,7 +1679,10 @@ class FlatCAMExcEditor(QtCore.QObject):
)
self.drill_pitch_label.setMinimumWidth(100)
self.drill_pitch_entry = LengthEntry()
self.drill_pitch_entry = FCDoubleSpinner()
self.drill_pitch_entry.set_precision(self.decimals)
self.drill_pitch_entry.set_range(0.0000, 9999.9999)
self.linear_form.addRow(self.drill_pitch_label, self.drill_pitch_entry)
# Linear Drill Array angle
@@ -1676,15 +1690,15 @@ class FlatCAMExcEditor(QtCore.QObject):
self.linear_angle_label.setToolTip(
_("Angle at which the linear array is placed.\n"
"The precision is of max 2 decimals.\n"
"Min value is: -359.99 degrees.\n"
"Min value is: -360 degrees.\n"
"Max value is: 360.00 degrees.")
)
self.linear_angle_label.setMinimumWidth(100)
self.linear_angle_spinner = FCDoubleSpinner()
self.linear_angle_spinner.set_precision(2)
self.linear_angle_spinner.set_precision(self.decimals)
self.linear_angle_spinner.setSingleStep(1.0)
self.linear_angle_spinner.setRange(-359.99, 360.00)
self.linear_angle_spinner.setRange(-360.00, 360.00)
self.linear_form.addRow(self.linear_angle_label, self.linear_angle_spinner)
self.array_circular_frame = QtWidgets.QFrame()
@@ -1710,7 +1724,11 @@ class FlatCAMExcEditor(QtCore.QObject):
self.drill_angle_label.setToolTip(_("Angle at which each element in circular array is placed."))
self.drill_angle_label.setMinimumWidth(100)
self.drill_angle_entry = LengthEntry()
self.drill_angle_entry = FCDoubleSpinner()
self.drill_angle_entry.set_precision(self.decimals)
self.drill_angle_entry.setSingleStep(1.0)
self.drill_angle_entry.setRange(-360.00, 360.00)
self.circular_form.addRow(self.drill_angle_label, self.drill_angle_entry)
self.array_circular_frame.hide()
@@ -1754,7 +1772,11 @@ class FlatCAMExcEditor(QtCore.QObject):
)
self.slot_length_label.setMinimumWidth(100)
self.slot_length_entry = LengthEntry()
self.slot_length_entry = FCDoubleSpinner()
self.slot_length_entry.set_precision(self.decimals)
self.slot_length_entry.setSingleStep(0.1)
self.slot_length_entry.setRange(0.0000, 9999.9999)
self.slot_form.addRow(self.slot_length_label, self.slot_length_entry)
# Slot direction
@@ -1777,15 +1799,15 @@ class FlatCAMExcEditor(QtCore.QObject):
self.slot_angle_label.setToolTip(
_("Angle at which the slot is placed.\n"
"The precision is of max 2 decimals.\n"
"Min value is: -359.99 degrees.\n"
"Min value is: -360 degrees.\n"
"Max value is: 360.00 degrees.")
)
self.slot_angle_label.setMinimumWidth(100)
self.slot_angle_spinner = FCDoubleSpinner()
self.slot_angle_spinner.set_precision(2)
self.slot_angle_spinner.set_precision(self.decimals)
self.slot_angle_spinner.setWrapping(True)
self.slot_angle_spinner.setRange(-359.99, 360.00)
self.slot_angle_spinner.setRange(-360.00, 360.00)
self.slot_angle_spinner.setSingleStep(1.0)
self.slot_form.addRow(self.slot_angle_label, self.slot_angle_spinner)
@@ -1835,7 +1857,9 @@ class FlatCAMExcEditor(QtCore.QObject):
self.slot_array_size_label.setToolTip(_("Specify how many slots to be in the array."))
self.slot_array_size_label.setMinimumWidth(100)
self.slot_array_size_entry = LengthEntry()
self.slot_array_size_entry = FCSpinner()
self.slot_array_size_entry.set_range(0, 9999)
self.slot_array_form.addRow(self.slot_array_size_label, self.slot_array_size_entry)
self.slot_array_linear_frame = QtWidgets.QFrame()
@@ -1870,7 +1894,11 @@ class FlatCAMExcEditor(QtCore.QObject):
)
self.slot_array_pitch_label.setMinimumWidth(100)
self.slot_array_pitch_entry = LengthEntry()
self.slot_array_pitch_entry = FCDoubleSpinner()
self.slot_array_pitch_entry.set_precision(self.decimals)
self.slot_array_pitch_entry.setSingleStep(0.1)
self.slot_array_pitch_entry.setRange(0.0000, 9999.9999)
self.slot_array_linear_form.addRow(self.slot_array_pitch_label, self.slot_array_pitch_entry)
# Linear Slot Array angle
@@ -1878,15 +1906,15 @@ class FlatCAMExcEditor(QtCore.QObject):
self.slot_array_linear_angle_label.setToolTip(
_("Angle at which the linear array is placed.\n"
"The precision is of max 2 decimals.\n"
"Min value is: -359.99 degrees.\n"
"Min value is: -360 degrees.\n"
"Max value is: 360.00 degrees.")
)
self.slot_array_linear_angle_label.setMinimumWidth(100)
self.slot_array_linear_angle_spinner = FCDoubleSpinner()
self.slot_array_linear_angle_spinner.set_precision(2)
self.slot_array_linear_angle_spinner.set_precision(self.decimals)
self.slot_array_linear_angle_spinner.setSingleStep(1.0)
self.slot_array_linear_angle_spinner.setRange(-359.99, 360.00)
self.slot_array_linear_angle_spinner.setRange(-360.00, 360.00)
self.slot_array_linear_form.addRow(self.slot_array_linear_angle_label, self.slot_array_linear_angle_spinner)
self.slot_array_circular_frame = QtWidgets.QFrame()
@@ -1912,7 +1940,11 @@ class FlatCAMExcEditor(QtCore.QObject):
self.slot_array_angle_label.setToolTip(_("Angle at which each element in circular array is placed."))
self.slot_array_angle_label.setMinimumWidth(100)
self.slot_array_angle_entry = LengthEntry()
self.slot_array_angle_entry = FCDoubleSpinner()
self.slot_array_angle_entry.set_precision(self.decimals)
self.slot_array_angle_entry.setSingleStep(1)
self.slot_array_angle_entry.setRange(-360.00, 360.00)
self.slot_array_circular_form.addRow(self.slot_array_angle_label, self.slot_array_angle_entry)
self.slot_array_linear_angle_spinner.hide()
@@ -2050,9 +2082,6 @@ class FlatCAMExcEditor(QtCore.QObject):
self.complete = False
# Number of decimals used by tools in this class
self.decimals = 4
def make_callback(thetool):
def f():
self.on_tool_select(thetool)