Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

me = ob.data

# Создание групп вершин

upper = ob.vertex_groups.new('Upper')

lower = ob.vertex_groups.new('Lower')

for v in me.vertices:

if v.co[2] > 0.001:

upper.add([v.index], 1.0, 'REPLACE')

elif v.co[2] < -0.001:

lower.add([v.index], 1.0, 'REPLACE')

else: upper.add([v.index], 0.5, 'REPLACE')

lower.add([v.index], 0.5, 'REPLACE')

return ob

def createLattice(origin):

# Создание решётки и объекта

lat = bpy.data.lattices.new('MyLattice')

ob = bpy.data.objects.new('LatticeObject', lat)

ob.location = origin ob.show_x_ray = True

# Привязка объекта к сцене

scn = bpy.context.scene

scn.objects.link(ob)

scn.objects.active = ob

scn.update

# Установка атрибутов решётки

lat.interpolation_type_u = 'KEY_LINEAR'

lat.interpolation_type_v = 'KEY_CARDINAL'

lat.interpolation_type_w = 'KEY_BSPLINE'

lat.use_outside = False

lat.points_u = 2

lat.points_v = 2 lat.points_w = 2

# Расстановка точек решётки

s = 1.0

points = [

(-s,-s,-s), (s,-s,-s), (-s,s,-s), (s,s,-s),

(-s,-s,s), (s,-s,s), (-s,s,s), (s,s,s)

]

for n,pt in enumerate(lat.points):

for k in range(3):

pt.co_deform[k] = points[n][k]

pass

return ob

def run(origin):

sphere = createIcoSphere(origin)

lat = createLattice(origin)

# Создание модификатора решётки

mod = sphere.modifiers.new('Lat', 'LATTICE')

mod.object = lat

mod.vertex_group = 'Upper'

# Решётка в режиме редактирования для лёгкого деформирования

bpy.context.scene.update

bpy.ops.object.mode_set(mode='EDIT')

return

if __name__ == "__main__":

run((0,0,0))

Кривая

Эта программа добавляет кривую Безье. Она также добавляет круг Nurbs, который используется как bevel-объект.

#----------------------------------------------------------

# File curve.py

#----------------------------------------------------------

import bpy

def createBevelObject:

# Создание Bevel-кривой и объекта

cu = bpy.data.curves.new('BevelCurve', 'CURVE')

ob = bpy.data.objects.new('BevelObject', cu)

bpy.context.scene.objects.link(ob)

# Настройка некоторых атрибутов cu.dimensions = '2D'

cu.resolution_u = 6

cu.twist_mode = 'MINIMUM'

ob.show_name = True

# Координаты управляющих точек

coords = [

(0.00,0.08,0.00,1.00),

(-0.20,0.08,0.00,0.35),

(-0.20,0.19,0.00,1.00),

(-0.20,0.39,0.00,0.35),

(0.00,0.26,0.00,1.00),

  • Читать дальше
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: