Страница 4 из 12

Re: gscreen

Добавлено: 20 авг 2012, 16:01
Lexxa
пин, я так понимаю там в скрипте где-то, а не в кнопке. отсюда и вывод, что пол скрипта перелопатить надо
а в скрипте при нажатии на эту кнопку весь этот hbox невидимым делается?

Re: gscreen

Добавлено: 20 авг 2012, 16:04
Nick
Вот тут к кнопке присоединяют "сигнал" к хоумингу:
self.widgets.button_homing.connect("clicked", self.homing)
но там блин еще куча мест, где эту кнопку включают/выключают и что только не делают...

Re: gscreen

Добавлено: 20 авг 2012, 16:08
nkp
Lexxa писал(а):а в скрипте при нажатии на эту кнопку весь этот hbox невидимым делается?
да -тут активно используют две функции :

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

hide()
и
show()
например скрыть первый ряд:

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

 self.widgets.mode3.hide()

Re: gscreen

Добавлено: 20 авг 2012, 16:11
Nick
Он там вот сколько раз встречается:

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

grep "button_homing" ./gscreen 
        self.widgets.button_homing.connect("clicked", self.homing)
            self.widgets.button_homing.set_sensitive(False)
            self.widgets.button_homing.set_sensitive(True)
        if self.widgets.button_homing.get_active():
            self.widgets.button_homing.set_sensitive(False)
            self.widgets.button_homing.set_sensitive(True)
            self.widgets.button_homing.set_sensitive(False)
            self.widgets.button_homing.set_sensitive(True)
            self.widgets.button_homing.show()
            self.widgets.button_homing.set_active(False)
            self.widgets.button_homing.hide()

Re: gscreen

Добавлено: 20 авг 2012, 16:11
Lexxa

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

self.widgets.button_homing.connect("clicked", self.homing)
т.е. при клике по кнопке button_homing вызывается функция self.homing?
Что занчит self?

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

    def homing(self,*args):
        print "show/hide homing buttons"
        if self.widgets.button_homing.get_active():
            for i in range(0,3):
                self.widgets["mode%d"% i].hide()
            self.widgets.mode3.show()
            self.widgets.button_mode.set_sensitive(False)
            self.widgets.button_override.set_sensitive(False)
            self.widgets.button_graphics.set_sensitive(False)
        else:
            self.widgets.mode3.hide()
            self.mode_changed(self.data.mode_order[0])
            self.widgets.button_mode.set_sensitive(True)
            self.widgets.button_override.set_sensitive(True)
            self.widgets.button_graphics.set_sensitive(True)
Давайте разжуем этот момент. Т.е. если self.widgets.button_homing.get_active = true, т.е. кнопка нажата, то скрыть все виджеты режимов, это на сколько я понял вертикальные кнопки, да? или это ряд нижний, тогда почему только три ряда кнопок скрываются, а не 4?
сделать неактивными кнопки button_mode, button_override button_graphics

Re: gscreen

Добавлено: 20 авг 2012, 16:16
nkp
Lexxa писал(а):то скрыть все виджеты режимов
нет -там после условия стоит показать первый ряд (он у нас №3):

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

 self.widgets.mode3.show()

Re: gscreen

Добавлено: 20 авг 2012, 16:19
nkp
Lexxa писал(а):это на сколько я понял вертикальные кнопки,
set_sensitive () эта функция (пардон-метод) делает активным-неактивным виджет

Re: gscreen

Добавлено: 20 авг 2012, 16:21
nkp
а вообще то у меня вопрос-
если есть планы на пульт оператора-зачем эти танцы с переносами???

Re: gscreen

Добавлено: 20 авг 2012, 16:38
Nick
Lexxa писал(а):Давайте разжуем этот момент. Т.е. если self.widgets.button_homing.get_active = true, т.е. кнопка нажата, то скрыть все виджеты режимов, это на сколько я понял вертикальные кнопки, да? или это ряд нижний, тогда почему только три ряда кнопок скрываются, а не 4?сделать неактивными кнопки button_mode, button_override button_graphics
Это просто вырезка всех строк, где есть homing_button, чтобы лучше понять объем работ, это не целая часть кода!
Lexxa писал(а):т.е. при клике по кнопке button_homing вызывается функция self.homing?
Да.
self, это "сам" - ссылка на объект с которым мы работаем. Т.е.

У нас скорее всего есть объект класса
class Gscreen:
в нем есть функции, и всякие параметры.
Вот если мы хотим вызвать его функцию мы пишем ссылка_на_объект.функция()

Эта строчка находится в функции def __init__(self,inipath):
она вызывается при создании объекта
app = Gscreen(sys.argv[2])
И ей передается ссылка на созданный объект - self.

Re: gscreen

