здесь будут примеры с этого и других форумов...
Файл .axisrc по умолчанию находится в домашней папке.
Точка в начале говорит о том,что файл скрытый(Hidden) ,отсюда - чтоб увидеть жмем (в Nautilus) Ctrl+H
В терминале чтоб "увидеть" :
ls -a
------------------------------------
Сразу следует отметить,что в некоторых случаях (например - несколько конфигов,и для каждого необходим "свой .axisrc") удобней
его держать в папке конфига.
Тогда в INI файле прописываем в секции
Код: Выделить всё
[DISPLAY]
USER_COMMAND_FILE = gui.pyдалее по тексту будет всегда использоваться имя .axisrc
Синтаксис файла разумеется python , иногда именно несоблюдение синтаксиса(отступы чаще всего) и является причиной ошибки.
Кстати - если ошибки не критичны - содержимое игнорируется(с выдачей окошка с ошибкой) ,а емс запускается.
------------------------------------------
Для чего служит?
Если предельно упрощенно - то это "продолжение" основного файла интерфейса axis.py
Код .axisrc выполняется после axis.py,и это значит ,что мы можем изменить интерфейс Axis не изменяя сам файл axis.py.
В таком случае,когда у нас обновится версия емс ,то наши изменения сохранятся .
-----------------------
Что можно "делать" в этом файле:
1. изменять функционал("поведение") программы
как пример - заставить емс (Axis) при загрузке открываться "на весь экран":
Код: Выделить всё
#maximize window
root_window.attributes("-zoomed",1)2. изменять внешний вид
пример
3. создавать свои пины
таким образом "подключая" Hal к функционалу интерфейса
пример:
Код: Выделить всё
if hal_present == 1 :
    ucomp = hal.component("userpin")
    ucomp.newpin("reload_file",hal.HAL_BIT, hal.HAL_IN)4. еще одна удобная фича - функция user_live_update()
она выполняется в цикле,(кому интересно - через LivePlotter.update axis.py)
а следовательно задействуется для всех обновлений интерфейса
пример
таймер хода программы в статус_строке Axis
Код: Выделить всё
if hal_present == 1 :
    ucomp = hal.component("axisui.user")
    ucomp.newpin('hr',   hal.HAL_U32, hal.HAL_IN)
    ucomp.newpin('mn',  hal.HAL_U32, hal.HAL_IN)
    ucomp.newpin('sec',  hal.HAL_U32, hal.HAL_IN)
    ucomp.ready()  
W = root_window.tk.call
W('label','.info.ttime','-text','TTime:' )
W('pack', '.info.ttime', '-side', 'right')
W('pack','.info.tool','-fill','x','-expand','0'  )
def user_live_update():
    W('.info.ttime','configure','-text','%2d:%2d:%2d' % ( (ucomp['hr']),(ucomp['mn']),(ucomp['sec'])))Код: Выделить всё
loadrt time 
loadrt not 
addf time.0 servo-thread 
addf not.0 servo-thread 
net prog-running not.0.in <= halui.program.is-idle 
net cycle-timer time.0.start <= not.0.out 
net cycle-seconds axisui.user.sec <= time.0.seconds 
net cycle-minutes axisui.user.mn  <= time.0.minutes 
net cycle-hours   axisui.user.hr  <= time.0.hoursоткрытие последнего G-кода при загрузке емс
Код: Выделить всё
lastfile = ""
recent = ap.getpref('recentfiles', [], repr)
if len(recent):
    lastfile = recent.pop(0)
if os.path.exists(lastfile):
    initialfile = lastfile
if os.path.exists(initialfile):
    open_file_guts(initialfile, False, addrecent)