здесь будут примеры с этого и других форумов...
Файл .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)