#!BPY
"""
Name: 'Align Vertices'
Blender: 236
Group: 'Mesh'
Tooltip: ''
"""
__author__ = "Jean-Michel Soler (jms)"
__url__ = ("Script's homepage, ",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "Vertex Align 12/2004"
__bpydoc__ = """\
La procedure est simple et fonctionne en mode edit :
1/ ouvrez une fenêtre python
2/ chargez le script copyvertexcoord.py
3/ passez dans la fenêtre 3d, sélectionnez un vertex et
un seul
4/ appuyez sur le bouton Original Vertex
5/ sélectionnez l'axe (ou les axes) : x, y ou z
6/ sélectionnez tous les vertices/sommets qui devront être
modifies
7/ appuyez sur Selected vertex list.
"""
#=========================
# jmsoler, 01/2005
#=========================
import Blender
from Blender.Draw import *
from Blender.BGL import *
from Blender.NMesh import *
axe={}
for n in ['X','Y','Z'] :
axe[n]=Create(0.0)
def draw():
global axe
glClear(GL_COLOR_BUFFER_BIT)
glRasterPos2f(20, 80)
Text("Copy X,Y,Z from original value to selected
vertex list.")
dec=20
for n in ['X','Y','Z'] :
dec+=32
axe[n]=Toggle(n, 4, 40+dec,
33, 30, 20, int(axe[n].val) ,"A toggle button")
Button("Original Vertex", 2, 20, 55, 120, 18)
Button("Selected Vertex list", 3, 145, 55, 120,
18)
#boutons de sortie
Button("Exit", 1, 20, 10, 80, 19)
def event(evt, val):
if (evt== QKEY and not val): Exit()
def bevent(evt):
global axe
if (evt== 1):
Exit()
if (evt== 2):
in_editmode = Blender.Window.EditMode()
if in_editmode:
Blender.Window.EditMode(0)
O=Blender.Object.GetSelected()[0]
v=[v for v in O.getData().verts
if v.sel==1]
if len(v)==1:
for n
in [0,1,2] : print v[0].co[n]
Blender.X=v[0].co[0]
Blender.Y=v[0].co[1]
Blender.Z=v[0].co[2]
else:
print
"Only one vertex "
if in_editmode:
Blender.Window.EditMode(1)
if (evt== 3):
print Blender.Z
in_editmode
= Blender.Window.EditMode()
if in_editmode:
Blender.Window.EditMode(0)
O=Blender.Object.GetSelected()[0]
M=O.getData()
v=[v for
v in M.verts if v.sel==1]
for v0
in v:
if axe['X'].val : v0.co[0]=Blender.X
if axe['Y'].val :v0.co[1]=Blender.Y
if axe['Z'].val :v0.co[2]=Blender.Z
M.update()
if in_editmode:
Blender.Window.EditMode(1)
#except:
#
print "nothing to copy..."
Blender.Window.RedrawAll()
Register(draw, event, bevent) |