GladeVCP и PyVCP для начинающих

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

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

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Обычно это делается настройками темы. Но повлияет на все виджеты...
Как вариант сделать две кнопочки для + и -.
Кстати, скроллинг на экране двойным нажатием не работает?
Аватара пользователя
verser
Мастер
Сообщения: 1875
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1275
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение verser »

alexandr1988 писал(а):Мне это нужно, чтобы было удобно с помощью сенсорного монитора управлять, без мыши.
Поставить готовый интерфейс для сенсорного монитора не рассматривали?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Ворон226 »

Или уйти от AXIS-а в MyGUI
Хочешь быть счастливым? Будь им!
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

Nick писал(а):Обычно это делается настройками темы. Но повлияет на все виджеты...
Как вариант сделать две кнопочки для + и -.
Кстати, скроллинг на экране двойным нажатием не работает?
Скроллинг не работает. Можете коротко описать, какие сделать эти кнопки? И еще вопрос, почему не работают кнопки Открыть и Обновить (у меня называется применить)?
файлы ui и hal во вложении.
verser писал(а):Поставить готовый интерфейс для сенсорного монитора не рассматривали?
Я смотрел на gmocappy, для моих целей axis лучше. У меня не металлорежущее оборудование, а убрать кнопки, связанные с охлаждением и прочими вещами, как я понимаю, нельзя.
Вложения
1.tar.gz
(2.69 КБ) 967 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

А что он будет регулировать?
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

Nick писал(а):А что он будет регулировать?
на download/file.php?id=34899&mode=view&mt=1 этой машине с помощью spinbutton'ov регулируется размер стежка и коррекция размеров рисунка.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Много таких параметров будет?
Ввод только с кнопок на экране?


О, что нашел. Если поменять размер шрифта, то меняется размер кнопок -
надо найти указатель на spinbutton, и потом:

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

f = pango.FontDescription("sans bold 52")
spinbutton1.modify_font(f)
Вложения
Снимок-ipython.png
Снимок-ipython.png (7.98 КБ) 1657 просмотров
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

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

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

У меня сейчас нет gladevcp под рукой, может там надо какие-то действия донастроить?
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

Действие выбираю emc_action_open. Скриншот настроек в аттаче. Непонятно значение поля fixed file name, может проблема в этом?
Аналогично не работает emc_action_reload. а вот остальные действия, связанные с ЕМС, работают.
upd
G-код содержит переменные, думаю, с этим и связан этот косяк.

надо найти указатель на spinbutton, и потом:

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

 f = pango.FontDescription("sans bold 52")
    spinbutton1.modify_font(f)
это где нужно прописывть? в .ui файле ничего подобного нет.
Вложения
1.png (1635 просмотров) <a class='original' href='./download/file.php?id=47284&sid=d76920233db0ea2e59a4920d4662ddd4&mode=view' target=_blank>Загрузить оригинал (89.72 КБ)</a>
2.png (1635 просмотров) <a class='original' href='./download/file.php?id=47285&sid=d76920233db0ea2e59a4920d4662ddd4&mode=view' target=_blank>Загрузить оригинал (79.84 КБ)</a>
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

Суть проблемы понял, нужно это сделать с помощью axis-remote --reload и open. Однако сам механизм, как привязать это к кнопке, не понял, в питоне я не силен.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

alexandr1988 писал(а):это где нужно прописывть? в .ui файле ничего подобного нет.
Как у тебя с английским?
Вот тут общий принцип, как все стартует:
http://www.linuxcnc.org/docs/html/gui/g ... up_process

Что нам надо, надо написать скрипт, который подправит интерфейс и если надо будет выполнять нужные нам действия.
Вот тут написано про то, как можно программировать нужные нам вещи:
http://www.linuxcnc.org/docs/html/gui/g ... rogramming

Итак, создаем файл, name.py и в нем пишем (см ниже):
Код скрипта я взял из примера gladevcp, в нем добавил только это:

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

        spin = self.builder.get_object('spin')
        f = pango.FontDescription("sans bold 52")
        spin.modify_font(f)
Вот сюда название (id) своего spinbutton get_object('spin')

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

import hal
import glib
import time
import pango


class HandlerClass:
    '''
    class with gladevcp callback handlers
    '''


    def __init__(self, halcomp,builder,useropts):
        '''
        Handler classes are instantiated in the following state:
        - the widget tree is created, but not yet realized (no toplevel window.show() executed yet)
        - the halcomp HAL component is set up and the widhget tree's HAL pins have already been added to it
        - it is safe to add more hal pins because halcomp.ready() has not yet been called at this point.

        after all handlers are instantiated in command line and get_handlers() order, callbacks will be
        connected with connect_signals()/signal_autoconnect()

        The builder may be either of libglade or GtkBuilder type depending on the glade file format.
        '''

        spin = self.builder.get_object('spin')
        f = pango.FontDescription("sans bold 52")
        spin.modify_font(f)


def get_handlers(halcomp,builder,useropts):
    '''
    this function is called by gladevcp at import time (when this module is passed with '-u <modname>.py')

    return a list of object instances whose methods should be connected as callback handlers
    any method whose name does not begin with an underscore ('_') is a  callback candidate

    the 'get_handlers' name is reserved - gladevcp expects it, so do not change
    '''
    return [HandlerClass(halcomp,builder,useropts)]
потом при вызове gladevcp добавляем:
-u name.py
как тут:

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

EMBED_TAB_NAME=GladeVCP demo
EMBED_TAB_COMMAND=halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID} -u ./gladevcp/hitcounter.py ./gladevcp/manual-example.ui
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

У меня этот вариант не работает. LinuxCNC запускается с этим скриптом без ошибок, однако шрифт не изменяется. Имена spinbutton'ов пробовал разные (у меня их три).
Файл прилагаю. Прописываю его в ini как -u 2.py 1.ui

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

import hal
import glib
import time
import pango

class HandlerClass:
 
        def __init__(self, halcomp,builder,useropts):
		spin = self.builder.get_object('spin1')
		f=pango.FontDescription("sans bold 52")
		spin.modify_font(f)

def get_handlers(halcomp,builder,useropts):
        return [HandlerClass(halcomp,builder,useropts)]
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

alexandr1988 писал(а):        def __init__(self, halcomp,builder,useropts):
Вот в этой строке есть лишние пробелы вначале.
В питоне важено количество пробелов или размер отступа в начале строки!
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

Сделал все отступы, как советуют в уроках по Python (каждый уровень отступа - 4 пробела). Однако, это ничего не изменило. Lcnc запускается, изменений нет.

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

import hal
import glib
import time
import pango

class HandlerClass:
 
    def __init__(self, halcomp,builder,useropts):
        spin = self.builder.get_object("spin1")
        f=pango.FontDescription("sans bold 52")
        spin.modify_font(f)

def get_handlers(halcomp,builder,useropts):
    return [HandlerClass(halcomp,builder,useropts)]
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

Структура опять потерялась, должно быть:

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

class
  def function 
  def function
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение nkp »

Nick писал(а):Структура опять потерялась, должно быть:

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

class
  def function 
  def function
насчет def get_handlers
http://www.linuxcnc.org/docs/devel/html ... mmatically
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение Nick »

тогда правильно :)....
Может имя кнопки не то?
alexandr1988
Кандидат
Сообщения: 77
Зарегистрирован: 07 окт 2014, 11:54
Репутация: 5
Контактная информация:

Re: GladeVCP и PyVCP для начинающих

Сообщение alexandr1988 »

У меня их там три: spin, spin1 и spin2. Естественно, пробовал разные и ни одна не сработала.
Ответить

Вернуться в «LinuxCNC»