Страница 33 из 47

Re: MyGUI

Добавлено: 06 мар 2013, 22:39
Ворон226
Сделано. При закрытии окна GladeVCP ничего в консоли не пишет...

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

cnc@cnc-desktop:~$ cd linuxcnc-dev
cnc@cnc-desktop:~/linuxcnc-dev$ . scripts/rip-environment
cnc@cnc-desktop:~/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.0-pre0-3876-g3bf98ee
Machine configuration directory is '/home/cnc/linuxcnc-dev/configs/MyGUI2'
Machine configuration file is 'MyGUI.ini'
Starting LinuxCNC...
redis server started as: 'redis-server ', logging to: /dev/null
io started
emc/iotask/ioControl.cc 751: can't load tool table.
halcmd loadusr io started
task pid=1534
emcTaskInit: using builtin interpreter

Re: MyGUI

Добавлено: 06 мар 2013, 22:41
nkp
ну теперь только файл Glade смотреть ;)

Re: MyGUI

Добавлено: 06 мар 2013, 22:44
Ворон226
Так вот он.

Re: MyGUI

Добавлено: 06 мар 2013, 22:48
nkp
Выделение(006).jpg (1539 просмотров) <a class='original' href='./download/file.php?id=12601&mode=view' target=_blank>Загрузить оригинал (207.8 КБ)</a>

Re: MyGUI

Добавлено: 06 мар 2013, 22:52
nkp
вообще в этом месте следует заметить- что гораздо правильней все привязки функций делать в скрипте
все сразу видно - легко ищется и редактируется

Re: MyGUI

Добавлено: 06 мар 2013, 22:56
Ворон226
А ведь прописывал! :(

В скрипте - это на питоне писать? Или прописывать в postgui.hal?

Re: MyGUI

Добавлено: 06 мар 2013, 23:05
nkp
Ворон226 писал(а):В скрипте - это на питоне писать
скрипт - это на питоне
а выглядит это примерно так:

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

self.widgets = Widgets(self.builder)
self.widgets.button86.connect("clicked", self.unfullscreen)
это дело пишем в def __init__(self)
self.widgets.button86 - это наша кнопка в Glade
self.unfullscreen - наша функция

Re: MyGUI

Добавлено: 06 мар 2013, 23:23
Ворон226
на потом... Попробую просто прописать пины и связи в .hal
Спасибо! Отбой!

Re: MyGUI

Добавлено: 08 мар 2013, 23:31
nkp
давно хотел немного изменить цветовую гамму Gremlin
и вот подсмотрел как это сделать...
опишу для Axis :
в домашней папке создаем файл .Xresources с таким содержимым:

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

*Togl.back: white
*Togl.dwell: #008000
*Togl.m1xx: #008080

*Togl.straight_feed: black
*Togl.arc_feed: black
*Togl.traverse: #0000f0

*Togl.backplotjog: #b0b0b0
*Togl.backplotfeed: #c04040
*Togl.backplotarc: #c04000
*Togl.backplottraverse: #404080

*Togl.selected: #08246b

*Togl.overlay_foreground: black
*Togl.overlay_background: white

*Togl.small_origin: #008080
*Togl.axis_x: #208020
*Togl.axis_y: #802020
*Togl.axis_z: #202080

*Togl.cone: #08246b

*Togl.label_ok: #004444
*Togl.label_limit: #cc4444
это "стандартные" цвета
теперь изменяем их по своему усмотрению...
не забываем перезагрузить комп ...
Выделение(017).jpg (1520 просмотров) <a class='original' href='./download/file.php?id=12647&mode=view' target=_blank>Загрузить оригинал (267.63 КБ)</a>

Re: MyGUI

Добавлено: 09 мар 2013, 00:11
Serg
nkp писал(а):не забываем перезагрузить комп ...
Не надо перезагружать комп, достаточно перезагрузить .Xresources

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

xrdb -load ~/.Xresources
P.S. В Linux перезагрузка компа может потребоваться только если изменены некоторые параметры ядра или корневой ФС.

Re: MyGUI

Добавлено: 09 мар 2013, 11:16
Ворон226
А вот после изменения визуальной панели с встроенной в AXIS на самостоятельную
нужно ли изменять наименования пинов панели в postgui.hal?

Было
net start gladevcp.hal_button11 halui.program.run
Теперь нужно
net start myguivcp.hal_button11 halui.program.run
???
Или
net start mygui.hal_button11 halui.program.run

Re: MyGUI

Добавлено: 09 мар 2013, 12:54
nkp
Ворон226 писал(а):с встроенной в AXIS на самостоятельную
postgui.hal - это фишка от Axis
так что работать он вообще не будет
а прописать загрузку своего хал файла можно - вот например так:

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

if __name__ == "__main__":
	app = Mygui()
	res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/nkp/emc2-dev-31bcbd2/configs/MyGUI/mode.hal"])
	if res: raise SystemExit, res
	gtk.main()
ну путь к файлу конечно подправить
==================
названия пинов прописываешь этой строкой:

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

self.halcomp = hal.component("mygui")
можешь поставить оригинальное - ведь GUI ты пишешь оригинальный ;)

