.axisrc

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
steals_y2k
Мастер
Сообщения: 941
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: .axisrc

Сообщение steals_y2k »

llur писал(а): С внешней кнопки было б волшебно
есть же Естоп?
Аналогичным образом сделать другую "железную" кнопку, к входу в котрой в хал привязать halui.mdi-command-10(например), на который в ини задать запуск скрипта..
llur
Новичок
Сообщения: 12
Зарегистрирован: 13 май 2020, 14:47
Репутация: 0
Настоящее имя: Николай
Контактная информация:

Re: .axisrc

Сообщение llur »

Т.е. в Станок.hal пишем net z-probe <= parport.0.pin-13-in (скрипт z-probe уже прописан на панельке и работает)?
steals_y2k
Мастер
Сообщения: 941
Зарегистрирован: 29 окт 2017, 14:08
Репутация: 60
Настоящее имя: Makc
Откуда: Ярославль
Контактная информация:

Re: .axisrc

Сообщение steals_y2k »

да это у вас и так написано должно быть. как одна из 2 строк соединения сигнала)

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

Re: .axisrc

Сообщение nkp »

активация "оси" в Axis при Jog данной осью(удобно для привязки и тд)
jogaxisget.comp:

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

// sudo halcompile --install jogaxisget.comp
component jogaxisget "determines which axis jogging";


pin in bit Xin0 "axis.0.kb-jog-active";
pin in bit Xin1;

pin in bit Yin0 "axis.1.kb-jog-active";
pin in bit Yin1;

pin in bit Zin0 "axis.2.kb-jog-active";
pin in bit Zin1;

pin out bit Xtrigger  ;
pin out bit Ytrigger  ;
pin out bit Ztrigger  ;

pin out bit activeX     ;
pin out bit activeY     ;
pin out bit activeZ     ;


pin in bit Xverify =FALSE "axisui.Xisactive";
pin in bit Yverify =FALSE "axisui.Yisactive";
pin in bit Zverify =FALSE "axisui.Zisactive";


variable hal_bit_t  prev_Xtrigger = FALSE;
variable hal_bit_t  prev_Ytrigger = FALSE;
variable hal_bit_t  prev_Ztrigger = FALSE;

license "GPL";
function _;
;;
FUNCTION(_) {

    if (( Xin0 && !Xin1 ) || ( Xin1 && !Xin0 )) {/* XOR2 axisX */
    Xtrigger = 1;
    } else {
    Xtrigger = 0;
    }

    if (( Yin0 && !Yin1 ) || ( Yin1 && !Yin0 )) {/* XOR2 axisY */
    Ytrigger = 1;
    } else {
    Ytrigger = 0;
    }


    if (( Zin0 && !Zin1 ) || ( Zin1 && !Zin0 )) {/* XOR2 axisZ */
    Ztrigger = 1;
    } else {
    Ztrigger = 0;
    }


    if(!!Xtrigger != !!prev_Xtrigger) /* Xtrigger has changed */
    {
        activeX = 1;
        if(!!Xverify) {prev_Xtrigger = Xtrigger; activeX = 0;}
    }


    if(!!Ytrigger != !!prev_Ytrigger) /* Ytrigger has changed */
    {
        activeY = 1;
        if(!!Yverify) {prev_Ytrigger = Ytrigger; activeY = 0;}
    }


    if(!!Ztrigger != !!prev_Ztrigger) /* Ztrigger has changed */
    {
        activeZ = 1;
        if(!!Zverify) {prev_Ztrigger = Ztrigger; activeZ = 0;}
    }

}
##################################################




.axisrc

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

if hal_present == 1 :
    ucomp = hal.component("axisui.user")

    ucomp.newpin("activeX",hal.HAL_BIT,hal.HAL_IN)
    ucomp.newpin("activeY",hal.HAL_BIT,hal.HAL_IN)
    ucomp.newpin("activeZ",hal.HAL_BIT,hal.HAL_IN)

    ucomp.newpin("Xisactive",hal.HAL_BIT,hal.HAL_IN)
    ucomp.newpin("Yisactive",hal.HAL_BIT,hal.HAL_IN)
    ucomp.newpin("Zisactive",hal.HAL_BIT,hal.HAL_IN)

    ucomp.ready()

