a = 10 # Целое числоb = "Cube" # Строкаc = 10.0 # Число с плавающей запятойс = float(a) # Превращает целое число в число с плавающей запятойa = int(c) # Округляет число с плавающей запятой до целого числа
d = a / c # Разделитьe = a * c # Умножитьg = a + c # Сложитьh = a - c # Вычестьi = a ** c # а возвести в степень с
if a > b: break
if a > b: # если a > b, то прекращаем цикл break
k = a * g
float = i / e
c = 0 # Вспоминаем пункт 3 и заблаговременно объявляем переменныеg = 6m = 100if a == b: # Задаём условие: если (if) a равно(==) b c = 1 # То с равно(=) одному (не забываем про отступ и не путаем равенство со сравнением: # если сравниваем, то ==, если присваиваем значение переменной, то =) elif a != b and b > 0: # Продолжаем задавать условие: или если (elif) a не равно(!=) b и(and) b больше(>) нуля(0) с = 2 # То с равно двум (не забываем про отступ) elif a < g or a > m: # Продолжаем задавать условие: или если (elif) a меньше(<), чем g или(or) а больше(>) чем m c = 3 # То с равно трём (не забываем про отступ) else: # В противном случае, если ни одно условие не удовлетворилось (else) c = 4 # То с равно четырём
a = 4b = a ** 3c = 5for i in range(a,b): # ключевое слово for запускает цикл: по порядку от а до b (i здесь переменная, значение которой с каждым проходом увеличивается на 1) с = (с + 3) / i # к с прибавить 3 и разделить это на i
a = 4b = a ** 3c = 5for i in range(a,b): # ключевое слово for запускает цикл: по порядку от а до b (i здесь переменная, значение которой с каждым проходом увеличивается на 1) с = (с + 3) / i # к с прибавить 3 и разделить это на i if c == 0.001: break # Прекратить цикл
import randoma = random.random() # Для переменной а генерируется случайное значение от нуля до одногоa = random.randint(1,10) # Для переменной а генерируется случайное целое значение от одного до десяти
import bpy
bpy.context
scn = bpy.context.sceneob = bpy.context.object
scn.objects.active = ob
ob.select = True
ob.select = False
import bpyimport randomob=bpy.context.objectfor y in range(0,10): # Цикл! Десять кирпичей в ряд! for z in range(0,5): # Цикл! Пять рядов! bpy.ops.object.duplicate(linked=False, mode='TRANSLATION') # Копируем выделенный объект bpy.ops.transform.translate(value=(0, (y*2)+(y/10), (z*2)+(z/10))) # Перемещаем копию первый раз на длину одного кирпича плюс шов, далее на два и так далее... if z % 2 != 0: # Если ряд нечётный bpy.ops.transform.translate(value=(0, 1, 0)) # сдвигаем кирпич ещё на полкирпича scale=random.randint(1,5) # Задаём случайный масштаб bpy.ops.transform.resize(value=(1-(scale/10), 1, 1)) # Масштабируем по оси X angle=random.random()/10 # Задаём случайный угол bpy.ops.transform.rotate(value=angle, axis=(1, 1, 1)) # Вращаем по все осям obj=bpy.context.object # Определяем активный объект. После копирования им становится новый obj.select=False # Снимаем выделение с активного объекта bpy.context.scene.objects.active=ob # Делаем активным исходный объект, который мы взялись копировать ob.select=True # Выделяем его, чтобы следующий проход цикла скопировал, именно, его, и от его координат разместил следующую копию
import bpyimport randomob = bpy.context.objectobX = ob.dimensions[0]obY = ob.dimensions[1]obZ = ob.dimensions[2]# Цикл! Десять кирпичей в ряд!for y in range(0,10): # Цикл! Пять рядов! for z in range(0,5): # Копируем выделенный объект bpy.ops.object.duplicate(linked=False, mode='TRANSLATION') # Перемещаем копию первый раз на длину одного кирпича плюс шов, далее на два и так далее... bpy.ops.transform.translate(value=(0.0, y * obY, z * obZ)) # Если ряд нечётный if z % 2 != 0: # сдвигаем кирпич ещё на полкирпича bpy.ops.transform.translate(value=(0.0, obY / 2.0, 0.0))
... добавлю как этим пользоваться и как это выглядит ...
import bpyimport randomscene=bpy.context.scenebpy.ops.object.select_all(action='DESELECT') # Обязательно снимаем выделение со всех объектов, чтобы в дальнейшем цикл смог выделять их по одному и обрабатывать.for ob in bpy.data.objects: # По объекту в базе данных if ob.type == "MESH" and ob.name.startswith("Cube"): # Если тип объекта Mesh и начало имени объекта "Cube" ob.select=True # Выделяем объект scene.objects.active = ob # Делаем его активным bpy.ops.object.mode_set(mode="EDIT") # Переходим в режим редактирования меша, чтобы получить доступ к фейсам delta = 0.03+random.random()/10 # Задаём случайную величину фаски bpy.ops.mesh.bevel(offset_type='OFFSET', offset=delta, segments=1, profile=0.5, vertex_only=False) # Применяем bevel, где назначаем offset bpy.ops.object.mode_set(mode="OBJECT") # Переходим в объектный режим, чтобы дать возможность циклу работать со следующим объектом ob.select = False # Снимаем выделение с объекта, чтобы следующий объект выделился один одинёшенек.
import osimport bpyscn=bpy.context.scenestart=scn.frame_startend=scn.frame_endformat=scn.render.image_settings.file_format.lower()for i in range(start,end): scn.frame_set(i,0.0) 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 scn.update() bpy.ops.render.render('INVOKE_REGION_WIN') image = bpy.data.images["Render Result"] filepath = "/tmp/RenderResult_%s.%s"%(i,format) if os.path.exists(filepath): os.remove(filepath) image.save_render(filepath=filepath, scene=None)
eric6_api -r -l Python3 -o Blender.api /usr/share/blender/2.75/scripts/startup /usr/share/blender/2.75/scripts/modules /usr/share/blender/2.75/scripts/addons/modules
bpy.utils.test_register?4(mod)bpy.utils.test_reload?4(mod)bpy.utils.time_from_frame?4(frame, fps=None, fps_base=None)bpy.utils.time_to_frame?4(time, fps=None, fps_base=None)bpy.utils.unregister_manual_map?4(manual_hook)bpy.utils.unregister_module?4(module, verbose=False)bpy.utils.unregister_module_call?4(mod)bpy.utils.user_resource?4(resource_type, path="", create=False)bpy_extras.anim_utils.bake_action?4(frame_start, frame_end, frame_step=1, only_selected=False, do_pose=True, do_object=True, do_visual_keying=True, do_constraint_clear=False, do_parents_clear=False, do_clean=False, action=None, )bpy_extras.anim_utils.obj_frame_info?4(obj)bpy_extras.anim_utils.pose_frame_info?4(obj)bpy_extras.image_utils._image_load?5(path)bpy_extras.image_utils._image_load_placeholder?5(path)
Как добавить абсолютно все api? Например, bpy.data не подсказывает и не понимает. Или я что-то не понимаю...
Я тоже не понимаю, почему ты всё же выбрал Эрика?
И, на скриншоте навигатор обращается к модулю _bpy, но не к bpy
Так это разные модули?
В нем удобно PyQt5. Хочу свои программки с гуи. Хотя я его еще не выбрал.
И, что, работает pyqt5?
blender --background -noaudio --python myscript.py
Цитата: LanuHum от 28 Август 2015, 21:26:16И, что, работает pyqt5?Да, работает. Это ты какой-то древний баг нашел. И связанный, видимо, с видео-драйверами.