All pastes #78869 Raw Edit

Unnamed

public python v1 · immutable
·published 2006-07-04 17:14 UTC
rendered paste body
#!BPY"""Name: 'SelectArea 0.10'Blender: 241Group: 'Mesh'Tooltip: 'Selects verts within the selected area.'"""__author__ = "BeBraw"__url__ = ("")__version__ = "0.10 04.07.06"__bpydoc__ = """\Selects the verts within the selected area.Usage:Select area and execute the script.Tips:"""############################################################## Code history                                              ###############################################################	version 0.10 released 04.07.06# --------------------------------------------------------------------------# ***** BEGIN GPL LICENSE BLOCK *****## Copyright (C) 2006: BeBraw## This program is free software; you can redistribute it and/or# modify it under the terms of the GNU General Public License# as published by the Free Software Foundation; either version 2# of the License, or (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software Foundation,# Inc, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.## ***** END GPL LICENCE BLOCK *****# --------------------------------------------------------------------------'''Current issues:TODO:'''import Blenderfrom Blender import NMesh, WindowinEmode = Window.EditMode()if inEmode:	Window.EditMode(0)#get edges of selected objectselectedObject = Blender.Object.GetSelected()me = selectedObject[0].getData()edges = me.edges#get selected verts and their references to neighboursvertsAndTheirReferencesToNeighbourVerts = {}for e in edges:  try:        if e.v1.sel == 1:      vertsAndTheirReferencesToNeighbourVerts[e.v1]  except:     vertsAndTheirReferencesToNeighbourVerts[e.v1] = [e.v2]  else:       if e.v1.sel == 1:      references = vertsAndTheirReferencesToNeighbourVerts[e.v1]      references.append(e.v2)      vertsAndTheirReferencesToNeighbourVerts[e.v1] = referencesfor e in edges:  try:        if e.v2.sel == 1:      vertsAndTheirReferencesToNeighbourVerts[e.v2]  except:     vertsAndTheirReferencesToNeighbourVerts[e.v2] = [e.v1]  else:       if e.v2.sel == 1:      references = vertsAndTheirReferencesToNeighbourVerts[e.v2]      references.append(e.v1)      vertsAndTheirReferencesToNeighbourVerts[e.v2] = references#calculate references of neighbour verts to selected vertsamountOfReferencesOfNeighbours = {}for vert, references in vertsAndTheirReferencesToNeighbourVerts.iteritems():  for r in references:    try:          amountOfReferencesOfNeighbours[r]    except: #SyntaxError: invalid syntax here!!!      amountOfReferencesOfNeighbours[r]  = 1    else:         amountOfReferencesOfNeighbours[r] += 1print amountOfReferencesOfNeighbours#select those that have 2>= references#split them to groups that do not surpass selected verts by seeking paths#form selections recursively until verts can no longer can be selected#ask the user which group to select?		me.update()if inEmode:		Window.EditMode(0)	Window.EditMode(1)Blender.Redraw()