Render.ru

Создание грани скриптом.

dmtr

Пользователь сайта
Рейтинг
2
#1
Используя модуль NMesh:
Код:
import Blender
from Blender import *

me = NMesh.New()

v1 = NMesh.Vert(0,1,0)
v2 = NMesh.Vert(0,0,0)

ed = me.addEdge(v1,v2)

Blender.Redraw()
Нажимаю Alt+P... и ничего не происходит. Ошибок в консоли тоже никаких не выдаёт. В чём проблема может быть?

Используя модуль Mesh:
Код:
import Blender
from Blender import *

me = Mesh.New()

v1 = [1,0,0]
v2 = [0,1,0]

me.verts.extend(v1,v2)
me.edges.extend(v1,v2)

Blender.Redraw()
Нажимаю Alt+P... в консоли пишет: в 10 строчке TypeError: expected a sequence of sequence triplets. Как это победить?

Так и не нашёл в инете внятного примера как создать edge из двух точек.
 

logosman

Модератор форума
Команда форума
Рейтинг
316
#2
Ошибки есть и не только в 10 строчке.

О чём говорит ошибка:
"TypeError: expected a sequence of sequence triplets."
"Ошибка типа: требуется последовательность триплетов."

Во первых: метод 'extend' является встроенным в Python, вывод - читаем офф. документацию.

Во вторых объект будет создан вне сцены и по завершении скрипта будет удалён. Для этого нужно взять сцену и добавить свой объект в неё. После чего сделать обновление всех окон Blender.

Результат:

Код:
import bpy, Blender;

me = Blender.Mesh.New();

v1 = [[1,0,0], [-1, 0, 0]]
v2 = [[0,1]]

me.verts.extend(v1)
me.edges.extend(v2)

scn = bpy.data.scenes.active;
ob = scn.objects.new(me, 'myObj');

Blender.Redraw();
Отличные примеры приведены в самой документации Blender Python API
Также можно посмотреть встроенные скрипты Blender.
 
Сверху