Страница 41 из 53
Re: GladeVCP и PyVCP для начинающих
Добавлено: 10 окт 2015, 10:54
MIX
UAVpilot писал(а):linuxcnc.stat.file возвращает имя файла, обрабатываемого интерпретатором rs274ngc.
Странно. У меня в случае, если в программе есть подпрограмма после завершения подпрограммы, когда подпрогрмма уже отработала и вернула управление основной программе, linuxcnc.stat.file все равно возвращает имя подпрограммы.
Re: GladeVCP и PyVCP для начинающих
Добавлено: 10 окт 2015, 10:59
MIX
UAVpilot писал(а):Имя файла загруженного в axis и узнавать нужно у axis, например там есть глобальная переменная loaded_file...
А как можно получить содержимое этой переменной в Python-е, а вернее в обработчике моей панели GladeVCP?
Попытка просто вызвать в одном из методов
Приводит к:
Код: Выделить всё
NameError: global name 'loaded_file' is not defined
Re: GladeVCP и PyVCP для начинающих
Добавлено: 10 окт 2015, 20:19
Serg
MIX писал(а):linuxcnc.stat.file все равно возвращает имя подпрограммы.
Значит там имя последнего загруженного файла.
MIX писал(а):NameError: global name 'loaded_file' is not defined
она глобальная внутри axis. Надо разбираться с областями видимости...
попробуй так:
Re: GladeVCP и PyVCP для начинающих
Добавлено: 11 окт 2015, 12:55
MIX
К сожалению не помогло. Вот отклик в логе:
Код: Выделить всё
gladevcp: trouble looking for handlers in 'THC_control': global name 'loaded_file' is not defined
Traceback (most recent call last):
File "/usr/bin/gladevcp", line 122, in load_handlers
objlist = h(halcomp,builder,useropts)
File "./THC_control.py", line 676, in get_handlers
return [THC_control(halcomp,builder,useropts)]
File "./THC_control.py", line 26, in __init__
print loaded_file
NameError: global name 'loaded_file' is not defined
К тому же если эта переменная 'loaded_file' глобальная, то зачем ее дополнительно объявлять?
На удачу попробовал также:
Код: Выделить всё
name_file = self.loaded_file
print name_file
С примерно тем же успехом:
Код: Выделить всё
gladevcp: trouble looking for handlers in 'THC_control': THC_control instance has no attribute 'loaded_file'
Traceback (most recent call last):
File "/usr/bin/gladevcp", line 122, in load_handlers
objlist = h(halcomp,builder,useropts)
File "./THC_control.py", line 676, in get_handlers
return [THC_control(halcomp,builder,useropts)]
File "./THC_control.py", line 25, in __init__
name_file = self.loaded_file
AttributeError: THC_control instance has no attribute 'loaded_file'
а можно как то вывести список всех атрибутов (глобальных не глобальных)?
Re: GladeVCP и PyVCP для начинающих
Добавлено: 11 окт 2015, 14:49
Serg
MIX писал(а):К сожалению не помогло.
К сожалению ожидаемо... Тогда только патчить axis, чтобы он например писал в какой-нибудь файл имя загруженной УП, а из файла смогут читать все желающие...
MIX писал(а):а можно как то вывести список всех атрибутов (глобальных не глобальных)?
Да, помогут функции
vars()
dir()
locals()
globals()
Re: GladeVCP и PyVCP для начинающих
Добавлено: 11 окт 2015, 20:29
MIX
Кажется нашел вариант. Если кому интересно, сначала останавливаю программу:
self.linuxcnc_command.abort(),
затем смотрю атрибут,
self.linuxcnc_stat.poll()
self.file_name = self.linuxcnc_stat.file
В него снова заносится имя основного файла. Это меня вполне устраивает т.к. все равно останавливать резку при потере дуги.
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 12:46
Nick
А как из стороннего скрипта достучаться до переменной axis?
ЗЫ, можно в начало каждого файла дописать M100, в котором записывать имя файла куда-нибудь...
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 13:24
Serg
Nick писал(а):А как из стороннего скрипта достучаться до переменной axis?
Без его ведома/желания никак.
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 13:27
Nick
Ок, а с ведомом?
Как передать переменную с одного скрипта в другой, через внешний Файл? Может есть более красивый вариант?
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 13:43
Serg
Если в момент старта другого, то например тупо - параметром ком.строки.
Если в процессе работы, то тоже есть много способов: временный файл, именованный канал, IPC, сеть, ...
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 13:44
Nick
UAVpilot писал(а): именованный канал, IPC
А про этих где почитать?
Re: GladeVCP и PyVCP для начинающих
Добавлено: 12 окт 2015, 20:00
Serg
Как это ни странно, но почитать можно в манах.
man pipe
man ipc

