Автор Тема: Совсем не страшный питон.  (Прочитано 2601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mr.A

  • Житель
Re: Совсем не страшный питон.
« Ответ #30 : 30 Августа 2015, 19:14:37 »
Открой Geany, создай чистый файл с расширением py, напиши в нём import bpy, запусти и почитай консоль.
Скинь куда-то собранный модуль, чтоб его скачать, если 64-битное и линуксовое. :)
О, спасибо, так - работает, когда в geany да скриптом, а просто, в голой консоли, не хочет. Кстати, файл не надо переименовывать, вернул как было. Вот модуль, делал в archlinux x64  https://yadi.sk/d/jssgbEkyikgSh

Оффлайн LanuHum

  • Житель
Re: Совсем не страшный питон.
« Ответ #31 : 30 Августа 2015, 22:53:18 »
Вот модуль, делал в archlinux x64  https://yadi.sk/d/jssgbEkyikgSh
Ни едет у меня. Требует libmvec из glibc-2.22, а у меня 2.20. Хотел пересобрать glibc, нет gcc5. Пересобирать gcc долго, а выходной закончился. :)
Так что, пока не помогу разобраться  с этим модулем.

Оффлайн mr.A

  • Житель
Re: Совсем не страшный питон.
« Ответ #32 : 30 Августа 2015, 23:04:12 »
Да, в принципе оно вроде работает. Скрипты с import bpy запускаются. Я в eric6 могу пошагово отлаживать blender-python скрипт и смотреть на содержимое переменных. Красота!

Оффлайн mr.A

  • Житель
Re: Совсем не страшный питон.
« Ответ #33 : 01 Сентября 2015, 01:19:10 »
Если скачать блендер с этой странички https://builder.blender.org/download/ то в скачаном архиве обнаружатся дополнительные аддоны, которых нет в официальноей сборке. Из них интересен text_intellisense.py правда он старенький, под версию блендера 2.57, но работает, автодополняет текст(и чуть глючит - блокирует иногда клавишу enter). Сделан он под windows - пути там folder\file , а в linux  folder/file. Наклонная черта не туда. Короче, я его сюда прикреплю, с правленной строкой №265 и обязательно подправте ее под свое имя(или систему  :P), почему-то ~ не прокатывае. Этот скрипт позволяет ставить бряк(breakpoint) в любом вышем скрипте прямо в блендере. При бряке (а блендер надо открыть из консоли) на нужной строчке прерывается скрипт и в консоле открывается такое приглашение: (Pdb) можно набрать help и посмотреть возможные команды отладчика, например s шаг вперед step. Я еще не разбирался с этой возможность отладки скриптов более детально, мне хватает эрика

Оффлайн Striver

  • Житель
    • http://striver00.ru
Re: Совсем не страшный питон.
« Ответ #34 : 01 Сентября 2015, 06:43:06 »
Сколько программил на питоне, так и не смог заставить себя пользоваться этими отладчиками. Всегда хватало простого print в консоль, или, если инфы много, то в логи.
Конечно, это дело вкуса...

Оффлайн mr.A

  • Житель
Re: Совсем не страшный питон.
« Ответ #35 : 01 Сентября 2015, 10:21:41 »
На начальном этапе освоения языка, я думаю, отладчики полезны. Например, когда есть чужой код, в котором хочется разобраться и на его основе научиться делать так же, а вот не сосем понятно, как он работает. Трассируешь по шагам и смотришь что происходит.  Но так-то print в консоль - мощьная вещь.

Оффлайн LanuHum

  • Житель
Re: Совсем не страшный питон.
« Ответ #36 : 11 Декабря 2015, 22:41:59 »
Судя по ответам в этой теме, я ничего не открыл сверхестественного. Все всё знают.
Ну, тогда давайте упростим задачу.
Есть объект с системой частиц. У частиц есть параметры Size и Rotate. Нам нужно передать каждой частице scale и rotate какого-то объекта Fuck на данный кадр, Fuck мы используем объектом в системе частиц.
Можно предположить такой расклад. Сначала мы записываем по кадрам size/rotate объекта Fuck. Затем,  каждой частице, с момента её рождения нам нужно вставить size и rotate из запаисанных данных.
Кто тут соображает?

Оффлайн LanuHum

  • Житель
Re: Совсем не страшный питон.
« Ответ #37 : 11 Декабря 2015, 23:02:56 »
Я вот пишу
    def execute(self, context):
        scene = context.scene
        ob = context.object
        fs=scene.frame_start
        fc=scene.frame_current
        fe=scene.frame_end
        if ob.particle_systems:
            pSys = ob.particle_systems.active
            pSysName = ob.name+pSys.name
            parts = pSys.particles
            lifetime = int(pSys.settings.lifetime)
            dobject=pSys.settings.dupli_object
            alives = {}
            transes = []
            for i in range(1,lifetime+2):
                scene.frame_set(i, 0.0)
                dmatrix=dobject.matrix_world
                scale = dmatrix.to_scale()[:]
                rotate = tuple([degrees(e) for e in dmatrix.to_3x3().to_euler()])
                transes.append((scale[0],scale[1],scale[2],rotate[0],rotate[1],rotate[2]))
            for i in range(fs,fe):
                scene.frame_set(i, 0.0)
                bakeFile = open("/tmp/%s_%s.bda"%(pSysName,i),"w")
                for k,v in enumerate(parts):
                    if v.alive_state == 'ALIVE':
                        try:
                            if alives[k] > 0:
                                alives[k] += 1
                        except:
                            alives[k] = 1
                    else:
                        try:
                            if alives[k] > 0:
                                del(alives[k])
                        except:
                            pass
   
                for key in alives:
                    bakeFile.write('%s %s\n'%(k,transes[alives[k]]))
                bakeFile.close()
            scene.frame_set(fc, 0.0)

        return {'FINISHED'}
