При необходимости быстро выделить все ребра, на которые назначены швы для UV-развертки можно при помощи Blender Python API. Для этого можно использовать оператор ops, обращения к данным меша или bmesh.
Выделить все ребра, на которые назначены UV-швы при помощи оператора select_similar проще всего.
Обратите внимание, на меше уже должно быть выделено хотя бы одно ребро с UV-швом. Так же нужно переключиться в режим выделения ребер в 3D вьюпорте. Теперь мы можем вызвать оператор:
|
1 |
bpy.ops.mesh.select_similar(type='EDGE_SEAM') |
После чего все ребра со швами будут выделены.
Можно выделить все ребра с UV-швами, пройдя по ребрам меша и проверяя их свойство “use_seam”. Этот метод сработает только в объектном режиме, поэтому перед проходом по ребрам нужно переключиться в этот режим.
|
1 2 3 4 5 6 |
bpy.ops.object.mode_set(mode = 'OBJECT') for edge in bpy.context.object.data.edges: edge.select = edge.use_seam bpy.ops.object.mode_set(mode = 'EDIT') |
После цикла мы можем вернуться в режим редактирования меша и убедиться, что все нужные ребра выделены.
Выделить ребра с UV-швами можно и при работе с объектом bmesh.
Нам нужно переключиться в объектный режим, создать объект bmesh, заполнить его данными с текущего меша и точно так же пройти в цикле по всем ребрам. Для ребра bmesh нужное свойство называется просто “seam”.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
bpy.ops.object.mode_set(mode = 'OBJECT') bm = bmesh.new() bm.from_mesh(bpy.context.active_object.data) for edge in bm.edges: edge.select = edge.seam bm.to_mesh(bpy.context.active_object.data) bm.free() bpy.ops.object.mode_set(mode = 'EDIT') |
После прохода по ребрам в цикле, сбросим данные из bmesh обратно в исходный меш, очистим bmesh и вернемся в режим редактирования. Все ребра с UV-швами будут выделены.
.blend file on Patreon