Вкладки в pyvcp. Автопереключение

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

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

UAVpilot писал(а):Я не знаю как это в питоне сделано, а в Tk есть команда NoteBook, которая создаёт соотв. виджет, а уже у виджета есть команда index.

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

$ tclsh
% package require BWidget
1.9
% NoteBook .nb
.nb
% .nb insert 0 page1
.nb.fpage1
% .nb insert 1 page2
.nb.fpage2
% .nb insert 2 page3 
.nb.fpage3
%
% .nb index page2
1
% .nb index page3
2
% 
Так это получается надо сначала сделать
% .nb raise, чтобы получить имя текущей вкладки, а потом уже % .nb index. Почему raise не дает id вкладки???
Serg-tmn писал(а):Так эта... всё уже Вкладки в pyvcp. Автопереключение #56 работает.
Не это главное :)
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

Nick писал(а):Не это главное :)
ну тады подскажи, как вкладки подписать по русски. Потому как, когда пишу

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

<tabs>
    <names>["Spindle", "Sensors"]</names>
всё работает. А если

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

<tabs>
    <names>["Шпиндель", "Датчики"]</names>
ругается.

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

Traceback (most recent call last):
  File "/usr/bin/axis", line 3078, in <module>
    vcpparse.create_vcp(f, comp)
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 177, in create_vcp
    read_file() 
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 61, in read_file
    nodeiterator(pyvcproot,pyvcp0) 
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 78, in nodeiterator
    nodeiterator(e,newwidget)
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 77, in nodeiterator
    newwidget = widget_creator(widgetparent,e.nodeName,params)
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 95, in widget_creator
    container = parent.getcontainer()
  File "/usr/lib/pymodules/python2.6/pyvcp_widgets.py", line 766, in getcontainer
    return self.insert("end", name, text=name)
  File "/usr/lib/pymodules/python2.6/bwidget.py", line 44, in w
    r = str(f(self, *args, **kw))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-29: ordinal not in range(128)
Похоже, имена вкладок используются не только для подписи, а еще и для именования внутренних переменных.
При том, что остальные элементы pyvcp русофобией не страдают :)
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

Serg-tmn писал(а):UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-29: ordinal not in range(128)
Надо скорее всего кодировку задать...
попробуй вначало pyvcp написать # -*- coding: utf-8 -*-
который pyvcp_widgets.py...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Serg »

Nick писал(а):Почему raise не дает id вкладки???
page1 - это и есть id вкладки, а index возвращает порядковый номер вкладки.
Вкладки можно поменять местами, от этого их id не изменятся, а изменятся только порядковые номера.
Serg-tmn писал(а):При том, что остальные элементы pyvcp русофобией не страдают :)
Скорее это привет от питона. На чистом Tcl/Tk всё замечательно:

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

$ tclsh
% package require BWidget
1.9
% NoteBook .nb
.nb
% .nb insert 0 Страница1
.nb.fСтраница1
% .nb index Страница1
0
% .nb raise Страница1
Страница1
% .nb raise
Страница1
% 
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

Nick писал(а):попробуй вначало pyvcp написать # -*- coding: utf-8 -*-
не помогает
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Serg »

Nick писал(а):попробуй вначало pyvcp написать # -*- coding: utf-8 -*-
Помнится это указание для редактора, а не для питона...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

UAVpilot писал(а):а не для питона...
это вроде как раз для питона. http://www.python.org/dev/peps/pep-0263/

Можно еще сюда попробовать кодировку впихнуть...
File "/usr/lib/pymodules/python2.6/bwidget.py", line 44, in w
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

Nick писал(а):Можно еще сюда попробовать кодировку впихнуть...
не сработало...
Чудес не бывает. Бывают фокусы.
Аватара пользователя
elephant007
Мастер
Сообщения: 857
Зарегистрирован: 18 ноя 2012, 13:12
Репутация: 332
Откуда: Сибирь, Томск
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение elephant007 »

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

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

Файлы в glade?
Не пробовал открыть оба, в одном выделить все, копировать, вставить... точнее вставить в новый на котором уже есть notebook.

Но могут возникнуть конфликты с одинаковыми именами компонентов...

ЗЫ ты бы файлы / скриншоты прикрепил что-ли :).
Аватара пользователя
elephant007
Мастер
Сообщения: 857
Зарегистрирован: 18 ноя 2012, 13:12
Репутация: 332
Откуда: Сибирь, Томск
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение elephant007 »

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

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

Хммм а почему ты их не хочешь в pyvcp в табы запихать? Смотри самый последний виджет:
http://www.linuxcnc.org/docs/2.4/html/h ... tml#r1_6_7
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

Если отказаться от Glade, с табами в pyvcp всё неплохо получается. Особенно, когда ввел "умное" автопереключение вкладок (спасибо этому форуму :)).
Вот мои конфиги и подпрограммы:
Вложения
BF20 конфигурация.zip
(9.48 КБ) 375 скачиваний
Чудес не бывает. Бывают фокусы.
Аватара пользователя
elephant007
Мастер
Сообщения: 857
Зарегистрирован: 18 ноя 2012, 13:12
Репутация: 332
Откуда: Сибирь, Томск
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение elephant007 »

все сломал, пытаясь сделать по образу и подобию...

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

