Touch of dialog
17 Sep 2023 12:48 #280999
by mBender
Touch of dialog was created by mBender
Hi all,
I wrote a small Cnc Programm which touches the tool of a workpiece.It works all great, but what I would like to use in my Program is the same dialog as axis uses when I touch of a an axis. The dialog where I can adjust an Offset. This would be very helpful since I am using different tools to touch off.
Mike
I wrote a small Cnc Programm which touches the tool of a workpiece.It works all great, but what I would like to use in my Program is the same dialog as axis uses when I touch of a an axis. The dialog where I can adjust an Offset. This would be very helpful since I am using different tools to touch off.
Mike
Please Log in or Create an account to join the conversation.
17 Sep 2023 13:17 - 17 Sep 2023 13:23 #281004
by Aciera
Replied by Aciera on topic Touch of dialog
The touchoff routine when you click on the 'Touch Off' and 'Tool Touch Off' buttons in the Axis GUI is built into the axis.py source code.
So unless you are comfortable changing what is there you may be faster creating a custom pyvcp panel and add a button that calls your touchoff routine.
def touch_off_system(event=None, new_axis_value = None):
global system
if not manual_ok(): return
offset_axis = trajcoordinates.index(vars.ja_rbutton.get())
if new_axis_value is None:
new_axis_value, system = prompt_touchoff(
title=_("Touch Off (system)"),
text=_("Enter %s coordinate relative to %%s:") % vars.ja_rbutton.get().upper(),
default=0.0,
tool_only=False,
system=vars.touch_off_system.get()
)
else:
system = vars.touch_off_system.get()
if new_axis_value is None: return
save_task_mode = s.task_mode
vars.touch_off_system.set(system)
ensure_mode(linuxcnc.MODE_MDI)
s.poll()
linear_axis = vars.ja_rbutton.get() in "xyzuvw"
if linear_axis and vars.metric.get(): scale = 1/25.4
else: scale = 1
if linear_axis and 210 in s.gcodes:
scale *= 25.4
offset_command = "G10 L20 %s %c[[%s]*%.12f]" % (system.split()[0], vars.ja_rbutton.get(), new_axis_value, scale)
c.mdi(offset_command)
c.wait_complete()
s.poll()
o.tkRedraw()
reload_file(False)
ensure_mode(save_task_mode)
set_motion_teleop(1)
o.redraw_dro()
def touch_off_tool(event=None, new_axis_value = None):
global system
if not manual_ok(): return
s.poll()
# in case we get here via the keyboard shortcut, when the widget is disabled:
if s.tool_in_spindle == 0: return
if new_axis_value is None:
new_axis_value, system = prompt_touchoff(
title=_("Tool %s TouchOff"%s.tool_in_spindle),
text=_("Enter %s coordinate relative to %%s:") % vars.ja_rbutton.get().upper(),
default=0.0,
tool_only=True,
system=vars.touch_off_system.get()
)
else:
system = vars.touch_off_system.get()
if new_axis_value is None: return
save_task_mode = s.task_mode
vars.touch_off_system.set(system)
ensure_mode(linuxcnc.MODE_MDI)
s.poll()
linear_axis = vars.ja_rbutton.get() in "xyzuvw"
if linear_axis and vars.metric.get(): scale = 1/25.4
else: scale = 1
if linear_axis and 210 in s.gcodes:
scale *= 25.4
lnum = 10 + vars.tto_g11.get()
offset_command = "G10 L%d P%d %c[[%s]*%.12f]" % (lnum, s.tool_in_spindle, vars.ja_rbutton.get(), new_axis_value, scale)
c.mdi(offset_command)
c.wait_complete()
c.mdi("G43")
c.wait_complete()
s.poll()
o.tkRedraw()
reload_file(False)
ensure_mode(save_task_mode)
set_motion_teleop(1)
o.redraw_dro()
def set_axis_offset(event=None):
commands.touch_off_system(new_axis_value=0.)
So unless you are comfortable changing what is there you may be faster creating a custom pyvcp panel and add a button that calls your touchoff routine.
Last edit: 17 Sep 2023 13:23 by Aciera.
Please Log in or Create an account to join the conversation.
Time to create page: 0.090 seconds