multitool
7 лет назадВведение в 3D для чайников и программистов, уровень сложности 1(рекурсия, что ты делаешь, прекрати xD))
Привет читатель, продолжим ковырять 3D редактор и жечь Питоном? Когда ты увидишь код, не убегай, в конце я покажу, как его писать и использовать совсем не зная языков программирования!
Пример, код которого ниже:
Продвинутый вариант:
Он сказал поехали и махнул рукой:
# инициализация Python
import bpy
# инициализация переменной (длинна объектов)
length = 2
# функция очистки объекта от повторяющихся полигонов (по факту ее можно убрать, но мне так захотелось)
def removeDoubles():
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.mesh.remove_doubles()
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.object.editmode_toggle()
# тут мы создаем группу из 5 объектов
def createGroup(length):
# а тут код выйдет из рекурсии по достижении 32 вызова
if length < 33:
# гоняем примитив по координатам
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, 0, -length)})
bpy.ops.transform.translate(value=((length/2), 0, 0))
bpy.ops.transform.translate(value=(0, (length/2), 0))
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, -length, 0)})
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-length, 0, 0)})
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, length, 0)})
bpy.ops.object.select_by_type(type='MESH')
bpy.ops.object.join()
removeDoubles()
length = length * 2
# ташемта сама рекурсия во всей красe (вызов группы из 5 объектов)
length = createGroup(length)
return length
createGroup(length)
Я там обещал показать, как писать код не зная языков. Мой софт сам написан на Python, так что открываете консоль, создаете и двигаете примитивы, копипаста из консоли, PROFIT!!!