Touch of dialog

More
3 years 1 month ago #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

Please Log in to join the conversation.

More
3 years 1 month ago #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.
Code:
    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.

Please Log in to join the conversation.

Time to create page: 0.076 seconds
Powered by Kunena Forum