PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Nick » 23 окт 2010, 13:46

PyVCP дополнительный интерфейс для EMC2 LinuxCNC emc2 pyVCP example.png
Не секрет, что стандартных графических интерфейсов EMC2 не всегда достаточно для удобного решения многих задач. Но модульная компоновка EMC2 добавлять пользовательские элементы управления станком, в том числе из отдельного процесса. Одним из способов задания элементов управления является pyVCP.

К сожалению, документация по pyVCP не очень обширна, а на русском языке практически отсутствует. Поэтому посвятим эту тему работе с pyVCP.

Итак, что же такое pyVCP

PyVCP (Python Virtual Control Panel) программа написанная на python которая использует модули gtk и hal. Значительно упрощает создание графических интерфейсов для hal. Использование pyVCP отделяет создание интерфейса от непосредственного программирования.

Какими возможностями обладает pyVCP

С помощью pyVCP можно контролировать любой параметр HAL в любой момент времени.
PyVCP можкт запускаться как отдельно (standalone) так и интегрировано в другие графические интерфейсы EMC2 например Axis.
...Это не законченный раздел вы можете помочь в его оформлении...

Базовые элементы pyVCP

Label

Простое текстовое поле.

LED

LED это своего рода контрольный диод, служит для индикации состояния конкретного halpin. LED может быть круглым и квадратным.

Texe button

Текстовая кнопка контролирует состояние конкретного halpin. Значение halpin будет равно False до тех пор пака кнопка не будет нажата. После нажатия значение станет True. Текстовая кнопка может только включить halpin.

Checkbutton

Работает так же как и текстовая кнопка, но позволяет включать и выключать halpin. Если checkbutton нажат, то halpin равен True, если отжат, то False.

Radiobutton

Включает только один из набора halpin, остальные делает выключенными.

Number

Отображает число с плавающей запятой (float).

S32

Отображает целое число от −2 147 483 648 до 2 147 483 647. (S32 - signed 32bit int)

Bar

Отображает значение вещественного числа как графически, так и текстом.

Meter

Отображает значение вещественного в виде круговой шкалы.

Spinbox

Задает значение числа с двумя кнопками увеличения и уменьшения. Можно изменять число нажимая на кнопки или навести на Spinbox указатель мышки крутить колесико.

Scale

Задает цело или вещественное число при помощи слайдера. Можно менять перетаскиванием или при помощи колеса мышки.

Dial

Позволяет изменять действительное число с заданной точностью. Отображает число в текстовом виде и в виде "поворотной ручки".

Jogwheel

Позволяет изменять действительное число с заданной точностью. Отображает число в виде "поворотной ручки".

Image Bit

Изменяет картинку в зависимости от состояния конкретного halpin.

Image U32

Изменяет картинку в зависимости от значения целого числа.

Контейнеры

Контейнеры позволяют компоновать различные базовые элементы pyVCP в окне. Если формализовать, то контейнер может содержать только один элемент - либо управляющий элемент либо контейнер. Главное окно это тоже контейнер. Таким образом, чтобы создать три кнопки нам нужно создать горизонтальный контейнер с тремя местами и в каждое место вставить по кнопке. Такой метод компоновки взят напрямую из библиотеки gtk. На первый взгляд кажется не удобным, но поработав чуть-чуть с gtk я признаю ее очень удобной.

Hbox

Горизонтальный контейнер компонует элементы горизонтально.

Vbox

Вертикальный контейнер компонует элементы Вертикально.

Labelframe

Создает рамку с надписью.

Table

Компонует элементы в таблицу. При этом можно объединять ячейки.

Tabs

Cоздает панель со вкладками.

Пример использования pyVCP

Это не законченный раздел вы можете помочь в его оформлении.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22526
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1576
Заслуга: Developer
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Lexxa » 11 мар 2012, 20:57

Все же я решил сделать имитацию пульта станка.
Дела с PyVCP никогда не имел. Прописать несколько контейнеров внутри одног, чтобы они там лжали в определенной последовательности? Как задать их размер или координаты вершин?
Контейнер внутри контейнера делать?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2648
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 306
Медальки:
Настоящее имя: Алексей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение nkp » 11 мар 2012, 21:17

http://www.linuxcnc.org/docview/2.5/html/hal/pyvcp.html
Расположение по порядку располож в XML в соответствии vbox и hbox
nkp
Мастер
 
Сообщения: 8232
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1528
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Lexxa » 11 мар 2012, 22:02

Все элементы внутри vbox располагаются вертикально, а внутри hbox - горизонтально, правильно я понимаю?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2648
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 306
Медальки:
Настоящее имя: Алексей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение nkp » 11 мар 2012, 22:04

Точно
nkp
Мастер
 
Сообщения: 8232
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1528
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Lexxa » 11 мар 2012, 23:38

а как в radiobutton сделать по умолчанию не первую галку?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2648
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 306
Медальки:
Настоящее имя: Алексей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Nick » 13 мар 2012, 00:51

хммм... хороший вопрос...


Кстати, для компоновки виджетов также можно использовать table, если это будет удобнее.
Аватара пользователя
Nick
Мастер
 
Сообщения: 22526
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1576
Заслуга: Developer
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Lexxa » 13 мар 2012, 00:53

что за table?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2648
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 306
Медальки:
Настоящее имя: Алексей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Nick » 13 мар 2012, 01:01