Добавлено: 20 авг 2012, 16:55
Lexxa
пульт оператора это отдельная песня.
gscreen реальный способ уйти от мыши, т.е. впринципе всё что нужно на пульте, ну почти-почти для нормльной повседневной работы оператоу есть.
кроме того тут удобно сделана работа с файлами программ и удобно сделана привязка.
косяк автора по дизайну это то, что количество кнопок в разных режимах разное, что делает невозможным их реализацию без тачскрина при остутствии мышки.
Безусловно идеальный вариант это типа как на фануках

кнопки на панели оператора это все что я описывал в смежной теме, а всё касательно привязок, режима редактирования программ и исполнения MDI - из gscreen
nkp, я совершенно поддерживаю твой первый пост - из gscreen сделать нормальный интерфейс.
Но подчеркну, что нормаьный интерфейс это когда Пульт+Монитор+Клава

Давайте тогда действительн не будем тратить время на создание бесполезного функционала перегружая и интерфейс и описывающий его код, а обсудим то, что в итоге должно быть, а потом это реализуем исходя из требований.
Ихмо ТЗ на интерфейс такое:
Нижний ряд - 7 кнопок, правый ряд - 6 кнопок
Я уверен, для реализации всего делаемого мышкой этого вполне достаточно.
С точки зрения пассивной безопасности выезд в ноль всех осей - не есть гут, считаю, что оператору раз в день можно и пощелкать.
Всего есть 6 возможных режимов работы ЧПУ
1) Автоматический
2) MDI
3) Безразмерные ручные перемещения
4) Инкрементальные ручные перемещения
6) режим от маховичка х1 х10 х100

Давайте обсудим софтовые кнопки для каждого из режимов отдельно, учитывая, что на пульте будут кнопки
Cycle Start, Feed hold, abort, CW, CCW, SpStop, +, -, quick, селектор режимов, селектор координат, Delete block, Optional Stop, CoolanOff, т.е. в общем случае 24 сигнала + от 2 до 4 энкодеров

Re: gscreen

Добавлено: 20 авг 2012, 17:14
Lexxa
Автоматический
Edit, Save, SaveAs, Abort, reload, full graphics, graphics со всем уже написанным функционалом, ихмо удобно
MDI
вверх по истории, вниз по истории, отработать текущую выделенную строку (дублировать с Cycle Start), Abort, Zero Origin, offset origin

Re: gscreen

Добавлено: 20 авг 2012, 17:24
Lexxa
Безразмерные ручные перемещения и инкрементальные ручные перемещения
Set offset G5x,
Set offset G5y,
Set offset G5z
Set offset G5a
Set offset Tool X,
Set offset Tool Y,
Set offset Tool Z,
Set offset Tool A,
Abort

кстати только у меня перепутаны координаты в gscreen? типа активная ось Х, жмешь Zero Origin, а меняется координтата нуля по Y

В перемещениях от маховичка - добавить множители x1, x10, x100

Re: gscreen

Добавлено: 20 авг 2012, 17:28
nkp
Lexxa писал(а):кстати только у меня перепутаны координаты в gscreen? типа активная ось Х, жмешь Zero Origin, а меняется координтата нуля по Y
у меня все в норме

Re: gscreen

Добавлено: 20 авг 2012, 17:32
Lexxa
Думаю с Никовой помощью написать по образу и подобию gscreenа можно подобную штуку)
Надеюсь , что Ник не против))

Re: gscreen

Добавлено: 20 авг 2012, 17:57
nkp
Lexxa писал(а):Думаю с Никовой помощью написать по образу и подобию gscreenа можно подобную штуку)Надеюсь , что Ник не против))
работа эта имеет довольно размытые временные рамки - тесты ,отладка , исправления
но начинать надо
а почему бы еще и автора не привлечь - мне кажеться ему могут быть интересны выкладки по теме
привлечь - в смысле обсудить направления развития

Re: gscreen

Добавлено: 20 авг 2012, 17:58
Lexxa
я только за

Re: gscreen

Добавлено: 20 авг 2012, 18:37
Nick
Так, а что вас Gscreen не устраивает? :)
Давайте попробуем обойтись малой кровью :).

Re: gscreen

Добавлено: 21 авг 2012, 11:17
Lexxa
перепаковать для начала, чтоб можно было хардовые кнопки прилепить

Re: gscreen

Добавлено: 21 авг 2012, 11:29
Nick
В каком смысле хардовые кнопки? Как это зависит от паковки?

Re: gscreen

Добавлено: 21 авг 2012, 11:35
Lexxa
кол-во кнопок во всех режимох должно быть неизменным.
делается металлическая панель, в ней фрезеруется отверстие для монитора, по двум сторонам, обычно правая и нижняя, монитора сверлятся отверстия под кнопки, выполняющию ф-цию, подписанную на экране.
придти к вот такому
Изображение