- in CNCJob UI Autolevelling - GRBL controller - added the probing method
This commit is contained in:
parent
40682ea1e9
commit
f8eba0084d
|
@ -13,6 +13,8 @@ CHANGELOG for FlatCAM beta
|
||||||
- in CNCJob UI Autolevelling - changed how the probing code is generated and when
|
- in CNCJob UI Autolevelling - changed how the probing code is generated and when
|
||||||
- changed some strings in CNCJob UI Autolevelling
|
- changed some strings in CNCJob UI Autolevelling
|
||||||
- made sure that when doing units conversion keep only the decimals specified in the application decimals setting (should differentiate between values and display?)
|
- made sure that when doing units conversion keep only the decimals specified in the application decimals setting (should differentiate between values and display?)
|
||||||
|
- in CNCJob UI Autolevelling - some UI changes
|
||||||
|
- in CNCJob UI Autolevelling - GRBL controller - added the probing method
|
||||||
|
|
||||||
23.08.2020
|
23.08.2020
|
||||||
|
|
||||||
|
|
|
@ -1949,47 +1949,6 @@ class CNCObjectUI(ObjectUI):
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
grid0.addWidget(separator_line, 5, 0, 1, 2)
|
grid0.addWidget(separator_line, 5, 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 probe points by clicking on canvas\n"
|
|
||||||
"- Grid: will automatically generate a grid of probe points"))
|
|
||||||
|
|
||||||
self.al_mode_radio = RadioSet(
|
|
||||||
[
|
|
||||||
{'label': _('Manual'), 'value': 'manual'},
|
|
||||||
{'label': _('Grid'), 'value': 'grid'}
|
|
||||||
])
|
|
||||||
grid0.addWidget(al_mode_lbl, 7, 0)
|
|
||||||
grid0.addWidget(self.al_mode_radio, 7, 1)
|
|
||||||
|
|
||||||
# ## Columns
|
|
||||||
self.al_columns_entry = FCSpinner()
|
|
||||||
|
|
||||||
self.al_columns_label = QtWidgets.QLabel('%s:' % _("Columns"))
|
|
||||||
self.al_columns_label.setToolTip(
|
|
||||||
_("The number of grid columns.")
|
|
||||||
)
|
|
||||||
grid0.addWidget(self.al_columns_label, 9, 0)
|
|
||||||
grid0.addWidget(self.al_columns_entry, 9, 1)
|
|
||||||
|
|
||||||
# ## Rows
|
|
||||||
self.al_rows_entry = FCSpinner()
|
|
||||||
|
|
||||||
self.al_rows_label = QtWidgets.QLabel('%s:' % _("Rows"))
|
|
||||||
self.al_rows_label.setToolTip(
|
|
||||||
_("The number of gird rows.")
|
|
||||||
)
|
|
||||||
grid0.addWidget(self.al_rows_label, 11, 0)
|
|
||||||
grid0.addWidget(self.al_rows_entry, 11, 1)
|
|
||||||
|
|
||||||
self.al_add_button = FCButton(_("Add Probe Points"))
|
|
||||||
grid0.addWidget(self.al_add_button, 13, 0, 1, 2)
|
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
|
||||||
grid0.addWidget(separator_line, 14, 0, 1, 2)
|
|
||||||
|
|
||||||
# #############################################################################################################
|
# #############################################################################################################
|
||||||
# ############### Probe GCode Generation ######################################################################
|
# ############### Probe GCode Generation ######################################################################
|
||||||
# #############################################################################################################
|
# #############################################################################################################
|
||||||
|
@ -2000,7 +1959,7 @@ class CNCObjectUI(ObjectUI):
|
||||||
"either through a file or directly, with the intent to get the height map\n"
|
"either through a file or directly, with the intent to get the height map\n"
|
||||||
"that is to modify the original GCode to level the cutting height.")
|
"that is to modify the original GCode to level the cutting height.")
|
||||||
)
|
)
|
||||||
grid0.addWidget(self.probe_gc_label, 16, 0, 1, 2)
|
grid0.addWidget(self.probe_gc_label, 7, 0, 1, 2)
|
||||||
|
|
||||||
# Travel Z Probe
|
# Travel Z Probe
|
||||||
self.ptravelz_label = QtWidgets.QLabel('%s:' % _("Probe Z travel"))
|
self.ptravelz_label = QtWidgets.QLabel('%s:' % _("Probe Z travel"))
|
||||||
|
@ -2011,8 +1970,8 @@ class CNCObjectUI(ObjectUI):
|
||||||
self.ptravelz_entry.set_precision(self.decimals)
|
self.ptravelz_entry.set_precision(self.decimals)
|
||||||
self.ptravelz_entry.set_range(0.0000, 9999.9999)
|
self.ptravelz_entry.set_range(0.0000, 9999.9999)
|
||||||
|
|
||||||
grid0.addWidget(self.ptravelz_label, 18, 0)
|
grid0.addWidget(self.ptravelz_label, 9, 0)
|
||||||
grid0.addWidget(self.ptravelz_entry, 18, 1)
|
grid0.addWidget(self.ptravelz_entry, 9, 1)
|
||||||
|
|
||||||
# Probe depth
|
# Probe depth
|
||||||
self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth"))
|
self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth"))
|
||||||
|
@ -2024,8 +1983,8 @@ class CNCObjectUI(ObjectUI):
|
||||||
self.pdepth_entry.set_precision(self.decimals)
|
self.pdepth_entry.set_precision(self.decimals)
|
||||||
self.pdepth_entry.set_range(-99999.9999, 0.0000)
|
self.pdepth_entry.set_range(-99999.9999, 0.0000)
|
||||||
|
|
||||||
grid0.addWidget(self.pdepth_label, 20, 0)
|
grid0.addWidget(self.pdepth_label, 11, 0)
|
||||||
grid0.addWidget(self.pdepth_entry, 20, 1)
|
grid0.addWidget(self.pdepth_entry, 11, 1)
|
||||||
|
|
||||||
# Probe feedrate
|
# Probe feedrate
|
||||||
self.feedrate_probe_label = QtWidgets.QLabel('%s:' % _("Probe Feedrate"))
|
self.feedrate_probe_label = QtWidgets.QLabel('%s:' % _("Probe Feedrate"))
|
||||||
|
@ -2036,13 +1995,54 @@ class CNCObjectUI(ObjectUI):
|
||||||
self.feedrate_probe_entry.set_precision(self.decimals)
|
self.feedrate_probe_entry.set_precision(self.decimals)
|
||||||
self.feedrate_probe_entry.set_range(0, 99999.9999)
|
self.feedrate_probe_entry.set_range(0, 99999.9999)
|
||||||
|
|
||||||
grid0.addWidget(self.feedrate_probe_label, 22, 0)
|
grid0.addWidget(self.feedrate_probe_label, 13, 0)
|
||||||
grid0.addWidget(self.feedrate_probe_entry, 22, 1)
|
grid0.addWidget(self.feedrate_probe_entry, 13, 1)
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
separator_line = QtWidgets.QFrame()
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
grid0.addWidget(separator_line, 23, 0, 1, 2)
|
grid0.addWidget(separator_line, 15, 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 probe points by clicking on canvas\n"
|
||||||
|
"- Grid: will automatically generate a grid of probe points"))
|
||||||
|
|
||||||
|
self.al_mode_radio = RadioSet(
|
||||||
|
[
|
||||||
|
{'label': _('Manual'), 'value': 'manual'},
|
||||||
|
{'label': _('Grid'), 'value': 'grid'}
|
||||||
|
])
|
||||||
|
grid0.addWidget(al_mode_lbl, 17, 0)
|
||||||
|
grid0.addWidget(self.al_mode_radio, 17, 1)
|
||||||
|
|
||||||
|
# ## Columns
|
||||||
|
self.al_columns_entry = FCSpinner()
|
||||||
|
|
||||||
|
self.al_columns_label = QtWidgets.QLabel('%s:' % _("Columns"))
|
||||||
|
self.al_columns_label.setToolTip(
|
||||||
|
_("The number of grid columns.")
|
||||||
|
)
|
||||||
|
grid0.addWidget(self.al_columns_label, 19, 0)
|
||||||
|
grid0.addWidget(self.al_columns_entry, 19, 1)
|
||||||
|
|
||||||
|
# ## Rows
|
||||||
|
self.al_rows_entry = FCSpinner()
|
||||||
|
|
||||||
|
self.al_rows_label = QtWidgets.QLabel('%s:' % _("Rows"))
|
||||||
|
self.al_rows_label.setToolTip(
|
||||||
|
_("The number of gird rows.")
|
||||||
|
)
|
||||||
|
grid0.addWidget(self.al_rows_label, 21, 0)
|
||||||
|
grid0.addWidget(self.al_rows_entry, 21, 1)
|
||||||
|
|
||||||
|
self.al_add_button = FCButton(_("Add Probe Points"))
|
||||||
|
grid0.addWidget(self.al_add_button, 23, 0, 1, 2)
|
||||||
|
|
||||||
|
separator_line = QtWidgets.QFrame()
|
||||||
|
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
|
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
|
grid0.addWidget(separator_line, 25, 0, 1, 2)
|
||||||
|
|
||||||
self.al_controller_label = FCLabel('<b>%s</b>:' % _("Controller"))
|
self.al_controller_label = FCLabel('<b>%s</b>:' % _("Controller"))
|
||||||
self.al_controller_label.setToolTip(
|
self.al_controller_label.setToolTip(
|
||||||
|
@ -2052,15 +2052,15 @@ class CNCObjectUI(ObjectUI):
|
||||||
|
|
||||||
self.al_controller_combo = FCComboBox()
|
self.al_controller_combo = FCComboBox()
|
||||||
self.al_controller_combo.addItems(["MACH3", "MACH4", "LinuxCNC", "GRBL"])
|
self.al_controller_combo.addItems(["MACH3", "MACH4", "LinuxCNC", "GRBL"])
|
||||||
grid0.addWidget(self.al_controller_label, 24, 0)
|
grid0.addWidget(self.al_controller_label, 27, 0)
|
||||||
grid0.addWidget(self.al_controller_combo, 24, 1)
|
grid0.addWidget(self.al_controller_combo, 27, 1)
|
||||||
|
|
||||||
# #############################################################################################################
|
# #############################################################################################################
|
||||||
# ########################## GRBL frame #######################################################################
|
# ########################## GRBL frame #######################################################################
|
||||||
# #############################################################################################################
|
# #############################################################################################################
|
||||||
self.grbl_frame = QtWidgets.QFrame()
|
self.grbl_frame = QtWidgets.QFrame()
|
||||||
self.grbl_frame.setContentsMargins(0, 0, 0, 0)
|
self.grbl_frame.setContentsMargins(0, 0, 0, 0)
|
||||||
grid0.addWidget(self.grbl_frame, 26, 0, 1, 2)
|
grid0.addWidget(self.grbl_frame, 29, 0, 1, 2)
|
||||||
|
|
||||||
self.grbl_box = QtWidgets.QVBoxLayout()
|
self.grbl_box = QtWidgets.QVBoxLayout()
|
||||||
self.grbl_box.setContentsMargins(0, 0, 0, 0)
|
self.grbl_box.setContentsMargins(0, 0, 0, 0)
|
||||||
|
@ -2121,7 +2121,6 @@ class CNCObjectUI(ObjectUI):
|
||||||
grbl_conn_grid.setColumnStretch(1, 1)
|
grbl_conn_grid.setColumnStretch(1, 1)
|
||||||
grbl_conn_grid.setColumnStretch(2, 0)
|
grbl_conn_grid.setColumnStretch(2, 0)
|
||||||
self.gr_conn_tab_layout.addLayout(grbl_conn_grid)
|
self.gr_conn_tab_layout.addLayout(grbl_conn_grid)
|
||||||
self.gr_conn_tab_layout.addStretch(1)
|
|
||||||
|
|
||||||
# COM list
|
# COM list
|
||||||
self.com_list_label = FCLabel('%s:' % _("COM list"))
|
self.com_list_label = FCLabel('%s:' % _("COM list"))
|
||||||
|
@ -2191,6 +2190,7 @@ class CNCObjectUI(ObjectUI):
|
||||||
self.com_connect_button.setStyleSheet("QPushButton {background-color: red;}")
|
self.com_connect_button.setStyleSheet("QPushButton {background-color: red;}")
|
||||||
ctrl_hlay.addWidget(self.com_connect_button)
|
ctrl_hlay.addWidget(self.com_connect_button)
|
||||||
|
|
||||||
|
grbl_conn_grid.addWidget(FCLabel(""), 9, 0, 1, 3)
|
||||||
grbl_conn_grid.setRowStretch(9, 1)
|
grbl_conn_grid.setRowStretch(9, 1)
|
||||||
grbl_conn_grid.addLayout(ctrl_hlay, 10, 0, 1, 3)
|
grbl_conn_grid.addLayout(ctrl_hlay, 10, 0, 1, 3)
|
||||||
|
|
||||||
|
@ -2329,7 +2329,7 @@ class CNCObjectUI(ObjectUI):
|
||||||
# Get Parameter
|
# Get Parameter
|
||||||
self.grbl_get_param_label = FCLabel('%s:' % _("Get Config parameter"))
|
self.grbl_get_param_label = FCLabel('%s:' % _("Get Config parameter"))
|
||||||
self.grbl_get_param_label.setToolTip(
|
self.grbl_get_param_label.setToolTip(
|
||||||
_("A GRBL parameter.")
|
_("A GRBL configuration parameter.")
|
||||||
)
|
)
|
||||||
grbl_send_grid.addWidget(self.grbl_get_param_label, 6, 0, 1, 2)
|
grbl_send_grid.addWidget(self.grbl_get_param_label, 6, 0, 1, 2)
|
||||||
|
|
||||||
|
@ -2344,6 +2344,8 @@ class CNCObjectUI(ObjectUI):
|
||||||
grbl_send_grid.addWidget(self.grbl_parameter_entry, 8, 0)
|
grbl_send_grid.addWidget(self.grbl_parameter_entry, 8, 0)
|
||||||
grbl_send_grid.addWidget(self.grbl_get_param_button, 8, 1)
|
grbl_send_grid.addWidget(self.grbl_get_param_button, 8, 1)
|
||||||
|
|
||||||
|
grbl_send_grid.setRowStretch(9, 1)
|
||||||
|
|
||||||
# GET Report
|
# GET Report
|
||||||
self.grbl_report_button = FCButton(_("Get Report"))
|
self.grbl_report_button = FCButton(_("Get Report"))
|
||||||
self.grbl_report_button.setToolTip(
|
self.grbl_report_button.setToolTip(
|
||||||
|
@ -2352,10 +2354,11 @@ class CNCObjectUI(ObjectUI):
|
||||||
grbl_send_grid.addWidget(self.grbl_report_button, 10, 0, 1, 2)
|
grbl_send_grid.addWidget(self.grbl_report_button, 10, 0, 1, 2)
|
||||||
|
|
||||||
# GET HEIGHT MAP
|
# GET HEIGHT MAP
|
||||||
self.grbl_get_heightmap_button = FCButton(_("Get Height Map"))
|
self.grbl_get_heightmap_button = FCButton(_("Apply AutoLevelling"))
|
||||||
self.grbl_get_heightmap_button.setToolTip(
|
self.grbl_get_heightmap_button.setToolTip(
|
||||||
_("Will send the probing GCode to the GRBL controller\n"
|
_("Will send the probing GCode to the GRBL controller,\n"
|
||||||
"and wait for the Z probing data.")
|
"wait for the Z probing data and then apply this data\n"
|
||||||
|
"over the original GCode therefore doing autolevelling.")
|
||||||
)
|
)
|
||||||
grbl_send_grid.addWidget(self.grbl_get_heightmap_button, 12, 0, 1, 2)
|
grbl_send_grid.addWidget(self.grbl_get_heightmap_button, 12, 0, 1, 2)
|
||||||
|
|
||||||
|
@ -2376,26 +2379,24 @@ class CNCObjectUI(ObjectUI):
|
||||||
# height_lay.addStretch()
|
# height_lay.addStretch()
|
||||||
height_lay.addWidget(self.view_h_gcode_button)
|
height_lay.addWidget(self.view_h_gcode_button)
|
||||||
|
|
||||||
grid0.addLayout(height_lay, 28, 0, 1, 2)
|
grid0.addLayout(height_lay, 31, 0, 1, 2)
|
||||||
|
|
||||||
self.import_heights_button = FCButton(_("Import Height Map"))
|
self.import_heights_button = FCButton(_("Import Height Map"))
|
||||||
grid0.addWidget(self.import_heights_button, 30, 0, 1, 2)
|
self.import_heights_button.setToolTip(
|
||||||
|
_("Import the file that has the Z heights\n"
|
||||||
|
"obtained through probing and then apply this data\n"
|
||||||
|
"over the original GCode therefore\n"
|
||||||
|
"doing autolevelling.")
|
||||||
|
)
|
||||||
|
grid0.addWidget(self.import_heights_button, 33, 0, 1, 2)
|
||||||
|
|
||||||
self.h_gcode_button.hide()
|
self.h_gcode_button.hide()
|
||||||
self.import_heights_button.hide()
|
self.import_heights_button.hide()
|
||||||
|
|
||||||
# separator_line = QtWidgets.QFrame()
|
|
||||||
# separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
|
||||||
# separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
|
||||||
# grid0.addWidget(separator_line, 31, 0, 1, 2)
|
|
||||||
|
|
||||||
self.al_button = FCButton(_("Apply Autolevel map"))
|
|
||||||
grid0.addWidget(self.al_button, 32, 0, 1, 2)
|
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
separator_line = QtWidgets.QFrame()
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
|
||||||
grid0.addWidget(separator_line, 34, 0, 1, 2)
|
grid0.addWidget(separator_line, 35, 0, 1, 2)
|
||||||
|
|
||||||
# #############################################################################################################
|
# #############################################################################################################
|
||||||
# ## Export G-Code ##
|
# ## Export G-Code ##
|
||||||
|
|
|
@ -593,6 +593,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
|
||||||
self.ui.h_gcode_button.clicked.connect(self.on_save_probing_gcode)
|
self.ui.h_gcode_button.clicked.connect(self.on_save_probing_gcode)
|
||||||
self.ui.import_heights_button.clicked.connect(self.on_import_height_map)
|
self.ui.import_heights_button.clicked.connect(self.on_import_height_map)
|
||||||
self.ui.pause_resume_button.clicked.connect(self.on_grbl_pause_resume)
|
self.ui.pause_resume_button.clicked.connect(self.on_grbl_pause_resume)
|
||||||
|
self.ui.grbl_get_heightmap_button.clicked.connect(self.on_grbl_autolevel)
|
||||||
|
|
||||||
self.build_al_table_sig.connect(self.build_al_table)
|
self.build_al_table_sig.connect(self.build_al_table)
|
||||||
|
|
||||||
|
@ -1101,6 +1102,15 @@ class CNCJobObject(FlatCAMObj, CNCjob):
|
||||||
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
|
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
|
||||||
|
|
||||||
def send_grbl_command(self, command, echo=True):
|
def send_grbl_command(self, command, echo=True):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param command: GCode command
|
||||||
|
:type command: str
|
||||||
|
:param echo: if to send a '\n' char after
|
||||||
|
:type echo: bool
|
||||||
|
:return: the text returned by the GRBL controller after each command
|
||||||
|
:rtype: str
|
||||||
|
"""
|
||||||
stripped_cmd = command.strip()
|
stripped_cmd = command.strip()
|
||||||
|
|
||||||
cmd = stripped_cmd.rpartition('\n')[0]
|
cmd = stripped_cmd.rpartition('\n')[0]
|
||||||
|
@ -1112,7 +1122,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
|
||||||
self.grbl_ser_port.write(snd.encode('utf-8'))
|
self.grbl_ser_port.write(snd.encode('utf-8'))
|
||||||
grbl_out = self.grbl_ser_port.readlines()
|
grbl_out = self.grbl_ser_port.readlines()
|
||||||
|
|
||||||
result = False
|
result = ''
|
||||||
for line in grbl_out:
|
for line in grbl_out:
|
||||||
if echo:
|
if echo:
|
||||||
try:
|
try:
|
||||||
|
@ -1120,7 +1130,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.debug("CNCJobObject.send_grbl_command() --> %s" % str(e))
|
log.debug("CNCJobObject.send_grbl_command() --> %s" % str(e))
|
||||||
if 'ok' in line:
|
if 'ok' in line:
|
||||||
result = True
|
result = grbl_out
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -1498,6 +1508,49 @@ class CNCJobObject(FlatCAMObj, CNCjob):
|
||||||
|
|
||||||
self.build_al_table_sig.emit()
|
self.build_al_table_sig.emit()
|
||||||
|
|
||||||
|
def on_grbl_autolevel(self):
|
||||||
|
# show the Shell Dock
|
||||||
|
self.app.ui.shell_dock.show()
|
||||||
|
|
||||||
|
def worker_task():
|
||||||
|
with self.app.proc_container.new(_("Sending GCode...")):
|
||||||
|
probe_result = ''
|
||||||
|
pr_travelz = str(self.ui.ptravelz_entry.get_value())
|
||||||
|
probe_fr = str(self.ui.feedrate_probe_entry.get_value())
|
||||||
|
pr_depth = str(self.ui.pdepth_entry.get_value())
|
||||||
|
|
||||||
|
cmd = 'G21\n'
|
||||||
|
self.send_grbl_command(command=cmd)
|
||||||
|
cmd = 'G90\n'
|
||||||
|
self.send_grbl_command(command=cmd)
|
||||||
|
|
||||||
|
for pt_key in self.al_geometry_dict:
|
||||||
|
x = str(self.al_geometry_dict[pt_key]['point'].x)
|
||||||
|
y = str(self.al_geometry_dict[pt_key]['point'].y)
|
||||||
|
|
||||||
|
cmd = 'G0 Z%s\n' % pr_travelz
|
||||||
|
self.send_grbl_command(command=cmd)
|
||||||
|
cmd = 'G0 X%s Y%s\n' % (x, y)
|
||||||
|
self.send_grbl_command(command=cmd)
|
||||||
|
cmd = 'G38.2 Z%s F%s' % (pr_depth, probe_fr)
|
||||||
|
output = self.send_grbl_command(command=cmd)
|
||||||
|
|
||||||
|
probe_result += output + '\n'
|
||||||
|
|
||||||
|
cmd = 'M2\n'
|
||||||
|
self.send_grbl_command(command=cmd)
|
||||||
|
self.app.inform.emit('%s' % _("Finished probing. Doing the autolevelling."))
|
||||||
|
|
||||||
|
# apply autolevel here
|
||||||
|
self.do_grbl_autolevel()
|
||||||
|
|
||||||
|
self.app.inform.emit('%s' % _("Sending probing GCode to the GRBL controller."))
|
||||||
|
self.app.worker_task.emit({'fcn': worker_task, 'params': []})
|
||||||
|
|
||||||
|
def do_grbl_autolevel(self):
|
||||||
|
# TODO here we call the autovell method
|
||||||
|
self.app.inform.emit('%s' % _("Finished autolevelling."))
|
||||||
|
|
||||||
def on_updateplot_button_click(self, *args):
|
def on_updateplot_button_click(self, *args):
|
||||||
"""
|
"""
|
||||||
Callback for the "Updata Plot" button. Reads the form for updates
|
Callback for the "Updata Plot" button. Reads the form for updates
|
||||||
|
|
Loading…
Reference in New Issue