Keyboard re-mapping (key binding)

More
08 Nov 2011 21:54 - 08 Nov 2011 21:55 #14702 by andypugh
Last edit: 08 Nov 2011 21:55 by andypugh.

Please Log in or Create an account to join the conversation.

More
08 Nov 2011 21:55 #14703 by BigJohnT
And Andy found this on the mailing list from one of the developers...

AXIS doesn't pay attention to jog keys with modifier keys pressed
because this had some bad interactions with using the numeric keypad as
digits in MDI mode.

You can put magic incantations in the file ~/.axisrc that customize the
jog keys and also get rid of this behavior of ignoring the key if a
modifier key is pressed.

Here is an example which changes the keys that jog the active axis, and
the keys that jog the A axis:

# -- cut here


# Bind ; and ' to jog active axis
root_window.bind("<semicolon>", commands.jog_minus)
root_window.bind("<apostrophe>", commands.jog_plus)
root_window.bind("<KeyRelease-semicolon>", commands.jog_stop)
root_window.bind("<KeyRelease-apostrophe>", commands.jog_stop)

# Bind ( and ) to jog axis 3 (0=X, 1=Y, 2=Z, 3=A, 4=B, ...)
root_window.bind("<parenleft>", lambda e: jog_on(3, -get_jog_speed(3)))
root_window.bind("<parenright>", lambda e: jog_on(3, get_jog_speed(3)))
root_window.bind("<KeyRelease-parenleft>", lambda e: jog_off(3))
root_window.bind("<KeyRelease-parenright>", lambda e: jog_off(3))
# -- cut here

To edit your ~/.axisrc file, open a terminal window (Applications > Accessories >
Terminal). Then type "gedit .axisrc". Paste the lines above into the file,
then click save, then close the application.

The next time you run emc, the settings in the .axisrc file will take effect.

To edit it again, just do the same thing: "gedit .axisrc" in the
terminal.

If you want to use different keys, here's how to figure out what to use instead
of "parenleft" and so on: In the terminal, type "xev". A new window
will pop up. Click on it, but keep an eye on the terminal window. When
you press a key, it will print several lines of information on the
terminal. The one that matters is this one:
state 0x0, keycode 34 (keysym 0x5b, bracketleft), same_screen YES,
^^^^^^^^^^^
that keysym string is the one to put in your .axisrc file.

Jeff

Please Log in or Create an account to join the conversation.

More
08 Nov 2011 22:37 #14705 by ioiotutu
It is clear.

I'll try.

Thanks.

Please Log in or Create an account to join the conversation.

More
09 Nov 2011 08:04 #14712 by ioiotutu
Thanks,
with this code in axisrc all work fine:

#swap bind key
# Bind ( and ) to jog axis 3 (0=X, 1=Y, 2=Z, 3=A, 4=B, ...)
root_window.bind("<Up>", lambda e: jog_on(0, -get_jog_speed(0)))
root_window.bind("<Down>", lambda e: jog_on(0, +get_jog_speed(0)))
root_window.bind("<KeyRelease-Up>", lambda e: jog_off(0))
root_window.bind("<KeyRelease-Down>", lambda e: jog_off(0))
root_window.bind("<Left>", lambda e: jog_on(1, -get_jog_speed(1)))
root_window.bind("<Right>", lambda e: jog_on(1, +get_jog_speed(1)))
root_window.bind("<KeyRelease-Left>", lambda e: jog_off(1))
root_window.bind("<KeyRelease-Right>", lambda e: jog_off(1))

Please Log in or Create an account to join the conversation.

More
05 Nov 2017 17:35 #101360 by mrchar
Hello, how can I do this when I don't have .axisrc?

I have 2.7.11 linuxcnc

thank you

Please Log in or Create an account to join the conversation.

More
05 Nov 2017 23:37 #101383 by andypugh
You can just create the .axisrc file and it will be used.

Create it with the system text editor (probably Mousepad or Gedit) in your home folder.

Please Log in or Create an account to join the conversation.

More
06 Nov 2017 07:35 #101390 by mrchar
THANK YOU, it works!!!

Please Log in or Create an account to join the conversation.

More
01 Feb 2018 13:57 #105280 by Lazarov
Hello.

I trying to change the buttons on the keyboard but it does not work.
Left Arrow --> X-
Right Arrow --> X+
Up Arrow --> Y-
Down Arrow --> Y+

Where should I create the .axisrc file?

Here is my code in .axisrc file:

#swap bind key
# Bind ( and ) to jog axis 3 (0=X, 1=Y, 2=Z, 3=A, 4=B, ...)
root_window.bind("<Up>", lambda e: jog_on(1, -get_jog_speed(1)))
root_window.bind("<Down>", lambda e: jog_on(1, +get_jog_speed(1)))
root_window.bind("<KeyRelease-Up>", lambda e: jog_off(1))
root_window.bind("<KeyRelease-Down>", lambda e: jog_off(1))
root_window.bind("<Left>", lambda e: jog_on(0, +get_jog_speed(0)))
root_window.bind("<Right>", lambda e: jog_on(0, -get_jog_speed(0)))
root_window.bind("<KeyRelease-Left>", lambda e: jog_off(0))
root_window.bind("<KeyRelease-Right>", lambda e: jog_off(0))

Do you have any idea?

Š¢hank you in advance.
Attachments:

Please Log in or Create an account to join the conversation.

More
01 Feb 2018 14:19 - 01 Feb 2018 14:20 #105281 by Lazarov
I'm sorry I did not understand where I was supposed to put the file but now I put it in the right place and it all worked.
Last edit: 01 Feb 2018 14:20 by Lazarov.

Please Log in or Create an account to join the conversation.

Time to create page: 0.136 seconds
Powered by Kunena Forum