Страница 6 из 10

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:03
Nick
А новый MDI_history появляется?
nkp писал(а):а True это что?
Это то как будет вести себ объект при запаковке в контейнер, а именно:
pack_start(child, expand=True, fill=True, padding=0)
expand будет ли объект расширяться при увеличении контейнера, или вообще будет ли он занимать по-минимуму места или по максимуму. Например, есть у нас в vbox 4 кнопки, у двух expand=True, у двух expand=False, тогда те, которые expand=False будут маленькими кнопками, а те, у которых True - будут занимать оставшееся место.

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:07
nkp
Nick писал(а):А новый MDI_history появляется?
а как это помотреть?

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:08
Nick
По идее на форме должен появиться второй MDI_history. Один - который ты в GladeVCP нарисовал, второй - от твоего скрипта.

Покаж скриншот. :)

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:12
nkp

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:16
nkp
Семён Семёныч (с) :)
в mygui появился второй MDI_history

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:24
Nick
Вот об нем то я и говорил :).
Но можешь тупо поискать тот который был создан gladeVCP через self.builder.get_object(<widgetname>)

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 09:44
nkp
Начал "видеть" введенную в поле команду,но останавливает выполнение функции на этой строке:

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

        ensure_mode(self.stat, self.linuxcnc, linuxcnc.MODE_MDI)
вся функция:

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

    def submit(self, *a):
        print 'cmd1',self.entry,
        cmd = self.entry.get_text()
        print cmd, 'cmd'
        if not cmd:
            print 'cmdnot'
            return
        ensure_mode(self.stat, self.linuxcnc, linuxcnc.MODE_MDI)

        try:
            fp = open(self.filename, 'a')
            fp.write(cmd + "\n")
            fp.close()
        except:
            pass

        self.linuxcnc.mdi(cmd)
        last = self.model.append((cmd,))
        path = self.model.get_path(last)
        self.tv.scroll_to_cell(path)
        self.tv.set_cursor(path)
вроде бы все просто:
то что в entry присваиваем cmd
если ничего - выходим
переходим в режим MDI
дописываем команду в файл истории
выполняем команду
дописываем команду в список
то есть сейчас не изменяет режим...

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 11:00
Nick
Что-то никак не пойму, откуда ensure_mode берет self.stat, self.linuxcnc, вроде выше по тексту они нигде не задаются....

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 18:12
nkp

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

def ensure_mode(s, c, *modes):
    s.poll()
    if not modes: return False
    if s.task_mode in modes: return True
    if running(s, do_poll=False): return False
    c.mode(modes[0])
    c.wait_complete()
    return True
эта функция берет аргументы из модуля linuxcnc

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 19:50
nkp
Nick писал(а):Но можешь тупо поискать тот который был создан gladeVCP через self.builder.get_object(<widgetname>)
вот это по моему самый оптимальный путь

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

self.mdihistory=self.builder.get_object("hal_mdihistory1")
теперь :

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

self.mdihistory.submit()
и все работает!
Почему хотелось разобраться - просто далее проще модифицировать
другие стандартные виджеты под свои нужды.
Спасибо Ник!

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 22:56
Nick
Слушай, nkp, а ты не разу не натыкался на какой-нибудь диалог открытия файлов, отличный от стандартного. А то стандартный уж больно старый и неудобный.

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 23:02
nkp
а что там поменять хотелось бы?
какие нестандартные примочки нужны?(интересно - что ты там задумал :) )

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 23:14
Nick
Ну просто там какой-то старый диалог, нету закладок, нет списка дисков и прочих вкусностей. Также он не работает с сетевыми шарами.
При том, что стандартный диалог от Gtk все это вроде как умеет...
Как у тебя в MyGui выглядит открытие файла?

Re: Python в LinuxCnC

Добавлено: 18 дек 2012, 23:27
nkp
стаандартно:
Выделение(011).jpg (3427 просмотров) <a class='original' href='./download/file.php?id=10285&mode=view' target=_blank>Загрузить оригинал (112.23 КБ)</a>
но надо бы все упростить
оставить один путь и все
это же станок - там не надо нигде ничего искать
а вот скриптик копирующий автоматом программку с флешки - это было бы гут
то есть воткнули флеш - и все файлы ngc (если еще таких нет в директории) скопировалиь
в nc_files

Re: Python в LinuxCnC

Добавлено: 19 дек 2012, 10:45
Nick
Просто в axis он какой-то удодский, как раньше в винде был.

По копировании, вот тут во втором ответе:
http://superuser.com/questions/22766/au ... -connected
Но имхо это не самое правильное решение - что делать при overrite? Да и захламится папка nc_files быстро.

Чем тебе не нравится открытие файла прямо с флешки?

Re: Python в LinuxCnC

Добавлено: 19 дек 2012, 11:26
nkp
Nick писал(а):что делать при overrite?
то есть потребность загрузится с этой флешки?

Re: Python в LinuxCnC

Добавлено: 19 дек 2012, 14:52
Serg
Nick писал(а):Просто в axis он какой-то удодский, как раньше в винде был.
Это стандартный встроенный в tk. Увы, но его достоинство в том, что он на любой платформе под любой ОС выглядит и работает одинаково.
Где-то на http://tcl.tk были альтернативные варианты.

Re: Python в LinuxCnC

Добавлено: 20 дек 2012, 17:48
Nick
nkp писал(а):то есть потребность загрузится с этой флешки?
Не я об автоматическом копировании файлов с флешки. Вот вставляем мы флешку, а на ней файл gcode.ngc, и в nc_files уже есть такой gcode.ngc, что делать?
Тем более, что можно файл открывать прямо с флешки. Интересно, что будет, если по середине выполнения программы ее выдернуть? По идее все должно в памяти висеть, но хз... :freak:
UAVpilot писал(а):но его достоинство в том, что он на любой платформе под любой ОС выглядит и работает одинаково
учитывая, что LinuxCNC идет только под Linux :)

Re: Python в LinuxCnC

Добавлено: 20 дек 2012, 19:05
nkp
Nick писал(а):Вот вставляем мы флешку, а на ней файл gcode.ngc, и в nc_files уже есть такой gcode.ngc, что делать?
да это как раз не проблема- пишем название +дата в дополнение
--------------------------------------
а по MDIhistory все оказалось еще проще :

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

	def mdi_start(self,widget):
		self.widgets.hal_mdihistory1.submit()
и больше ничего не надо!
теперь хочу в Gremlin в самое нутро залезть - но там си
(а я уже один раз на обеденном перерыве хотел его (си) изучить - чуть-чуть не хватило времени :hehehe: )

Re: Python в LinuxCnC

Добавлено: 20 дек 2012, 19:28
Nick
nkp писал(а):а по MDIhistory все оказалось еще проще :
А "1" откуда взялась?
hal_mdihistory1.submit()
nkp писал(а):теперь хочу в Gremlin в самое нутро залезть - но там си
А что от гремлина хочешь?
nkp писал(а):(а я уже один раз на обеденном перерыве хотел его (си) изучить - чуть-чуть не хватило времени )
Ничего, сейчас новый год будет, Си как раз лучше всего за праздничным столом изучать :beer: :halfbeer: :nobeer: :beer_blow: