Книга: Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Применение модификатора массива (array)

Применение модификатора массива (array)

Эта программа создает цепь из десяти звеньев. Звено является простым тором, масштабированным вдоль оси x. Мы добавляем звену модификатор массива, где смещение управляется пустышкой (empty). Наконец, модификатор массива применяется (apply), создавая из цепи единственный меш.


#----------------------------------------------------------
# File chain.py
# Creates an array modifier and applies it# Update to API rev. 36523
#----------------------------------------------------------
import bpy
import math
from math import pi
def run(origin):
# Добавление единственного звена цепи к сцене
    bpy.ops.mesh.primitive_torus_add(
        #major_radius=1,
        #minor_radius=0.25,
        major_segments=12,
        minor_segments=8,
        use_abso=True,
        abso_major_rad=1,
        abso_minor_rad=0.6,
        location=(0,0,0),
        rotation=(0,0,0))
    # Масштабирование тора вдоль оси x
    ob = bpy.context.object
    ob.scale = (0.7, 1, 1)
    bpy.ops.object.transform_apply(scale=True)
    # Создание пустышки
    bpy.ops.object.add(
        type='EMPTY',
        location=(0,1.2,0.2),
        rotation=(pi/2, pi/4, pi/2))
    empty = bpy.context.object
    # Звено цепи снова делается активным
    scn = bpy.context.scene
    scn.objects.active = ob
    # Добавление модификатора
    mod = ob.modifiers.new('Chain', 'ARRAY')
    mod.fit_type = 'FIXED_COUNT'
    mod.count = 10
    mod.use_relative_offset = 0
    mod.use_object_offset = True
    mod.offset_object = empty
    # Применение модификатора
    bpy.ops.object.visual_transform_apply()
    bpy.ops.object.modifier_apply(apply_as='DATA', modifier='Chain')
    # Перемещение цепи на место
    bpy.ops.transform.translate(value=origin)
    # Пустышка больше не нужна
    scn.objects.unlink(empty)
    del(empty)
    return
if __name__ == "__main__":
    run((0,3,0))

Оглавление книги


Генерация: 0.029. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз