diff --git a/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.py b/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.py
index 7e45d19..b44efb7 100644
--- a/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.py
+++ b/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.py
@@ -1,5 +1,6 @@
import os
import linuxcnc
+from enum import Enum
from qtpy import uic
from qtpy.QtCore import Qt
@@ -18,6 +19,10 @@ TOOL_TABLE = getPlugin('tooltable')
INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME'))
CMD = linuxcnc.command()
+class MoveMode(Enum):
+ ABS = 1
+ WCS = 2
+ REL = 3
class UserTab(QWidget):
def __init__(self, parent=None):
@@ -31,10 +36,6 @@ class UserTab(QWidget):
STATUS.g5x_index.notify(self.update_wcs_label)
self.update_wcs_label()
- # self.btn_wcs_x.clicked.connect(lambda: self.move_wcs(x=self.fle_wcs_x.value()))
- # self.btn_wcs_y.clicked.connect(lambda: self.move_wcs(y=self.fle_wcs_y.value()))
- # self.fle_wcs_x.editingFinished.connect(self._format_x)
-
self.edits: list[FloatLineEdit] = self.findChildren(FloatLineEdit)
for fle in self.edits:
@@ -47,6 +48,7 @@ class UserTab(QWidget):
btn.setEnabled(False)
btn.clicked.connect(self.move_axis)
+
def format_float(self):
if not isinstance(self.sender(), FloatLineEdit):
return
@@ -69,9 +71,10 @@ class UserTab(QWidget):
self.statuslabel_wcs.setText(f"WCS {idx}")
# 'G54' if ch[0] == 1 else 'G55' if ch[0] == 2 else 'G56' if ch[0] == 3 else 'none'
- def move_x(self):
- machine_actions.jog.axis(axis='x', direction=1, distance=0.5)
- LOG.debug(f"fn: move_x. fle_wcs_x:{self.fle_wcs_x.value()}")
+ def move_relative(self):
+ # machine_actions.jog.axis(axis='x', direction=1, distance=0.5)
+ machine_actions.issue_mdi(f"G91 G0 X{self.fle_rel_x.value()}; G90")
+ LOG.debug(f"fn: move_x. fle_wcs_x:{self.fle_rel_x.value()}")
def move_axis(self):
@@ -86,43 +89,59 @@ class UserTab(QWidget):
dest_x = self.fle_abs_x.value()
dest_y = self.fle_abs_y.value()
dest_z = self.fle_abs_z.value()
- if "_x" in btn_name:
- self.move_wcs(x=dest_x, abs=True)
+ if "x" == btn_name[-1]:
+ self.move_wcs(MoveMode.ABS, x=dest_x)
return
- if "_y" in btn_name:
- self.move_wcs(y=dest_y, abs=True)
+ if "y" == btn_name[-1]:
+ self.move_wcs(MoveMode.ABS, y=dest_y)
return
- if "_z" in btn_name:
- self.move_wcs(z=dest_z, abs=True)
+ if "z" == btn_name[-1]:
+ self.move_wcs(MoveMode.ABS, z=dest_z)
return
- self.move_wcs(dest_x, dest_y, dest_z, abs=True)
+ self.move_wcs(MoveMode.ABS, dest_x, dest_y, dest_z)
LOG.debug(f"fn: move_wcs[ABS] x:{dest_x}, y:{dest_y}, z:{dest_z}")
if "wcs" in btn_name:
dest_x = self.fle_wcs_x.value()
dest_y = self.fle_wcs_y.value()
dest_z = self.fle_wcs_z.value()
- if "_x" in btn_name:
- self.move_wcs(x=dest_x)
+ if "x" == btn_name[-1]:
+ self.move_wcs(MoveMode.WCS, x=dest_x)
return
- if "_y" in btn_name:
- self.move_wcs(y=dest_y)
+ if "y" == btn_name[-1]:
+ self.move_wcs(MoveMode.WCS, y=dest_y)
return
- if "_z" in btn_name:
- self.move_wcs(z=dest_z)
+ if "z" == btn_name[-1]:
+ self.move_wcs(MoveMode.WCS, z=dest_z)
return
- self.move_wcs(dest_x, dest_y, dest_z)
+ self.move_wcs(MoveMode.WCS, dest_x, dest_y, dest_z)
LOG.debug(f"fn: move_wcs[WCS] x:{dest_x}, y:{dest_y}, z:{dest_z}")
+
+ if "rel" in btn_name:
+ dest_x = self.fle_rel_x.value()
+ dest_y = self.fle_rel_y.value()
+ dest_z = self.fle_rel_z.value()
+ if "x" == btn_name[-1]:
+ self.move_wcs(MoveMode.REL, x=dest_x)
+ return
+ if "y" == btn_name[-1]:
+ self.move_wcs(MoveMode.REL, y=dest_y)
+ return
+ if "z" == btn_name[-1]:
+ self.move_wcs(MoveMode.REL, z=dest_z)
+ return
+
+ self.move_wcs(MoveMode.REL, dest_x, dest_y, dest_z)
+ LOG.debug(f"fn: move_wcs[REL] x:{dest_x}, y:{dest_y}, z:{dest_z}")
- def move_wcs(self, x=None, y=None, z=None, abs=False):
-
- if abs:
- mdi_cmd = "G53 G0"
- else:
- mdi_cmd = "G0"
+ def move_wcs(self, mode:MoveMode, x=None, y=None, z=None):
+ match mode:
+ case MoveMode.ABS: mdi_cmd = "G53 G0"
+ case MoveMode.WCS: mdi_cmd = "G0"
+ case MoveMode.REL: mdi_cmd = "G91 G0"
if x is not None:
mdi_cmd += f" X{x}"
@@ -131,6 +150,9 @@ class UserTab(QWidget):
if z is not None:
mdi_cmd += f" Z{z}"
+ if mode == MoveMode.REL:
+ mdi_cmd += " ;G90"
+
LOG.debug(f"fn: move_wcs. MDI:{mdi_cmd}")
machine_actions.issue_mdi(mdi_cmd)
diff --git a/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.ui b/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.ui
index 81415cc..4e5c564 100644
--- a/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.ui
+++ b/configs/probe_basic/user_tabs/template_sidebar/template_sidebar.ui
@@ -176,6 +176,19 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
-
-
@@ -321,7 +334,7 @@
-
-
+
Qt::Vertical
@@ -333,6 +346,150 @@
+ -
+
+
-
+
+
+ QLabel{
+ color: rgb(238, 238, 236);
+ font: 16pt "Bebas Kai";
+}
+
+
+ RELATIVE
+
+
+
+ -
+
+
-
+
+
+ 0.0000
+
+
+ Qt::AlignCenter
+
+
+ 0
+
+
+ []
+
+
+
+ -
+
+
+
+ 50
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ GO X
+
+
+
+
+
+ -
+
+
-
+
+
+ 0.0000
+
+
+ Qt::AlignCenter
+
+
+ []
+
+
+
+ -
+
+
+
+ 50
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ GO Y
+
+
+
+
+
+ -
+
+
-
+
+
+ 0.0000
+
+
+ Qt::AlignCenter
+
+
+ []
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ 0
+
+
+
+
+ 50
+ 16777215
+
+
+
+ GO Z
+
+
+
+
+
+ -
+
+
+ GO XYZ
+
+
+ true
+
+
+
+
+