Button to toggle continuous jogging?
10 Sep 2020 01:24 #181536
by lllars
Button to toggle continuous jogging? was created by lllars
I would like to have a button that would toggle continuous jogging mode on/off.
I'm envisioning using this for quasi-manual machining, where I would set my desired step-over distance as the jog increment. Then toggle the continuous jog button and make a pass. Toggle the button back off and step over (or step down), then back on for the next pass.
I've got an ActionButton and can see how to set it to control Jog Increment. But I don't see how to set it for continuous jogging like can be selected in the JogIncrements widget.
Is there any easy way to do this? I am working with a modified version of QtDragon.
I'm envisioning using this for quasi-manual machining, where I would set my desired step-over distance as the jog increment. Then toggle the continuous jog button and make a pass. Toggle the button back off and step over (or step down), then back on for the next pass.
I've got an ActionButton and can see how to set it to control Jog Increment. But I don't see how to set it for continuous jogging like can be selected in the JogIncrements widget.
Is there any easy way to do this? I am working with a modified version of QtDragon.
Please Log in or Create an account to join the conversation.
10 Sep 2020 01:27 #181537
by lllars
Replied by lllars on topic Button to toggle continuous jogging?
Another way to skin this cat could be to set up a separate JogIncrements widget for each axis. Then maybe X could be set for continuous, Y for a step-over, and Z for a step down. Is there a way to restrict a JogIncrements widget to just one axis?
Please Log in or Create an account to join the conversation.
10 Sep 2020 02:35 #181543
by cmorley
Replied by cmorley on topic Button to toggle continuous jogging?
I think I have the principle behavior figured out:
In designer:
use an action button with no action. call it 'btn_toggle_continuous'
set the AbstractButton property 'checkable' true
set the ActionButton properties 'incr_imperial_number' and 'incr_mm_number' to 0
use designer slot editor: linuxcnc.org/docs/2.8/html/gui/qtvcp.htm...esigner_to_add_slots
to use the button signal clicked(bool) to call form function 'toggle_continuous_clicked()'
In the handler file add this to the call backs section:
For some reason the indicator option doesn't toggle nor does the indicated text - i'll check that out soon.
This is pretty cool - I'll probably write it up as a code snippet
Chris
In designer:
use an action button with no action. call it 'btn_toggle_continuous'
set the AbstractButton property 'checkable' true
set the ActionButton properties 'incr_imperial_number' and 'incr_mm_number' to 0
use designer slot editor: linuxcnc.org/docs/2.8/html/gui/qtvcp.htm...esigner_to_add_slots
to use the button signal clicked(bool) to call form function 'toggle_continuous_clicked()'
In the handler file add this to the call backs section:
#######################
# callbacks from form #
#######################
def toggle_continuous_clicked(self, state):
if state:
# record current linear increment
self.L_incr = STATUS.get_jog_increment()
self.L_text = STATUS.current_jog_distance_text
# set continuous
self.w.btn_toggle_continuous.incr_action()
else:
# reset previously recorded increment
ACTION.SET_JOG_INCR(self.L_incr, self.L_text)
For some reason the indicator option doesn't toggle nor does the indicated text - i'll check that out soon.
This is pretty cool - I'll probably write it up as a code snippet
Chris
Please Log in or Create an account to join the conversation.
10 Sep 2020 02:37 #181544
by cmorley
Replied by cmorley on topic Button to toggle continuous jogging?
Jog increments are global settings currently.
In fact linuxcnc doesn't have an internally tracked increment setting -each GUI decides, so you could code a per axis increment but it would be tricky to incorporate with Qtvcp jog related widgets.
In fact linuxcnc doesn't have an internally tracked increment setting -each GUI decides, so you could code a per axis increment but it would be tricky to incorporate with Qtvcp jog related widgets.
Please Log in or Create an account to join the conversation.
10 Sep 2020 04:17 #181548
by cmorley
Replied by cmorley on topic Button to toggle continuous jogging?
The last code had a weakness - the continuous button only remembered the increments that were on when continuous was toggled on. if you changed increments it would remember the wrong increment setting.
This is better:
The commented out line can only be un-commented after updating linuxcnc - i added code to make this easier.
This is better:
# at this point:
# the widgets are instantiated.
# the HAL pins are built but HAL is not set ready
def initialized__(self):
STATUS.connect('jogincrement-changed', lambda w, d, t: self.record_jog_incr(d,t))
def record_jog_incr(self,d, t):
if d != 0:
self.L_incr = d
self.L_text = t
# next line - only after update!
#self.w.btn_toggle_continuous.safecheck(False)
def toggle_continuous_clicked(self, state):
if state:
# set continuous
self.w.btn_toggle_continuous.incr_action()
else:
# reset previously recorded increment
ACTION.SET_JOG_INCR(self.L_incr, self.L_text)
The commented out line can only be un-commented after updating linuxcnc - i added code to make this easier.
Please Log in or Create an account to join the conversation.
10 Sep 2020 23:17 #181686
by lllars
Replied by lllars on topic Button to toggle continuous jogging?
Thanks Chris, this is awesome! I've got it working (without updating linuxcnc), and it seems to work fine.
The only issue I noticed is if I set continuous mode and then unset it without ever having selected an increment (which is admittedly a dumb thing to do), then it gives me an error. I've got a workaround in place, though it is not very elegant:
The only issue I noticed is if I set continuous mode and then unset it without ever having selected an increment (which is admittedly a dumb thing to do), then it gives me an error. I've got a workaround in place, though it is not very elegant:
STATUS.connect('jogincrement-changed', lambda w, d, t: self.record_jog_incr(d,t))
self.L_incr = 0.01
self.L_text = "0.01in"
Please Log in or Create an account to join the conversation.
10 Sep 2020 23:36 #181689
by cmorley
Replied by cmorley on topic Button to toggle continuous jogging?
that's a perfectly valid way to fix that bug.
Thanks for the feedback.
Thanks for the feedback.
Please Log in or Create an account to join the conversation.
15 Sep 2020 08:56 #182194
by hottabich
Replied by hottabich on topic Button to toggle continuous jogging?
Thanks Chris, this is awesome! I've got it working (without updating linuxcnc), and it seems to work fine.
Please explain step by step how it works for you. I did everything as described above and I just switch to INCR mode, but not back and how do you set the interval? Thank you in advance!
Please Log in or Create an account to join the conversation.
15 Sep 2020 13:26 #182230
by lllars
Replied by lllars on topic Button to toggle continuous jogging?
I set the increment with a jogincrements widget. I don't see one of those on your setup, so maybe that is what is needed.
Your handler file and widget setup looks OK to me, but I'll attach mine for reference anyway.
Your handler file and widget setup looks OK to me, but I'll attach mine for reference anyway.
Please Log in or Create an account to join the conversation.
15 Sep 2020 19:19 #182260
by hottabich
Replied by hottabich on topic Button to toggle continuous jogging?
Thanks for your attention! Everything is the same but does not go back to cont. Since I don't see the meaning in this button therefore the question is closed.
Please Log in or Create an account to join the conversation.
Moderators: cmorley
Time to create page: 0.078 seconds