Ну это как бы hbox умножить на vbox :). Т.е. таблица из виджетов, вот пример (отсюда http://linuxcnc.org/docs/html/hal_pyvcp.html#r1_6_7_5):
Код: Выделить всёРазвернуть
<table flexible_rows="[2]" flexible_columns="[1,4]">
<tablesticky sticky="new"/>
<tablerow/>
    <label>
        <text>" A (cell 1,1) "</text>
        <relief>RIDGE</relief>
        <bd>3</bd>
    </label>
    <label text="B (cell 1,2)"/>
        <tablespan columns="2"/>
    <label text="C, D (cells 1,3 and 1,4)"/>
<tablerow/>
    <label text="E (cell 2,1)"/>
    <tablesticky sticky="nsew"/>
    <tablespan rows="2"/>
    <label text="'spans\n2 rows'"/>
    <tablesticky sticky="new"/>
    <label text="G (cell 2,3)"/>
    <label text="H (cell 2,4)"/>
<tablerow/>
    <label text="J (cell 3,1)"/>
    <label text="K (cell 3,2)"/>
    <u32 halpin="test"/>
</table>
Аватара пользователя
Nick
Мастер
 
Сообщения: 22526
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1576
Заслуга: Developer
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Lexxa » 13 мар 2012, 01:11

а, понял
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2648
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 306
Медальки:
Настоящее имя: Алексей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение aftaev » 17 янв 2015, 23:24

Nick, а где с чего начинать и куды все писать :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 31655
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5666
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение tooshka » 17 янв 2015, 23:31

aftaev писал(а):Nick, а где с чего начинать и куды все писать

Вот тут почитай
fоrumсnс....../showthread.php?7207-GladeVCP-%E8-PyVCP-%E4%EB%FF-%ED%E0%F7%E8%ED%E0%FE%F9%E8%F5/page2&s=b9451dc936e80e479923aa9b10e3fd47
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
tooshka
Почётный участник
Почётный участник
 
Сообщения: 1799
Зарегистрирован: 24 окт 2012, 14:26
Откуда: Нижний Новгород
Репутация: 209
Медальки:
Настоящее имя: Андрей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение UAVpilot » 17 янв 2015, 23:35

tooshka писал(а):Вот тут почитай
http://forumcnc...../showthread.php?7207- ... 9b10e3fd47

Ага! Вот кто у нас продвигает сайты-клоны! Изображение
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19891
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4796
Медальки:
Настоящее имя: Сергей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение tooshka » 17 янв 2015, 23:40

UAVpilot писал(а):Ага! Вот кто у нас продвигает сайты-клоны!

Та нет ))) я просто помочь хотел. Набрал в поиске оно и вылезло.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
tooshka
Почётный участник
Почётный участник
 
Сообщения: 1799
Зарегистрирован: 24 окт 2012, 14:26
Откуда: Нижний Новгород
Репутация: 209
Медальки:
Настоящее имя: Андрей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение UAVpilot » 17 янв 2015, 23:42

И решил помочь ему вылезать впереди всех? :)
Лучше вот этому помогай: http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=1875
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19891
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4796
Медальки:
Настоящее имя: Сергей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение tooshka » 17 янв 2015, 23:44

Да залет конкретный. Ну что пойду затылок зеленкой мазать))).
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
tooshka
Почётный участник
Почётный участник
 
Сообщения: 1799
Зарегистрирован: 24 окт 2012, 14:26
Откуда: Нижний Новгород
Репутация: 209
Медальки:
Настоящее имя: Андрей

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение antoxa-kylibin » 12 ноя 2019, 08:53

Народ, такой вопрос. Связи пинов интерфейса pyvcp и hal нужно прописывать в postgui_hal файле? Или можно и в custom.hal например прописать связь нужных пинов hal с пинами pyvcp интерфейса?
antoxa-kylibin
Мастер
 
Сообщения: 367
Зарегистрирован: 22 июн 2017, 13:18
Откуда: г. Воронеж
Репутация: 21
Настоящее имя: Антон

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение Сергей Саныч » 12 ноя 2019, 09:08

antoxa-kylibin писал(а):Связи пинов интерфейса pyvcp и hal нужно прописывать в postgui_hal файле?
Да. Иначе будет ошибка, что пины не существуют.
Кроме того, hal-файлов HALFILE может быть несколько (что удобно), а вот POSTGUI_HALFILE - только один.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8804
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2756
Медальки:

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение antoxa-kylibin » 12 ноя 2019, 11:06

Ага, понял. В доках недавно прочитал что postgui_hal грузится после загрузки пользовательских панелей. Какой из интерфейсов более легковесный pyvcp или gladevcp?
antoxa-kylibin
Мастер
 
Сообщения: 367
Зарегистрирован: 22 июн 2017, 13:18
Откуда: г. Воронеж
Репутация: 21
Настоящее имя: Антон

Re: PyVCP дополнительный интерфейс для EMC2 LinuxCNC

Сообщение antoxa-kylibin » 12 ноя 2019, 11:39

В pyvcp возможно реализовать такой принцип построения интерфейса: делаются базовые кнопки, при нажатии на которые открываются доп функции в заданной области, сама базовая кнопка при этом зажата. Если на неё ещё раз нажать, то она отжимается и панель пропадает. Ну по типу кнопок jog, auto, mdi в gmoccapy???
antoxa-kylibin
Мастер
 
Сообщения: 367
Зарегистрирован: 22 июн 2017, 13:18
Откуда: г. Воронеж
Репутация: 21
Настоящее имя: Антон

След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: 1240, Абдурашид, aftaev, Bender, Bing [Bot], Сергей Саныч, CybSys, elephant007, Enot_1, Евгения, gennadiy, Gestap, Google [Bot], Hugo, masterlomaster, mikehv, mikro3v, PavelTch, RNDL, Roman86, Ruslan_Zp, shalek, Smlua, sodefi, tsurika, uralpt, vlad-vadim, xenon-alien, xvovanx, Yandex [bot]

Reputation System ©'