Как и в обычном режиме работы с мешем через Blender Python API, при использовании объекта BMesh для снятия выделения с точек недостаточно просто изменить значение их свойства select на противоположное. Чтобы снять выделение с точек объекта BMesh значение select нужно поменять и у примыкающих к ним ребер и полигонов.
Манипуляции с объектом BMesh проводятся в объектном режиме. Переключимся на него.
1 |
bpy.ops.object.mode_set(mode='OBJECT') |
Создадим объект BMesh, взяв для него данные текущего активного объекта.
1 2 |
bm = bmesh.new() bm.from_mesh(bpy.context.object.data) |
Если мы попробуем снять выделение только для точек:
1 2 |
for vertex in bm.verts: vertex.select = False |
Мы не увидим никакого результата.
Для того чтобы снять выделение, снимем его последовательно для полигонов, ребер и точек.
1 2 3 4 5 6 |
for face in bm.faces: face.select = False for edge in bm.edges: edge.select = False for vertex in bm.verts: vertex.select = False |
Сбросим измененные данные обратно в активный объект
1 |
bm.to_mesh(bpy.context.object.data) |
И вернемся в режим редактирования
1 |
bpy.ops.object.mode_set(mode='EDIT') |
Теперь мы видим, что все выделение с точек меша полностью снято.