- in CNCJob UI added GUI for an eventual Autolevelling feature
This commit is contained in:
parent
6af295358d
commit
fff0d6efc1
|
@ -7,6 +7,10 @@ CHANGELOG for FlatCAM beta
|
|||
|
||||
=================================================
|
||||
|
||||
13.08.2020
|
||||
|
||||
- in CNCJob UI added GUI for an eventual Autolevelling feature
|
||||
|
||||
11.08.2020
|
||||
|
||||
- CutOut Tool - finished handler for gaps thickness control for the free form cutout
|
||||
|
|
|
@ -1897,6 +1897,103 @@ class CNCObjectUI(ObjectUI):
|
|||
)
|
||||
self.custom_box.addWidget(self.snippets_cb)
|
||||
|
||||
# Autolevelling
|
||||
self.sal_cb = FCCheckBox(_("Autolevelling"))
|
||||
self.sal_cb.setToolTip(
|
||||
_("Enable the autolevelling feature.")
|
||||
)
|
||||
self.custom_box.addWidget(self.sal_cb)
|
||||
|
||||
self.al_frame = QtWidgets.QFrame()
|
||||
self.al_frame.setContentsMargins(0, 0, 0, 0)
|
||||
self.custom_box.addWidget(self.al_frame)
|
||||
|
||||
self.al_box = QtWidgets.QVBoxLayout()
|
||||
self.al_box.setContentsMargins(0, 0, 0, 0)
|
||||
self.al_frame.setLayout(self.al_box)
|
||||
|
||||
grid0 = QtWidgets.QGridLayout()
|
||||
grid0.setColumnStretch(0, 0)
|
||||
grid0.setColumnStretch(1, 1)
|
||||
self.al_box.addLayout(grid0)
|
||||
|
||||
al_title = FCLabel('<b>%s</b>' % _("Test Points Table"))
|
||||
al_title.setToolTip(_("Generate GCode that will obtain the height map"))
|
||||
grid0.addWidget(al_title, 0, 0, 1, 2)
|
||||
|
||||
self.al_testpoints_table = FCTable()
|
||||
self.al_testpoints_table.setColumnCount(3)
|
||||
self.al_testpoints_table.setColumnWidth(0, 20)
|
||||
self.al_testpoints_table.setHorizontalHeaderLabels(['#', _('X-Y Coordinates'), _('Height')])
|
||||
|
||||
grid0.addWidget(self.al_testpoints_table, 1, 0, 1, 2)
|
||||
|
||||
separator_line = QtWidgets.QFrame()
|
||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
grid0.addWidget(separator_line, 2, 0, 1, 2)
|
||||
|
||||
al_mode_lbl = FCLabel('<b>%s</b>:' % _("Mode"))
|
||||
al_mode_lbl.setToolTip(_("Choose a mode for height map generation.\n"
|
||||
"- Manual: will pick a selection of test points by clicking on canvas\n"
|
||||
"- Grid: will automatically generate a grid of test points"))
|
||||
|
||||
self.al_mode_radio = RadioSet(
|
||||
[
|
||||
{'label': _('Manual'), 'value': 'manual'},
|
||||
{'label': _('Grid'), 'value': 'grid'}
|
||||
])
|
||||
grid0.addWidget(al_mode_lbl, 3, 0)
|
||||
grid0.addWidget(self.al_mode_radio, 3, 1)
|
||||
|
||||
self.al_manual_button = FCButton(_("Add testpoints"))
|
||||
grid0.addWidget(self.al_manual_button, 4, 0, 1, 2)
|
||||
|
||||
# ## Spacing Columns
|
||||
self.al_spacing_columns = FCDoubleSpinner()
|
||||
self.al_spacing_columns.set_range(0.000001, 9999.9999)
|
||||
self.al_spacing_columns.set_precision(self.decimals)
|
||||
self.al_spacing_columns.setSingleStep(0.1)
|
||||
|
||||
self.al_spacing_columns_label = QtWidgets.QLabel('%s:' % _("Spacing cols"))
|
||||
self.al_spacing_columns_label.setToolTip(
|
||||
_("Spacing between columns of the grid.\n"
|
||||
"In current units.")
|
||||
)
|
||||
grid0.addWidget(self.al_spacing_columns_label, 5, 0)
|
||||
grid0.addWidget(self.al_spacing_columns, 5, 1)
|
||||
|
||||
# ## Spacing Rows
|
||||
self.al_spacing_rows = FCDoubleSpinner()
|
||||
self.al_spacing_rows.set_range(0.000001, 9999.9999)
|
||||
self.al_spacing_rows.set_precision(self.decimals)
|
||||
self.al_spacing_rows.setSingleStep(0.1)
|
||||
|
||||
self.al_spacing_rows_label = QtWidgets.QLabel('%s:' % _("Spacing rows"))
|
||||
self.al_spacing_rows_label.setToolTip(
|
||||
_("Spacing between rows of the grid.\n"
|
||||
"In current units.")
|
||||
)
|
||||
grid0.addWidget(self.al_spacing_rows_label, 6, 0)
|
||||
grid0.addWidget(self.al_spacing_rows, 6, 1)
|
||||
|
||||
self.h_gcode_button = FCButton(_("Generate Height Map GCode"))
|
||||
grid0.addWidget(self.h_gcode_button, 7, 0, 1, 2)
|
||||
|
||||
self.voronoi_cb = FCCheckBox(_("Show Voronoi diagram"))
|
||||
self.voronoi_cb.setToolTip(
|
||||
_("Display Voronoi diagram.")
|
||||
)
|
||||
grid0.addWidget(self.voronoi_cb, 8, 0, 1, 2)
|
||||
|
||||
self.import_heights_button = FCButton(_("Import Height Map"))
|
||||
grid0.addWidget(self.import_heights_button, 9, 0, 1, 2)
|
||||
|
||||
separator_line = QtWidgets.QFrame()
|
||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||
grid0.addWidget(separator_line, 10, 0, 1, 2)
|
||||
|
||||
# ####################
|
||||
# ## Export G-Code ##
|
||||
# ####################
|
||||
|
@ -2047,6 +2144,27 @@ class CNCObjectUI(ObjectUI):
|
|||
self.custom_box.addWidget(self.export_gcode_button)
|
||||
self.custom_box.addStretch()
|
||||
|
||||
self.al_testpoints_table.setRowCount(0)
|
||||
self.al_testpoints_table.resizeColumnsToContents()
|
||||
self.al_testpoints_table.resizeRowsToContents()
|
||||
v_header = self.al_testpoints_table.verticalHeader()
|
||||
v_header.hide()
|
||||
self.al_testpoints_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
||||
|
||||
h_header = self.al_testpoints_table.horizontalHeader()
|
||||
h_header.setMinimumSectionSize(10)
|
||||
h_header.setDefaultSectionSize(70)
|
||||
h_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
|
||||
h_header.resizeSection(0, 20)
|
||||
h_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
|
||||
h_header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
|
||||
|
||||
self.al_testpoints_table.setMinimumHeight(self.al_testpoints_table.getHeight())
|
||||
self.al_testpoints_table.setMaximumHeight(self.al_testpoints_table.getHeight())
|
||||
|
||||
# Signals
|
||||
self.sal_cb.stateChanged.connect(lambda state: self.al_frame.show() if state else self.al_frame.hide())
|
||||
self.al_frame.hide()
|
||||
|
||||
class ScriptObjectUI(ObjectUI):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue