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

Меш

Меш

Эта программа создает два меша. Первый — закрытая пирамида, как с треугольными, так и с четырёхугольными гранями. Второй — проволочный треугольник. Имена обоих мешей отображаются. Треугольник сдвигается вбок, так чтобы его можно было увидеть рядом с пирамидой. Для этого требуется его выбрать.


#----------------------------------------------------------
# File meshes.py
#----------------------------------------------------------
import bpy
def createMesh(name, origin, verts, edges, faces):
    # Создание меша и объекта
    me = bpy.data.meshes.new(name+'Mesh')
    ob = bpy.data.objects.new(name, me)
    ob.location = origin
    ob.show_name = True
    # Привязка объекта к сцене
    bpy.context.scene.objects.link(ob)
    # Создание меша из передаваемых списков вершин, рёбер, граней.
# Или рёбра или грани должны быть [], иначе Вам нужны проблемы
    me.from_pydata(verts, edges, faces)
    # Обновляет меш с новыми данными
    me.update(calc_edges=True)
    return ob
def run(origin):
    (x,y,z) = (0.707107, 0.258819, 0.965926)
    verts1 = ((x,x,-1), (x,-x,-1), (-x,-x,-1), (-x,x,-1), (0,0,1))
    faces1 = ((1,0,4), (4,2,1), (4,3,2), (4,0,3), (0,1,2,3))
    ob1 = createMesh('Solid', origin, verts1, [], faces1)
    verts2 = ((x,x,0), (y,-z,0), (-z,y,0))
    edges2 = ((1,0), (1,2), (2,0))
    ob2 = createMesh('Edgy', origin, verts2, edges2, [])
    # Сдвигает второй объект с дороги
    ob1.select = False
    ob2.select = True
    bpy.ops.transform.translate(value=(0,2,0))
return if __name__ == "__main__":
    run((0,0,0))

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


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