Re: MyGUI

Добавлено: 09 мар 2013, 12:59
Ворон226
Стоп!
Вот тут я не понял... Так я теперь не смогу прописать соединения пинов визуальной панели и программных пинов в каком-либо .hal-е??? Только программировать в Питоне?

Re: MyGUI

Добавлено: 09 мар 2013, 13:04
nkp
Все остается по прежнему - просто с axis ты мог загрузить хал строкой в ини

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

POSTGUI_HALFILE = custom_postgui.hal
то теперь этот же файл для загрузки надо прописать в скрипте (как выше я описал)

Re: MyGUI

Добавлено: 09 мар 2013, 15:18
Ворон226
а имя файла - mode.hal например, как у тебя.
В mode.hal я прописываю соединения пинов так же, как и в postgui.hal?
А как CNC поймёт, что в файле mygui.py написано, где находится mode.hal?

Re: MyGUI

Добавлено: 09 мар 2013, 15:20
Ворон226
nkp писал(а):названия пинов прописываешь этой строкой:
self.halcomp = hal.component("mygui")
А где прописываю?

Re: MyGUI

Добавлено: 09 мар 2013, 15:34
nkp
Ворон226 писал(а):А как CNC поймёт, что в файле mygui.py написано, где находится mode.hal?
так ты же путь полный к файлу прописываешь :
res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/nkp/emc2-dev-31bcbd2/configs/MyGUI/mode.hal"])
Ворон226 писал(а):А где прописываю?
(для просмотра содержимого нажмите на ссылку)
Выделение(019).jpg (1488 просмотров) <a class='original' href='./download/file.php?id=12665&mode=view' target=_blank>Загрузить оригинал (258.53 КБ)</a>

Re: MyGUI

Добавлено: 09 мар 2013, 16:35
Ворон226
Вот теперь понятно.

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

    if __name__ == "__main__":
       app = Mygui()
       res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/cnc/linuxcnc-dev/configs/MyGUI2/mode.hal"])
       if res: raise SystemExit, res
       gtk.main()
- это прописываю в файле mygui, который лежит в /linuxcnc/bin
А в папке MyGui2, в которой лежат файлы конфигурации, помещаю файл с именем mode.hal, в котором прописываю все соединения пинов панели с пинами CNC. Например:
net led1 gladevcp.hal_led1 halui.joint.0.is-homed

Но вопрос остался: пины панели так и остались под своими прежними именами? - gladevcp.hal_led1
А то Линукс ругается при запуске:

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

/home/cnc/linuxcnc-dev/configs/MyGUI2/mode.hal:6: Pin 'gladevcp.hal_button3' does not exist

Re: MyGUI

Добавлено: 09 мар 2013, 18:21
nkp
наверно так не получиться...
надо создавать пины новые и к ним уже присоеденяться...
а если хочешь "по старому" - то надо наверно панель делать как дополнение к Axis
загпусти Gscreen - посмотри на его код - как это все сделано
так это полноценный gui к емс
конечно надо с питоном дольше разбираться ;)
а может есть способ и так прописать "видимость" элементов Glade в Hal
я так не пользовал - поэтому наверняка не знаю :thinking:

Re: MyGUI

Добавлено: 09 мар 2013, 18:36
Ворон226
Но вот смотри - в Glade создал панель. Её видать. И пины там прописаны...

А так я уже почитал начало темы, как там программируют каждый пин... Выходит другого варианта нет? Только изучать? Если - да, то может начать с пары кнопок? И попытаться прописать хотя бы их? А потом потихоньку пропишу и все остальные.
Тем более, что осталось кнопок-то всего ничего!
Присвоить текущему положению - нулевое положение.
Переместиться в нулевое положение.
Управление пинами LPT-порта (включить-выключить).
Индикация типа LED.
Загрузить файл для дальнейшей работы с ним.

Вот и всё. Никаких наворотов.