Страница 1 из 1

Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 09:33
Chertegnik
При настройке 3 осевого станка конфигурации X1 Y Z X2(зависимая) возникла проблема:основная ось X1 и зависимая X2 управляются с клавиатуры разными клавишами (основная стрелками влево вправо, а зависимая "[" и "]"). Подскажите, пожалуйста, как настроить управление зависимой оси как и основной стрелками на клавиатуре, чтобы можно было управлять порталом в ручном режиме?

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 09:56
N1X
Юзать что-то вроде gantrykins... Или подключить оба привода на одну ось...

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 10:07
jkwe45
Chertegnik писал(а):При настройке 3 осевого станка конфигурации X1 Y Z X2(зависимая) возникла проблема:основная ось X1 и зависимая X2 управляются с клавиатуры разными клавишами (основная стрелками влево вправо, а зависимая "[" и "]"). Подскажите, пожалуйста, как настроить управление зависимой оси как и основной стрелками на клавиатуре, чтобы можно было управлять порталом в ручном режиме?
Сигналы от контроллера (или LPT) парралелятся на драйвера, а выходы на обмотки меняются полярностью. Сигналы драйвера получают те же, а крутятся в разные стороны.
У меня так реализовано.

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 10:30
Chertegnik
gantrykins использую. Параллелить это не вариант. Зависимая ось должна хомится сама по своему концевику. Проблема в том чтобы переназначить клавиши для зависимой оси. Копаю пока здесь http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=157 но пока без результата

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 10:52
nkp
в файл .axisrc пробовать вписать что то примерно :

Код: Выделить всё

if lathe:
    bind_axis("Left", "Right", 2)
    bind_axis("Up", "Down", 0)
    bind_axis("KP_Left", "KP_Right", 2)
    bind_axis("KP_Up", "KP_Down", 0)
    bind_axis("KP_4", "KP_6", 2)
    bind_axis("KP_8", "KP_2", 0)
    root_window.bind("<KeyPress-KP_Next>", kp_wrap(lambda e: None, "KeyPress"))
    root_window.bind("<KeyPress-KP_Prior>", kp_wrap(lambda e: None, "KeyPress"))
else:
    bind_axis("Left", "Right" , 3)

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 11:00
nkp
попробовал - так не получается...
просто переназначает,но не "объеденяет"...
по другому как то прописать надо...

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 11:54
nkp
попробуй в .axisrc прописать:

Код: Выделить всё

def two_axis_r(d):
    jog_on(d, -get_jog_speed(d))
    jog_on(d+3, -get_jog_speed(d+3))

def two_axis_l(d):
    jog_on(d, get_jog_speed(d))
    jog_on(d+3, get_jog_speed(d+3))

def two_axis_max_r(d):
    jog_on(d, -get_max_jog_speed(d))
    jog_on(d+3, -get_max_jog_speed(d+3))
    
def two_axis_max_l(d):
    jog_on(d, get_max_jog_speed(d))
    jog_on(d+3, get_max_jog_speed(d+3))
                
def two_axis_off(d):
    jog_off(d)
    jog_off(d+3)
       
    
    
def bind_axis(a, b, d):
    if d==0:
        root_window.bind("<KeyPress-%s>" % a, kp_wrap(lambda e: two_axis_r(d), "KeyPress"))
        root_window.bind("<KeyPress-%s>" % b, kp_wrap(lambda e: two_axis_l(d), "KeyPress"))
        root_window.bind("<Shift-KeyPress-%s>" % a, lambda e: two_axis_max_r(d))
        root_window.bind("<Shift-KeyPress-%s>" % b, lambda e: two_axis_max_l(d))      
        root_window.bind("<KeyRelease-%s>" % a, lambda e: two_axis_off(d))
        root_window.bind("<KeyRelease-%s>" % b, lambda e: two_axis_off(d))
    else:
        root_window.bind("<KeyPress-%s>" % a, kp_wrap(lambda e: jog_on(d, -get_jog_speed(d)), "KeyPress"))
        root_window.bind("<KeyPress-%s>" % b, kp_wrap(lambda e: jog_on(d, get_jog_speed(d)), "KeyPress"))
        root_window.bind("<Shift-KeyPress-%s>" % a, lambda e: jog_on(d, -get_max_jog_speed(d)))
        root_window.bind("<Shift-KeyPress-%s>" % b, lambda e: jog_on(d, get_max_jog_speed(d)))
        root_window.bind("<KeyRelease-%s>" % a, lambda e: jog_off(d))
        root_window.bind("<KeyRelease-%s>" % b, lambda e: jog_off(d))




if lathe:
    bind_axis("Left", "Right", 2)
    bind_axis("Up", "Down", 0)
    bind_axis("KP_Left", "KP_Right", 2)
    bind_axis("KP_Up", "KP_Down", 0)
    bind_axis("KP_4", "KP_6", 2)
    bind_axis("KP_8", "KP_2", 0)
    root_window.bind("<KeyPress-KP_Next>", kp_wrap(lambda e: None, "KeyPress"))
    root_window.bind("<KeyPress-KP_Prior>", kp_wrap(lambda e: None, "KeyPress"))
else:
    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)

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 12:06
nkp
============================
если нужно двигать другой парой(или тройкой)) , то просто правим :
if d==0: здесь 0 - это номер основной оси...
d+3 - "подчиненная" 0+3 - ось 3
-------------

----------------

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 15:22
raddd
Боролся с гантрикинс. Остановился на двух профилях. На гантри, хом делаю. На втором где два драйвера на оду ось назнчены, работаю.

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 15:40
Serg
Chertegnik писал(а):gantrykins использую. Параллелить это не вариант. Зависимая ось должна хомится сама по своему концевику. Проблема в том чтобы переназначить клавиши для зависимой оси. Копаю пока здесь http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=157 но пока без результата
как-бы это ни странно выглядело, но про gantrykins копать лучше тут: http://linuxcnc.org/docs/2.7/html/man/m ... ins.9.html :)
raddd писал(а):Боролся с гантрикинс. Остановился на двух профилях. На гантри, хом делаю. На втором где два драйвера на оду ось назнчены, работаю.
пользователи готовы "изобрести" всё, что угодно, лишь-бы не читать полтора десятка строчек в документации. ;)

P.S. можно покопать и тут http://www.cnc-club.ru/forum/viewtopic. ... 59#p372480 , но там гораздо больше читать придётся... :)

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 17:22
PKM
Мне всегда казалось, что после хоуминга портал работает как одна ось.
Кстати, в ветке master много улучшений по работе с порталами, советую попробовать. Емнип запрещено (или можно запретить) двигать раздельно один мотор портала - для безопасности.

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 19:34
Serg
PKM писал(а):Мне всегда казалось, что после хоуминга портал работает как одна ось.
Это у меня в плазморезе на начальном этапе так было сделано - после хоминга автоматически режим "сочленений" менялся на режим "координат". :)

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 22:49
PKM
Не уверен насчет 2.7, но в мастере уже автоматически меняется.

Re: Управление зависимой осью в Linuxcnc

Добавлено: 24 дек 2017, 23:54
Serg
PKM писал(а):Не уверен насчет 2.7, но в мастере уже автоматически меняется.
В мастере (2.8) принцип уже совсем иной - там уже есть чёткое различие между axis и joints.

Re: Управление зависимой осью в Linuxcnc

Добавлено: 25 дек 2017, 23:55
raddd
Читал я эти ветки. Не помню что за косяк. Но он есть,(может был,т.к. давно не обновлял ЕМС).
Потому и решил оставить два конфига.меня устраивает.