Создавать швы, по которым в дальнейшем будет производиться развертка, можно как вручную, командой Mark Seam, так и при помощи Blender Python API.
Чтобы проложить шов по нужным ребрам, сначала создадим объект BMesh и скопируем в него геометрию активного объекта.
Данные команды нужно выполнять, когда объект находится в режиме редактирования Edit Mode.
1 2 3 |
import bmesh bm = bmesh.from_edit_mesh(bpy.context.object.data) |
Является ли каждое отдельное ребро частью шва, определяется его свойством seam. Если значение seam у ребра равно True – шов развертки проходит по этому ребру, если False – на этом ребре нет разверточных швов.
Получим список всех ребер, на которые наложены швы развертки.
1 2 3 4 5 6 |
seam_edges = [edge for edge in bm.edges if edge.seam] print(seam_edges) # [<BMEdge(0x0000025D4933FBD0), index=420, verts=(0x0000025D3EEB0B48/233, 0x0000025D3EEB0AD8/231)>, # <BMEdge(0x0000025D4933FC20), index=421, verts=(...), # ...] |
Значение параметра seam можно редактировать напрямую, назначать или удалять с текущего ребра шов развертки.
Для примера назначим шов развертки во всем выделенным ребрам, и снимем его со всех остальных ребер.
1 2 |
for edge in bm.edges: edge.seam = edge.select |
Теперь перенесем сделанные изменения обратно на геометрию активного меша, и очистим объект BMesh.
1 2 3 |
bmesh.update_edit_mesh(bpy.context.object.data) bm.free() |