Как обновить данные sh через скрипт blender python? - PullRequest
0 голосов
/ 06 февраля 2020

Я могу создать me sh в блендере с помощью этого скрипта:

mesh = bpy.data.meshes.new("mymesh")
obj = bpy.data.objects.new("myobj", mesh)
bpy.context.scene.collection.objects.link(obj)
mesh.from_pydata([[0, 0, 0], [1, 0, 0], [1, 1, 0]], [], [[0, 1, 2]])

Однако, если я попытаюсь обновить данные me sh с помощью from_pydata снова, это приведет к ошибке :

RuntimeError: internal error setting the array

Есть ли способ обновить данные me sh после создания me sh?
(я пытаюсь избежать удаления объекта и повторного его создания с помощью новые данные.)

1 Ответ

0 голосов
/ 15 февраля 2020

Функция from_pydata берет списки данных и создает блок данных me sh . Если у вас есть блок данных me sh, вы можете напрямую настроить свойства me sh. Их можно найти в свойствах vertices, edges и polygons данных me sh.

obj.data.vertices[0].co.x = 1.25

В большинстве случаев эти данные не должны изменяться напрямую, любые изменения, сделанные в режиме редактирования, будут перезаписаны, так как edit me sh сохраняется как данные bme sh. Модуль bme sh обеспечивает более быстрый доступ и методы для изменения данных sh, а также может обновлять me sh в режиме редактирования.

...