Reputation: 3347
Using the following code which I got from https://blender.stackexchange.com/questions/43127/how-do-i-select-specific-vertices-in-blender-using-python-script. I can get vertices to select but when I uncomment for edged or faces and comment for vertices it doesn't work. I just guessed at the spelling for edges and facees but is it correct?
import bpy
#clear scene, make mesh
bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(1.5708, 1.5708, 0))
obj = bpy.data.objects["Cube"]
#select vertex
obj = bpy.context.active_object
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_mode(type="VERT")
#bpy.ops.mesh.select_mode(type="EDGE")
#bpy.ops.mesh.select_mode(type="FACE")
bpy.ops.mesh.select_all(action = 'DESELECT')
bpy.ops.object.mode_set(mode = 'OBJECT')
obj.data.vertices[5].select = True
#obj.data.edges[1].select = True
#obj.data.faces[1].select = True
bpy.ops.object.mode_set(mode = 'EDIT')
Upvotes: 4
Views: 8027
Reputation: 1
In edit mode Blender works with a 'copy' of the mesh that is not saved until you exit this mode. In object mode the changes are immediate.
bpy.ops.object.mode_set(mode = 'OBJECT')
act_obj = bpy.context.active_object.name
#No need to select to apply transformation
bpy.data.meshes[act_obj].vertices[2].co[2] +=0.1
Upvotes: 0
Reputation: 3347
I eventually replaced the word 'face' with the word 'polygons' and it worked.
import bpy
#clear scene, make mesh
bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(1.5708, 1.5708, 0))
obj = bpy.data.objects["Cube"]
#select vertex
obj = bpy.context.active_object
bpy.ops.object.mode_set(mode = 'EDIT')
#bpy.ops.mesh.select_mode(type="VERT")
#bpy.ops.mesh.select_mode(type="EDGE")
bpy.ops.mesh.select_mode(type="FACE")
bpy.ops.mesh.select_all(action = 'DESELECT')
bpy.ops.object.mode_set(mode = 'OBJECT')
#obj.data.vertices[2].select = True
#obj.data.edges[7].select = True
obj.data.polygons[2].select = True
bpy.ops.object.mode_set(mode = 'EDIT')
Upvotes: 4