Организация MyGUI: различия между версиями
Вopoн226 (обсуждение | вклад) |
Вopoн226 (обсуждение | вклад) |
||
| Строка 18: | Строка 18: | ||
Прописываем в файле MyGUI.ini | Прописываем в файле MyGUI.ini | ||
[DISPLAY] | [DISPLAY] | ||
| − | DISPLAY = mygui | + | DISPLAY = ./mygui |
| − | INTRO_GRAPHIC = img001.JPG | + | #Говорит о том, что скрипт запуска Вашей панели находится в текущей для процесса папке |
| − | INTRO_TIME = 5 | + | #LinuxCNC устроен так, что в самом начале в качестве текущего назначает каталог с ini файлом |
| − | PROGRAM_PREFIX = /home/<имя_пользователя>/linuxcnc/nc_files | + | INTRO_GRAPHIC = img001.JPG |
| + | #картинка заставки | ||
| + | INTRO_TIME = 5 | ||
| + | #время показа заставки | ||
| + | PROGRAM_PREFIX = /home/<имя_пользователя>/linuxcnc/nc_files | ||
| + | #адрес исполняемых файлов | ||
[HAL] | [HAL] | ||
HALFILE = MyGUI.hal | HALFILE = MyGUI.hal | ||
| − | HALUI = halui | + | HALUI = halui |
| + | #при использовании halui | ||
[HALUI] | [HALUI] | ||
| − | MDI_COMMAND = G92 X0 Y0 Z5 | + | MDI_COMMAND = G92 X0 Y0 Z5 |
| − | MDI_COMMAND = M102 | + | #при использовании MDI-команд |
| + | MDI_COMMAND = M102 | ||
| + | #MDI-команда с пользовательской M-командой | ||
== Файл mygui == | == Файл mygui == | ||
Версия 19:08, 29 мая 2014
В этой статье попробую коротко описать структуру MyGUI:
Содержание
Папка MyGUI
Папка MyGUI в папке <имя_пользователя>/linuxcnc/configs
Для удобства отладки и легкого переноса конфигурации на станок расположим все файлы конфигурации и файл описания панели в одной папке. В этой папке находятся:
MyGUI.ini MyGUI.hal mode.hal (прописаны связи пинов панели, пинов halui и пинов linuxcnc) dist.py (пользовательский компонент. Может быть и другой либо другие, либо отсутствовать вообще) tool.tbl mygui (файл, в котором прописаны установки и расположение файла визуальной панели) mygui.glade (визуальная панель, написанная в редакторе Glade)
Файл MyGUI.ini
Прописываем в файле MyGUI.ini
[DISPLAY] DISPLAY = ./mygui #Говорит о том, что скрипт запуска Вашей панели находится в текущей для процесса папке #LinuxCNC устроен так, что в самом начале в качестве текущего назначает каталог с ini файлом INTRO_GRAPHIC = img001.JPG #картинка заставки INTRO_TIME = 5 #время показа заставки PROGRAM_PREFIX = /home/<имя_пользователя>/linuxcnc/nc_files #адрес исполняемых файлов [HAL] HALFILE = MyGUI.hal HALUI = halui #при использовании halui [HALUI] MDI_COMMAND = G92 X0 Y0 Z5 #при использовании MDI-команд MDI_COMMAND = M102 #MDI-команда с пользовательской M-командой
Файл mygui
Файл mygui в папке <имя_пользователя>/linuxcnc-dev/bin
Файл mygui.glade
Файл mygui.glade в папку <имя_пользователя>/linuxcnc-dev/share/linuxcnc
Файл start
Файл start в папке <имя_пользователя>/linuxcnc-dev
В Система — Параметры — Запускаемые приложения прописываем автозагрузку start
Использование halshow
Если у Вас в файле mygui прописан полноэкранный режим, а Вам необходимо проверить, как работают пины Вашей конфигурации станка,то необходимо сделать следующее:
Ctrl + Alt + T - вызвать терминал
Далее в терминале выполняем
cd linuxcnc-dev/tcl/bin wish halshow.tcl
Появляется окно halshow, в котором можно посмотреть всё, что есть в нашем станке.
Использование пользовательской M-команды
Если используем пользовательскую M-команду, то размещаем её, например, файл M102, в папке <имя_пользователя>/linuxcnc-dev/nc_files
Главное условие, чтобы место, где размещен M-код совпадало с адресом, прописанным в INI-файле:
[DISPLAY] PROGRAM_PREFIX = <адрес папки с M-кодом>
в данном случае:
[DISPLAY] PROGRAM_PREFIX = <имя_пользователя>/linuxcnc-dev/nc_files
Чтобы для выполнения команды не требовалось вводить пароль администратора необходимо исправить /etc/sudoers .
Для этого в терминале набираем:
sudo gedit /etc/sudoers
после ввода пароля откроется указанный файл в редакторе Gedit примерного содержания :
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset и т.д.
В конце нужно прописать строчку:
ALL ALL = NOPASSWD: /sbin/halt, /sbin/shutdown
и сохранить.
Теперь эту команду можно использовать как в программе для станка, так и через MDI-команды. Для этого прописываем в INI-файле:
[HALUI] MDI_COMMAND = <имя M-кода, например, M102>
А запуск этой команды "привязать" к кнопке вашей визуальной панели, например:
net mdi mygui.hal_button<N> halui.mdi-command-<номер команды в INI-файле, начиная с нуля>
Есть одно условие, которое быть выполнено, чтобы исполнить этот M-код - выставленные home по координатам. Если home не выставлен - исполнить эту команду не получится.
Что же делать, чтобы воспользоваться M-кодом, если на вашем станке координаты не имеют home?
Нужно в INI-файле прописать:
[TRAJ] NO_FORCE_HOMING = 1
И теперь M-код будет исполняться в любой момент, даже если у вас нет home.