Debug file information:
Can not find -sec MOT -var MOT -num 1 
Can not find -sec IO -var IO -num 1 
Can not find -sec LINUXCNC -var NML_FILE -num 1 
Can not find -sec EMC -var NML_FILE -num 1 
custom_postgui.hal:11: Pin 'pyvcp.base-freq' does not exist
до этого ругался на строчку net hy-Motor-Freq <= spindle-vfd.motor-freq => pyvcp.motor-freq
мож я какой модуль не догрузил?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Nick »

Давай все файлы - hal, ini и xml
Аватара пользователя
elephant007
Мастер
Сообщения: 857
Зарегистрирован: 18 ноя 2012, 13:12
Репутация: 332
Откуда: Сибирь, Томск
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение elephant007 »

мой-станок.zip
(5.79 КБ) 343 скачивания
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение nkp »

после беглого просмотра:
base-freq нет в panel.xml …
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

Ох ты, я же переделывал управление частотником :thinking:
Завтра постараюсь выложить программу.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение Сергей Саныч »

я переименовал некоторые пины, для соответствия фактическому назначению.
Вложения
N700E.tar.gz
(24.3 КБ) 1006 скачиваний
Чудес не бывает. Бывают фокусы.
Аватара пользователя
elephant007
Мастер
Сообщения: 857
Зарегистрирован: 18 ноя 2012, 13:12
Репутация: 332
Откуда: Сибирь, Томск
Контактная информация:

Re: Вкладки в pyvcp. Автопереключение

Сообщение elephant007 »

не выходит каменный цветок...
ругается на вот эти строки:
(для просмотра содержимого нажмите на ссылку)
]# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts

# HAL connections for Panel Display

loadrt conv_bit_s32
addf conv-bit-s32.0 servo-thread

net hy-AMPS <= spindle-vfd.OutA => pyvcp.amp-meter
# net hy-Motor-Freq <= spindle-vfd.motor-freq => pyvcp.motor-freq
# net hy-Base-Freq <= spindle-vfd.base-freq => pyvcp.base-freq
net hy-DC-Voltage <= spindle-vfd.dc_voltage => pyvcp.dc_voltage
net hy-Operating_time_min <= spindle-vfd.operating_time_min => pyvcp.operating_time_min
net hy-Operating_time_hour <= spindle-vfd.operating_time_hour => pyvcp.operating_time_hour
# net hy-Motor-Voltage <= spindle-vfd.rated-motor-voltage => pyvcp.rated-motor-voltage
# net hy-Motor-Current <= spindle-vfd.rated-motor-current => pyvcp.rated-motor-current

net hy-Power_consumption_monitor <= spindle-vfd.power_consumption_monitor => pyvcp.power_consumption_monitor
# net hy-Rated_direction_monitor <= spindle-vfd.rated_direction_monitor => pyvcp.rated_direction_monitor
net hy-Direction_monitor <= spindle-vfd.direction_monitor => pyvcp.direction_monitor
net hy-Modbus-OK <= spindle-vfd.modbus-ok => pyvcp.modbus-ok
net hy-Spindle-speed <= spindle-vfd.spindle-speed => pyvcp.spindle-speed
# net hy-modbus-error-percent <= spindle-vfd.modbus_error_percent => pyvcp.modbus_error_percent
# net hy-Freq-Cmd <= spindle-vfd.frequency-command => pyvcp.frequency-command
# net hy-modbus-error-percent <= spindle-vfd.modbus_error_percent => pyvcp.modbus_error_percent

#net hy-vector-mode spindle-vfd.vector-mode <= pyvcp.vector-mode
net hy-suspend-mode spindle-vfd.suspend-mode <= pyvcp.suspend-mode
# net vfd-alarm spindle-vfd.VFD-alarm => not.2.in
# net vfd-good => not.2.out => motion.enable

net vfd-alarm => pyvcp.alarm-in
net alarm-reset pyvcp.reset-button => spindle-vfd.alarm-reset

net hy-CNST-Run <= spindle-vfd.CNST-run => pyvcp.CNST-run

net hy-CNST-Run spindle-vfd.CNST-run => pyvcp.CNST-run

# net hy-on not.1.in
# net hy-off not.1.out conv-bit-s32.0.in
# net ftab conv-bit-s32.0.out pyvcp.tabs.0.raise


# now enable the VFD after EMC is up and running
setp spindle-vfd.enable 1

net tooloffset halui.mdi-command-00 <= pyvcp.offset-button
net get-tls-coord halui.mdi-command-01 <= pyvcp.tool-measure-point-button
net get-center halui.mdi-command-02 <= pyvcp.center-button
net get-x halui.mdi-command-03 <= pyvcp.x-measure-button
net get-y halui.mdi-command-04 <= pyvcp.y-measure-button

###net tls-test hal_manualsensoroffset.test <= pyvcp.offset-button
###net tooloffset halui.mdi-command-00 <= hal_manualsensoroffset.tested

net nprobe => pyvcp.sensorled
net xsize motion.analog-out-00 => pyvcp.xsize
net ysize motion.analog-out-01 => pyvcp.ysize
после того, как закоментировал непонятное для ЛЦНЦ (выделено красным), запустился, и даже показал панель.
Ответить

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