def fun(pin,act):
    global flag
    if pin:
        if flag :
            flag = 0
            try:
                act()
            except:
                print "except flag = ", flag
    else:
        flag = 1



def activate_axisX():
    print "activate_axisX"
    activate_axis(0)


def activate_axisY():
    print "activate_axisY"
    activate_axis(1)


def activate_axisZ():
    print "activate_axisZ"
    activate_axis(2)


def user_live_update():

    if "xyzabcuvw".index(vars.current_axis.get())!=0:
        fun(ucomp["activeX"],activate_axisX)
    if "xyzabcuvw".index(vars.current_axis.get())!=1:
        fun(ucomp["activeY"],activate_axisY)
    if "xyzabcuvw".index(vars.current_axis.get())!=2:
        fun(ucomp["activeZ"],activate_axisZ)


    if "xyzabcuvw".index(vars.current_axis.get())==0:
        ucomp["Xisactive"] = 1
        ucomp["Yisactive"] = 0
        ucomp["Zisactive"] = 0
    if "xyzabcuvw".index(vars.current_axis.get())==1:
        ucomp["Xisactive"] = 0
        ucomp["Yisactive"] = 1
        ucomp["Zisactive"] = 0
    if "xyzabcuvw".index(vars.current_axis.get())==2:
        ucomp["Xisactive"] = 0
        ucomp["Yisactive"] = 0
        ucomp["Zisactive"] = 1

#########################################
postgui.hal

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

loadrt jogaxisget
addf jogaxisget.0       servo-thread

net    activeX     jogaxisget.0.activeX   axisui.user.activeX
net    activeY     jogaxisget.0.activeY   axisui.user.activeY
net    activeZ     jogaxisget.0.activeZ   axisui.user.activeZ

net    axis:0:kb   jogaxisget.0.Xin0   axis.0.kb-jog-active
net    axis:1:kb   jogaxisget.0.Yin0   axis.1.kb-jog-active
net    axis:2:kb   jogaxisget.0.Zin0   axis.2.kb-jog-active

net    Xisactive     jogaxisget.0.Xverify  axisui.user.Xisactive
net    Yisactive     jogaxisget.0.Yverify  axisui.user.Yisactive
net    Zisactive     jogaxisget.0.Zverify  axisui.user.Zisactive


############################
axis

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

flag = 0
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: .axisrc

Сообщение nkp »

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

forget(widgets.homebutton, "halui.home-all")
скрыть любой виджет,если в конфиге нет пина (в данном случае :
скрываем кнопку home,если в конфиге нет пина halui.home-all)
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1733
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: .axisrc

Сообщение iMaks-RS »

Отбой... не работало в виртуалке под VMWare. На реальных машинах - работает.

Что-то у меня не выходит каменный цветок:
Хотел добавить таймер из примера в первом посте..
в 2.7.15 ругается на отсутсвие halui.program.is-idle, в 2.8.2 - axisui.user.sec
код скопирован и вставлен один и тот-же. :think:
Аватара пользователя
odekolon
Мастер
Сообщения: 1114
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: .axisrc

Сообщение odekolon »

всем привет!
тут поэкcпериментировал c axisrc.
сделал разворачивание на полный экран
загрузку последней программы
со шрифтами поигрался, кнопки попробовал.
все ок.

кой чего не работает, ну да ладно...

Вопросы
1. При автозагрузке последней программы, в окне визуализации она не видна.
виден лишь маленький кусочек, то есть чтоб посмотреть прогу в окне визуализации, приходится крутить мышкой и ее колесиком.
как можно сделать чтоб в окне визуализации открывалась вся программа или все рабочее поле станка?

2. как можно уменьшить размеры конусика, который визуализирует фрезу?
вообще конечно (в недостижимом идеале) было бы классно чтоб размер конуса не был бы привязан к масштабу детали а был бы привязан к размеру окна. или вообще не зависел бы от масштаба. А то когда детальки маленькие, при виде сверху, круг слишком большой.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Ответить

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