#!BPY """ Released under the Blender Artistic Licence (BAL) Name: 'showVertIndex' Blender: 235 Group: 'Object' Tooltip: 'Select only the vertex with given index' """ __author__ = "pat" __version__ = "1.3a - 01/10/05 -" __email__ = ('Author, pat:psycho3d*de') __url__ = ("Author's website, www.psycho3d.de") __bpydoc__ ="""\ This script deselects all verts but the one you choose. Select a mesh object and click the "Index" button. The mesh will enter EditMode and the chosen vertex will be selected. You may now edit your mesh, change to another vertex or leave EditMode to select another object. Hotkeys:
Q: [Q]uit """ from Blender import NMesh, Window from Blender.Object import GetSelected from Blender.Draw import * from Blender.BGL import * index = Create(0) obname = "" maxverts = 0 ob = None me = None def checkOb(): global ob, index, obname, maxverts try: ob = GetSelected()[0] except IndexError: PupMenu("Error%t|No object selected!") else: if ob.getName() != obname: if ob.getType() != "Mesh": PupMenu("Error%t|Object is not a mesh!") else: obname = ob.getName() maxverts = len(ob.getData().verts)-1 else: maxverts = len(ob.getData().verts)-1 ### checkOb def find(index): global ob, me Window.EditMode(0) me = ob.getData() for v in me.verts: v.sel = 0 me.verts[index].sel = 1 me.update() Window.EditMode(1) ### find def gui(): global index, ob, me, maxverts col = Window.Theme.Get()[0].get("buts").back glClearColor(col[0]/255., col[1]/255., col[2]/255., col[3]/255.) glClear(GL_COLOR_BUFFER_BIT) index = Number("Index: ", 2, 10, 60, 100, 20, index.val, 0, maxverts, "The index you are looking for") Button("Exit", 1, 10, 30, 100, 20, "This one should explain itself :)") def event(evt, val): if (evt == QKEY and not val): Exit() def bevent(evt): if (evt == 1): Exit() elif evt == 2: checkOb() if index.val > maxverts: index.val = maxverts if index.val < 0: index.val = 0 find(index.val) Register(gui, event, bevent)