Python в LinuxCnC

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

Re: Python в LinuxCnC

Сообщение Nick »

А новый MDI_history появляется?
nkp писал(а):а True это что?
Это то как будет вести себ объект при запаковке в контейнер, а именно:
pack_start(child, expand=True, fill=True, padding=0)
expand будет ли объект расширяться при увеличении контейнера, или вообще будет ли он занимать по-минимуму места или по максимуму. Например, есть у нас в vbox 4 кнопки, у двух expand=True, у двух expand=False, тогда те, которые expand=False будут маленькими кнопками, а те, у которых True - будут занимать оставшееся место.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

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

Re: Python в LinuxCnC

Сообщение Nick »

По идее на форме должен появиться второй MDI_history. Один - который ты в GladeVCP нарисовал, второй - от твоего скрипта.

Покаж скриншот. :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

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

Re: Python в LinuxCnC

Сообщение Nick »

Вот об нем то я и говорил :).
Но можешь тупо поискать тот который был создан gladeVCP через self.builder.get_object(<widgetname>)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

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

Re: Python в LinuxCnC

Сообщение Nick »

Что-то никак не пойму, откуда ensure_mode берет self.stat, self.linuxcnc, вроде выше по тексту они нигде не задаются....
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение 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
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

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

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

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

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

self.mdihistory.submit()
и все работает!
Почему хотелось разобраться - просто далее проще модифицировать
другие стандартные виджеты под свои нужды.
Спасибо Ник!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Python в LinuxCnC

Сообщение Nick »

Слушай, nkp, а ты не разу не натыкался на какой-нибудь диалог открытия файлов, отличный от стандартного. А то стандартный уж больно старый и неудобный.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

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

Re: Python в LinuxCnC

Сообщение Nick »

Ну просто там какой-то старый диалог, нету закладок, нет списка дисков и прочих вкусностей. Также он не работает с сетевыми шарами.
При том, что стандартный диалог от Gtk все это вроде как умеет...
Как у тебя в MyGui выглядит открытие файла?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

стаандартно:
Выделение(011).jpg (3424 просмотра) <a class='original' href='./download/file.php?id=10285&mode=view' target=_blank>Загрузить оригинал (112.23 КБ)</a>
но надо бы все упростить
оставить один путь и все
это же станок - там не надо нигде ничего искать
а вот скриптик копирующий автоматом программку с флешки - это было бы гут
то есть воткнули флеш - и все файлы ngc (если еще таких нет в директории) скопировалиь
в nc_files
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Python в LinuxCnC

Сообщение Nick »

Просто в axis он какой-то удодский, как раньше в винде был.

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

Чем тебе не нравится открытие файла прямо с флешки?
Вложения
Снимок-axis.ngc - AXIS 2.6.0-pre0-3537-gb37819d on LinuxCNC-HAL-SIM-AXIS.png (3419 просмотров) <a class='original' href='./download/file.php?id=10290&mode=view' target=_blank>Загрузить оригинал (159.56 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

Nick писал(а):что делать при overrite?
то есть потребность загрузится с этой флешки?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Python в LinuxCnC

Сообщение Serg »

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

Re: Python в LinuxCnC

Сообщение Nick »

nkp писал(а):то есть потребность загрузится с этой флешки?
Не я об автоматическом копировании файлов с флешки. Вот вставляем мы флешку, а на ней файл gcode.ngc, и в nc_files уже есть такой gcode.ngc, что делать?
Тем более, что можно файл открывать прямо с флешки. Интересно, что будет, если по середине выполнения программы ее выдернуть? По идее все должно в памяти висеть, но хз... :freak:
UAVpilot писал(а):но его достоинство в том, что он на любой платформе под любой ОС выглядит и работает одинаково
учитывая, что LinuxCNC идет только под Linux :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Python в LinuxCnC

Сообщение nkp »

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

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

	def mdi_start(self,widget):
		self.widgets.hal_mdihistory1.submit()
и больше ничего не надо!
теперь хочу в Gremlin в самое нутро залезть - но там си
(а я уже один раз на обеденном перерыве хотел его (си) изучить - чуть-чуть не хватило времени :hehehe: )
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Python в LinuxCnC

Сообщение Nick »

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

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