Страница 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")
теперь :
и все работает!
Почему хотелось разобраться - просто далее проще модифицировать
другие стандартные виджеты под свои нужды.
Спасибо Ник!
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
стаандартно:
но надо бы все упростить
оставить один путь и все
это же станок - там не надо нигде ничего искать
а вот скриптик копирующий автоматом программку с флешки - это было бы гут
то есть воткнули флеш - и все файлы 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, что делать?
Тем более, что можно файл открывать прямо с флешки. Интересно, что будет, если по середине выполнения программы ее выдернуть? По идее все должно в памяти висеть, но хз...
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 в самое нутро залезть - но там си
(а я уже один раз на обеденном перерыве хотел его (си) изучить - чуть-чуть не хватило времени

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