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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Chertegnik
Кандидат
Сообщения: 50
Зарегистрирован: 07 авг 2016, 03:59
Репутация: 3
Настоящее имя: Максим
Откуда: Новосибирск
Контактная информация:

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

Сообщение Chertegnik »

При настройке 3 осевого станка конфигурации X1 Y Z X2(зависимая) возникла проблема:основная ось X1 и зависимая X2 управляются с клавиатуры разными клавишами (основная стрелками влево вправо, а зависимая "[" и "]"). Подскажите, пожалуйста, как настроить управление зависимой оси как и основной стрелками на клавиатуре, чтобы можно было управлять порталом в ручном режиме?
«Точно знают, только когда мало знают. Вместе со знанием растет сомнение». Иоганн Вольфганг Гете
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

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

Сообщение N1X »

Юзать что-то вроде gantrykins... Или подключить оба привода на одну ось...
jkwe45
Опытный
Сообщения: 102
Зарегистрирован: 13 окт 2017, 12:26
Репутация: 5
Настоящее имя: Андрей
Контактная информация:

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

Сообщение jkwe45 »

Chertegnik писал(а):При настройке 3 осевого станка конфигурации X1 Y Z X2(зависимая) возникла проблема:основная ось X1 и зависимая X2 управляются с клавиатуры разными клавишами (основная стрелками влево вправо, а зависимая "[" и "]"). Подскажите, пожалуйста, как настроить управление зависимой оси как и основной стрелками на клавиатуре, чтобы можно было управлять порталом в ручном режиме?
Сигналы от контроллера (или LPT) парралелятся на драйвера, а выходы на обмотки меняются полярностью. Сигналы драйвера получают те же, а крутятся в разные стороны.
У меня так реализовано.
Аватара пользователя
Chertegnik
Кандидат
Сообщения: 50
Зарегистрирован: 07 авг 2016, 03:59
Репутация: 3
Настоящее имя: Максим
Откуда: Новосибирск
Контактная информация:

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

Сообщение Chertegnik »

gantrykins использую. Параллелить это не вариант. Зависимая ось должна хомится сама по своему концевику. Проблема в том чтобы переназначить клавиши для зависимой оси. Копаю пока здесь http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=157 но пока без результата
«Точно знают, только когда мало знают. Вместе со знанием растет сомнение». Иоганн Вольфганг Гете
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение 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)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

попробовал - так не получается...
просто переназначает,но не "объеденяет"...
по другому как то прописать надо...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение 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)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

----------------
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

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

Сообщение raddd »

Боролся с гантрикинс. Остановился на двух профилях. На гантри, хом делаю. На втором где два драйвера на оду ось назнчены, работаю.
||||||||||||
||||||||||||
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение 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 , но там гораздо больше читать придётся... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Мне всегда казалось, что после хоуминга портал работает как одна ось.
Кстати, в ветке master много улучшений по работе с порталами, советую попробовать. Емнип запрещено (или можно запретить) двигать раздельно один мотор портала - для безопасности.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

PKM писал(а):Мне всегда казалось, что после хоуминга портал работает как одна ось.
Это у меня в плазморезе на начальном этапе так было сделано - после хоминга автоматически режим "сочленений" менялся на режим "координат". :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

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

Сообщение PKM »

Не уверен насчет 2.7, но в мастере уже автоматически меняется.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

PKM писал(а):Не уверен насчет 2.7, но в мастере уже автоматически меняется.
В мастере (2.8) принцип уже совсем иной - там уже есть чёткое различие между axis и joints.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

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

Сообщение raddd »

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

Вернуться в «LinuxCNC»