Страница 4 из 5
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 27 ноя 2013, 23:24
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 работает.
Не это главное

Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 07:35
Сергей Саныч
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 русофобией не страдают

Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 13:06
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...
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 13:25
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
%
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 13:45
Сергей Саныч
Nick писал(а):попробуй вначало pyvcp написать # -*- coding: utf-8 -*-
не помогает
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 13:55
Serg
Nick писал(а):попробуй вначало pyvcp написать # -*- coding: utf-8 -*-
Помнится это указание для редактора, а не для питона...
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 28 ноя 2013, 22:25
Nick
UAVpilot писал(а):а не для питона...
это вроде как раз для питона.
http://www.python.org/dev/peps/pep-0263/
Можно еще сюда попробовать кодировку впихнуть...
File "/usr/lib/pymodules/python2.6/bwidget.py", line 44, in w
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 29 ноя 2013, 09:07
Сергей Саныч
Nick писал(а):Можно еще сюда попробовать кодировку впихнуть...
не сработало...
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 17 дек 2013, 15:19
elephant007
очень сильно извиняюсь, что вмешиваюсь в чужую тему, но эта самая подходящая.
чуть ранее прикрутил к морде ЛЦНЦ панель для управления частотником Хюндай, спасибо камрадам с форума, наставили, успокоили.
теперь нужно прикрутить панель для манипуляций с Пробе. Есть два ХМЛ-файла, как из них сделать один, но с вкладками компонента Нотбук из ГладеВСП? Такое возможно? или нужно все переписывать заново Гладе?
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 18 дек 2013, 16:06
Nick
Файлы в glade?
Не пробовал открыть оба, в одном выделить все, копировать, вставить... точнее вставить в новый на котором уже есть notebook.
Но могут возникнуть конфликты с одинаковыми именами компонентов...
ЗЫ ты бы файлы / скриншоты прикрепил что-ли

.
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 18 дек 2013, 18:43
elephant007
файлы XML, открыть их в Гладе не смог...
пока ничего лучшего не придумал, как сделать две конфигурации, одну с панелью Хюндая, вторую с пробовскими инструментами...
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 18 дек 2013, 22:08
Nick
Хммм а почему ты их не хочешь в pyvcp в табы запихать? Смотри самый последний виджет:
http://www.linuxcnc.org/docs/2.4/html/h ... tml#r1_6_7
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 12:54
Сергей Саныч
Если отказаться от Glade, с табами в pyvcp всё неплохо получается. Особенно, когда ввел "умное" автопереключение вкладок (спасибо этому форуму

).
Вот мои конфиги и подпрограммы:
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 16:33
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
мож я какой модуль не догрузил?
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 17:03
Nick
Давай все файлы - hal, ini и xml
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 17:10
elephant007
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 17:46
nkp
после беглого просмотра:
base-freq нет в panel.xml …
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 19 дек 2013, 19:07
Сергей Саныч
Ох ты, я же переделывал управление частотником
Завтра постараюсь выложить программу.
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 20 дек 2013, 08:19
Сергей Саныч
я переименовал некоторые пины, для соответствия фактическому назначению.
Re: Вкладки в pyvcp. Автопереключение
Добавлено: 21 дек 2013, 05:34
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
после того, как закоментировал непонятное для ЛЦНЦ (выделено красным), запустился, и даже показал панель.