Выполнить какой-нибудь скрипт в блендере не требующий визуального интерфейса можно так:Кодblender --background -noaudio --python myscript.pyНапример, можно добавть в Geany такую команду сборки, как на картинке. Оператор print, вызываемый из скрипта, будет печатать в консоль все, что захочется.
blender --background -noaudio --python myscript.py
Еще один вопрос: что значат self и context ?
Первым аргументом каждого метода класса, включая __init__, всегда является текущий экземпляр класса. Общепринято всегда называть этот аргумент self. В методе __init__ self ссылается на только что созданный объект, в других методах — на экземпляр класса, для которого метод вызывается. Хотя и необходимо явно указывать self при определении метода, вы его не указываете, когда вызываете метод; Python добавит его автоматически.
class Test(operator): nt = IntProperty() def execute(self,context): n = self.nt # переменной n присваиваем значение переменной nt, объявленной в этом классе k = len(context.object.data.vertices) # переменной k присваиваем значение взятое у активного объекта print (k/n) return {FINISHED}
scn.layers[0]=scn.lay_anim_0 scn.layers[1]=scn.lay_anim_1 scn.layers[2]=scn.lay_anim_2 scn.layers[3]=scn.lay_anim_3 scn.layers[4]=scn.lay_anim_4 scn.layers[5]=scn.lay_anim_5 scn.layers[6]=scn.lay_anim_6 scn.layers[7]=scn.lay_anim_7 scn.layers[8]=scn.lay_anim_8 scn.layers[9]=scn.lay_anim_9 scn.layers[10]=scn.lay_anim_10 scn.layers[11]=scn.lay_anim_11 scn.layers[12]=scn.lay_anim_12 scn.layers[13]=scn.lay_anim_13 scn.layers[14]=scn.lay_anim_14 scn.layers[15]=scn.lay_anim_15 scn.layers[16]=scn.lay_anim_16 scn.layers[17]=scn.lay_anim_17 scn.layers[18]=scn.lay_anim_18 scn.layers[19]=scn.lay_anim_19
for i in range(20): scn.layers[i] = getattr(scn, 'lay_anim_%i' % i)
Раз такая "пьянка" пошла, то не подскажете где взять подобный XML файл для Notepad++? Ссылка уже не работает
blender --background -noaudio --python generate_python_autocomplete.py < my_imports.py > python.xml
LanuHum, можно немного упростить:Кодfor i in range(20): scn.layers[i] = getattr(scn, 'lay_anim_%i' % i)
$ python -c "import bpy ; bpy.ops.render.render(write_still=True)"Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.4/site-packages/2.75/scripts/modules/bpy/__init__.py", line 38, in <module> from _bpy import types, props, app, data, contextImportError: No module named '_bpy'
$ python -c "import bpy ; bpy.ops.render.render(write_still=True)"Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.4/site-packages/2.75/scripts/modules/bpy/__init__.py", line 38, in <module> from _bpy import types, props, app, data, contextImportError: dynamic module does not define init function (PyInit__bpy)
The option to build Blender as a Python module is not officially supported, in the sense Blender.org isn't distributing it along with regular releases, Currently, its a build option you can enable, for your own use.
Переименовал, теперь другая ошибка:Код$ python -c "import bpy ; bpy.ops.render.render(write_still=True)"Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.4/site-packages/2.75/scripts/modules/bpy/__init__.py", line 38, in <module> from _bpy import types, props, app, data, contextImportError: dynamic module does not define init function (PyInit__bpy)