Keyboard re-mapping (key binding)
12 Jun 2021 08:23 #211859
by probamo
Replied by probamo on topic Keyboard re-mapping (key binding)
Any advise?
Please Log in or Create an account to join the conversation.
12 Jun 2021 19:16 - 12 Jun 2021 19:24 #211882
by BigJohnT
Replied by BigJohnT on topic Keyboard re-mapping (key binding)
What did you try?
Did you look at the axis.py code used for rapid jogging as an example?
github.com/LinuxCNC/linuxcnc/blob/master...scripts/axis.py#L210
JT
Did you look at the axis.py code used for rapid jogging as an example?
github.com/LinuxCNC/linuxcnc/blob/master...scripts/axis.py#L210
JT
Last edit: 12 Jun 2021 19:24 by BigJohnT.
Please Log in or Create an account to join the conversation.
- slidinghawk
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
17 Nov 2022 06:52 #256917
by slidinghawk
Replied by slidinghawk on topic Keyboard re-mapping (key binding)
I need to control the buttons on my 5 axis foam cutting machine.
I made changes to the axis file
beat so
print >>sys.stderr, "note: jog_order=%r" % jog_order
print >>sys.stderr, "note: jog_invert=%r" % jog_invert
bind_axis("Left", "Right", 0)
bind_axis("Down", "Up", 1)
bind_axis("Next", "Prior", 2)
bind_axis("KP_Left", "KP_Right", 0)
bind_axis("KP_Down", "KP_Up", 1)
bind_axis("KP_Next", "KP_Prior", 2)
bind_axis("KP_4", "KP_6", 0)
bind_axis("KP_2", "KP_8", 1)
bind_axis("KP_3", "KP_9", 2)
bind_axis("bracketleft", "bracketright", 3)
changed to this
print >>sys.stderr, "note: jog_order=%r" % jog_order
print >>sys.stderr, "note: jog_invert=%r" % jog_invert
bind_axis("Right", "Left", 0)
bind_axis("Down", "Up", 1)
#bind_axis("Prior", "Next", 2)
#bind_axis("Home", "End", 3)
#bind_axis("KP_Left", "KP_Right", 0 )
#bind_axis("KP_Down", "KP_Up", 1)
#bind_axis("KP_Next", "KP_Prior", 2)
#bind_axis("KP_Home", "KP_End", 3)
bind_axis("KP_6", "KP_4", 2)
bind_axis("KP_5", "KP_8", 3)
bind_axis("KP_7", "KP_9", 4)
#bind_axis("KP_7", "KP_1", 3)
#bind_axis("bracketleft", "bracketright", 3)
According to the axes "0=X", "1=Y" everything works as it should. When the button is pressed, the command is executed; when the button is released, the command is not executed.
On the axes "2=U", "3=V", "4=C" when the button is pressed, the command is executed. When the button is released, the command continues to be executed. when the button is pressed in the other direction, the command to move in the other direction begins to be executed.
When "SHift + KP_5" is pressed, the 3 jog PLUS command will stop running. And the same for other axes.
What else needs to be changed?
I made changes to the axis file
beat so
print >>sys.stderr, "note: jog_order=%r" % jog_order
print >>sys.stderr, "note: jog_invert=%r" % jog_invert
bind_axis("Left", "Right", 0)
bind_axis("Down", "Up", 1)
bind_axis("Next", "Prior", 2)
bind_axis("KP_Left", "KP_Right", 0)
bind_axis("KP_Down", "KP_Up", 1)
bind_axis("KP_Next", "KP_Prior", 2)
bind_axis("KP_4", "KP_6", 0)
bind_axis("KP_2", "KP_8", 1)
bind_axis("KP_3", "KP_9", 2)
bind_axis("bracketleft", "bracketright", 3)
changed to this
print >>sys.stderr, "note: jog_order=%r" % jog_order
print >>sys.stderr, "note: jog_invert=%r" % jog_invert
bind_axis("Right", "Left", 0)
bind_axis("Down", "Up", 1)
#bind_axis("Prior", "Next", 2)
#bind_axis("Home", "End", 3)
#bind_axis("KP_Left", "KP_Right", 0 )
#bind_axis("KP_Down", "KP_Up", 1)
#bind_axis("KP_Next", "KP_Prior", 2)
#bind_axis("KP_Home", "KP_End", 3)
bind_axis("KP_6", "KP_4", 2)
bind_axis("KP_5", "KP_8", 3)
bind_axis("KP_7", "KP_9", 4)
#bind_axis("KP_7", "KP_1", 3)
#bind_axis("bracketleft", "bracketright", 3)
According to the axes "0=X", "1=Y" everything works as it should. When the button is pressed, the command is executed; when the button is released, the command is not executed.
On the axes "2=U", "3=V", "4=C" when the button is pressed, the command is executed. When the button is released, the command continues to be executed. when the button is pressed in the other direction, the command to move in the other direction begins to be executed.
When "SHift + KP_5" is pressed, the 3 jog PLUS command will stop running. And the same for other axes.
What else needs to be changed?
Please Log in or Create an account to join the conversation.
17 Nov 2022 23:36 #256986
by andypugh
Replied by andypugh on topic Keyboard re-mapping (key binding)
It sounds like the key-up events are getting lost. But I don't know how to fix that.
Is there any possibility of fitting physical jog buttons? Those would operate in the real-time layer and will be much more reliable than relying on GUI key handling.
Is there any possibility of fitting physical jog buttons? Those would operate in the real-time layer and will be much more reliable than relying on GUI key handling.
Please Log in or Create an account to join the conversation.
18 Nov 2022 01:37 #256998
by cakeslob
Replied by cakeslob on topic Keyboard re-mapping (key binding)
I did your mod in a usercommand file and tested it in axis_9axis sim. In the sim, Im not seeing the behavior on UV. The C axis kinda describes what you mean.
I think maybe it is based on your acceleration setting
I think maybe it is based on your acceleration setting
Please Log in or Create an account to join the conversation.
- slidinghawk
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
18 Nov 2022 07:46 #257015
by slidinghawk
Replied by slidinghawk on topic Keyboard re-mapping (key binding)
maximum speed 125.75 acceleration 750 on all axes is the same.
Please Log in or Create an account to join the conversation.
- slidinghawk
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
18 Nov 2022 07:52 #257016
by slidinghawk
I have a manual encoder, and switches for 6 and 4 positions. I can buy an additional LPT port and connect an encoder and switches to it. I know how to set them up in mach3, but there will be a problem with LinuxСNC.
Replied by slidinghawk on topic Keyboard re-mapping (key binding)
It sounds like the key-up events are getting lost. But I don't know how to fix that.
Is there any possibility of fitting physical jog buttons? Those would operate in the real-time layer and will be much more reliable than relying on GUI key handling.
I have a manual encoder, and switches for 6 and 4 positions. I can buy an additional LPT port and connect an encoder and switches to it. I know how to set them up in mach3, but there will be a problem with LinuxСNC.
Please Log in or Create an account to join the conversation.
19 Nov 2022 01:44 #257088
by cakeslob
Replied by cakeslob on topic Keyboard re-mapping (key binding)
yeah, i did a test with your ini stuff and its not related to accel related, but Im still not getting the same behavior, although I am doing my test differently. lets split the difference on this
I did a python and made a thing for you, and anyone else who wants to edit the keys.
in the example I used to test it out, my keys and joint numbers might be different to yours, so you need to change it back to what ever you were doing. restore axis to its original state, and try out this user command file, and we can narrow down the issue. Ive included instructions and many examples, but here is the main part
I did a python and made a thing for you, and anyone else who wants to edit the keys.
in the example I used to test it out, my keys and joint numbers might be different to yours, so you need to change it back to what ever you were doing. restore axis to its original state, and try out this user command file, and we can narrow down the issue. Ive included instructions and many examples, but here is the main part
##########################################################################################
########## MODIFYING AXIS KEYBINDING MADE EASY BUT NOT TOO EASY ##########
##########################################################################################
### this file goes into the same folder as your config
### add this line to your ini file, under the display section (without the #)
### USER_COMMAND_FILE = usercommand_keybind.py
### unbind a key first (if needed), then rebind to your new thing, for example
### the down key is unbound
####### root_window.unbind('<Down>')
# then rebind it to your new command
# root_window.bind('<Down>', select_next)
#### this is for binding axis jog keys , the number at the end is the joint
# bind right and left keys to joint 0, usually x
# bind_axis("Right", "Left", 0)
# bind down and up keys to joint 1, usually y
# bind_axis("Down", "Up", 1)
The following user(s) said Thank You: slidinghawk
Please Log in or Create an account to join the conversation.
Time to create page: 0.093 seconds