И, это не работает...
Питон не такая уж вкуснотень.

Оффлайн Striver

  • Житель
    • http://striver00.ru
Re: Совсем не страшный питон.
« Ответ #38 : 12 Декабря 2015, 21:27:50 »
Вот не понимаю, зачем Питон в такой задаче?
Всё-таки, когда можно обычными средствами обойтись - надо так и поступать...
Цитировать
Нам нужно передать каждой частице scale и rotate какого-то объекта Fuck на данный кадр, Fuck мы используем объектом в системе частиц.
Анимировал объект через арматуру, все частицы послушно за ним вращаются. Питон здесь вообще никаким боком не понадобился.

Оффлайн LanuHum

  • Житель
Re: Совсем не страшный питон.
« Ответ #39 : 12 Декабря 2015, 21:41:22 »
Вот не понимаю, зачем Питон в такой задаче?
Всё-таки, когда можно обычными средствами обойтись - надо так и поступать...
Цитировать
Нам нужно передать каждой частице scale и rotate какого-то объекта Fuck на данный кадр, Fuck мы используем объектом в системе частиц.
Анимировал объект через арматуру, все частицы послушно за ним вращаются. Питон здесь вообще никаким боком не понадобился.
Может, ты не понял?
Задача - 100 000 цветов,один на один не похожих...

Оффлайн R_M_S

  • Житель
    • 1
Re: Совсем не страшный питон.
« Ответ #40 : 14 Сентября 2016, 14:39:10 »
Может не совсем по теме данной ветки, но где-то рядом.
Подскажите где можно ознакомиться с тем, какие значения необходимо вводить в идентификатор оператора при создании новой горячей клавиши.
Например: Захотел я "посадить" на хоткей команду, вызывающую управляющий элемент "вращение".
Нажав кнопку "Add New" мне предлагается ввести  идентификатор оператора. В случае с "Вращением" (и остальными инструментами трансформации) я знаю его идентификатор - view3d.enable_manipulator
Смело ввожу его в соответствующее поле и прописываю для этого действия горячую клавишу:

Но если у меня возникает потребность Назначить хоткей на другой инструмент, то тут появляются затруднения с корректным вводом этого самого идентификатора.
Подскажите, где искать ответ?

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Совсем не страшный питон.
« Ответ #41 : 14 Сентября 2016, 17:39:26 »
... попробуй добавить подсказки функций - {CTRL+ALT+U}, вкладка Interface, включить чек Python Tooltips ...
... далее в мень при наведении на конкретные пункты будет выпадать подсказка с наименованием в Python ...
Для Кота

Оффлайн R_M_S

  • Житель
    • 1
Re: Совсем не страшный питон.
« Ответ #42 : 14 Сентября 2016, 18:30:10 »
при наведении на конкретные пункты будет выпадать подсказка с наименованием в Python ...
она выпадает. Я пробовал вводить то, что высвечивается в подсказках. Но синтаксис (насколько я понял) не совпадает с тем, что нужно вводить в индентификатор.

Оффлайн sungreen

  • ...
  • Житель
  • Kostroma mon amour
    • sungreen.github.io
Re: Совсем не страшный питон.
« Ответ #43 : 14 Сентября 2016, 20:30:20 »
... отбрасывай bpy.ops и пиши что идет после них ...
https://www.blender.org/api/blender_python_api_2_77_1/bpy.ops.html
Для Кота

Оффлайн Samovar

  • Житель
  • Пятигорье
Re: Совсем не страшный питон.
« Ответ #44 : 14 Сентября 2016, 20:45:28 »
R_M_S и sungreen, по-моему вы полезли в дебри :) Python тут вообще не при чём...
ПКМ на менюшке или кнопке -> Add Shotrcut (или Change Shortcut, если функции назначены "горячие" клавиши)-> Нажать необходимую клавишу(ы)
Чтоб не пропало, надо это дело сохранить File -> User Preferences -> Input -> Export Key Configuration
¯\_(ツ)_/¯

 

* По форуму

* Последние вложения

Sizes.jpg
Скачано: 9
Автор: Dmi3ryd
paticles.jpg
Скачано: 5
Автор: Dmi3ryd
Снимок 1.PNG
Скачано: 3
Автор: atmk
Снимок.PNG
Скачано: 3
Автор: atmk
Screw.jpg
Скачано: 7
Автор: Dmi3ryd