Re: GladeVCP и PyVCP для начинающих
Добавлено: 13 окт 2015, 14:05
Nick
У меня наверное какой-то не такой pipe?
pipe - Postfix delivery to external command
А вот так вроде то, что надо man 2 pipe
Спасибо!
Re: GladeVCP и PyVCP для начинающих
Добавлено: 21 окт 2015, 11:25
doska
Привет.
Случился у меня затык с HScale.
Мне нужно сделать ползунки для изменения скорости холостых перемещений (G0).
Добавляю в Glade HScale, Adjustement для него. И не запускается, выдает ошибку
(для просмотра содержимого нажмите на ссылку)Debug file information:
HAL: ERROR: pin_new called after hal_ready
Traceback (most recent call last):
File "/usr/bin/TampoGUI", line 1194, in <module>
hwg = tampo_gui(sys.argv[2])
File "/usr/bin/TampoGUI", line 33, in __init__
self.panel = gladevcp.makepins.GladePanel(self.halcomp, xmlname, self.builder, None)
File "/usr/lib/pymodules/python2.7/gladevcp/makepins.py", line 51, in __init__
widget.hal_init(self.hal, idname)
File "/usr/lib/pymodules/python2.7/gladevcp/hal_widgets.py", line 27, in hal_init
self._hal_init()
File "/usr/lib/pymodules/python2.7/gladevcp/hal_widgets.py", line 51, in _hal_init
self.hal_pin = self.hal.newpin(self.hal_name, hal.HAL_FLOAT, hal.HAL_OUT)
File "/usr/lib/pymodules/python2.7/hal_glib.py", line 60, in newpin
def newpin(self, *a, **kw): return GPin(_hal.component.newpin(self.comp, *a, **kw))
hal.error: Invalid argument
Не нашел я ничего на эту тему. Делаю по тутору с gnipsel.com.
Что обидно, все что хотел сделал, и тут на тебе...
Никто не подскажет куда копать?
Re: GladeVCP и PyVCP для начинающих
Добавлено: 21 окт 2015, 13:32
Nick
Скинь целиком свою панельку...
Re: GladeVCP и PyVCP для начинающих
Добавлено: 23 окт 2015, 11:34
doska
Отдал уже машинку, к сожалению.
Вышел из ситуации самым примитивным методом, сделал ползунки просто по числам и вместо G0 использовал G1.
Так я с HScale и не подружился.
Не по феньшуй, но работает.
Запущу когда со всеми доводками, сделаю видео работы, может кому как идея пригодится.
Машинка - ЧПУшная тампопечать.
Re: GladeVCP и PyVCP для начинающих
Добавлено: 23 окт 2015, 11:52
doska
Кстати, может кому пригодится.
У меня программа формируется выбором галочек в интерфейсе, потом питоном формируется УП и уже эта УП запускается с обычной кнопки.
Возникла такая проблема, что пока вся функция кнопки не отработает интерфейс как-бы висит, то есть ничего не нажимается, индикации нет и т.п. Если учесть, что программа бесконечная, получилось нежизнеспособно.
Вышел из ситуации очень просто - threads. Сделал функцию на загрузку и запуск УП и ее запускал thread.start_new_thread. То, что нужно. УП запускается, интерфейс работает.
P.S. Так вышло, что использовать AXIS или дописать к нему панельку оказалось крайне неудобно в работе. 8 "осей" и никакой привязки к фрезерному или токарному делу. Поэтому интерфейс пришлось делать с нуля.
Re: GladeVCP и PyVCP для начинающих
Добавлено: 28 окт 2015, 13:08
Nick
Покажи фото хотябы!
Re: GladeVCP и PyVCP для начинающих
Добавлено: 05 ноя 2015, 11:14
alexandr1988
alexandr1988 писал(а):День добрый! Можно ли каким-то образом отображать координату по оси, но не в миллиметрах, а метрах? Нужно для подсчета выработанной продукции (расстояние, пройденное по оси Y и является метражом, который нужно измерять). Сейчас работает так: в Axis убрал отображение знаков после запятой, и это значение оператор делит на тысячу. Есть вариант поставить отдельный аппаратный счетчик и энкодер, но хотелось бы попробовать сделать это программно.
Панель у меня на Glade, виджет, показывающий координату, пробовал, но не смог с ним сделать ничего, кроме как тоже убрать все после запятой.
Есть какие-то варианты?
Эту проблему с помощью Nick'a решил.
Аппетит приходит во время еды, и теперь хочется сделать общий счетчик выработки, типа одометра автомобильного.
А чтобы он при выключении не сбрасывался, наверное нужно сохранять значение в текстовый файл.
В какую сторону здесь копать?
Re: GladeVCP и PyVCP для начинающих
Добавлено: 05 ноя 2015, 11:22
Nick