#!BPY
""" Registration info for Blender menus:
<- these words are ignored
Name: 'UV Editor copy and paste'
Blender: 232
Group: 'UV'
Tip: 'Copy and paste UV data from 3D window
or UV editor '
"""
__author__ = "Jean-Michel Soler (jms)"
__url__ = ("blender", "elysiun",
"Script's homepage, http://jmsoler.free.fr/didacticiel/blender/tutor/py_uvcoord_copy_paste.htm",
"Communicate problems and errors, http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender")
__version__ = "0.1 06/2006"
"""
jmsoler (c) 20/06/2006
"""
import Blender
from Blender.Draw import *
from Blender.BGL import *
Copy = Create(0)
Paste = Create(0)
MeshEditor = Create(0)
UVEditor = Create(0)
FaceSelect = Create(0)
UV=[]
def draw():
global Copy,Paste,
MeshEditor
global UVEditor, FaceSelect
glClear(GL_COLOR_BUFFER_BIT)
glRasterPos2f(20, 80)
Text("UV copy/paste")
glRasterPos2f(20, 60)
Copy=Button(" Copy "
, 2, 10, 35, 100, 18)
Paste=Button(" Paste
", 3, 130, 35, 100, 18)
MeshEditor = Toggle("MeshEditor",
4, 10, 55, 70, 18, MeshEditor.val ,"Copy from Mesh Edition mode ")
UVEditor
= Toggle("UVEditor" , 5, 85, 55, 70, 18, UVEditor.val ,"Copy from
UV editor in Face Select mode")
FaceSelect = Toggle("FaceSelect",
6, 160, 55, 70, 18, FaceSelect.val ,"Copy from Face Select mode in object
mode or edit mode")
#boutons de sortie
Button("Exit", 1, 10,
15, 220, 18)
def event(evt, val):
if (evt== QKEY and
not val): Exit()
def bevent(evt):
global UV, Copy,Paste,
MeshEditor
global UVEditor, FaceSelect
if (evt== 1):
Exit()
if (evt in [4,5,6]):
MeshEditor.val
= 0
FaceSelect.val
= 0
UVEditor.val
= 0
if
(evt==4):
MeshEditor.val=1
if
(evt==5):
UVEditor.val=1
if
(evt==6):
FaceSelect.val =1
if (evt== 2 and
FaceSelect.val):
if Blender.Object.GetSelected()[0]>0
and Blender.Object.GetSelected()[0].getType()=='Mesh':
OB = Blender.Object.GetSelected()[0]
ME=OB.getData()
if ME.hasFaceUV() :
UV=[[f,ME.faces[f].uv[:]] for f in ME.getSelectedFaces(1)]
print UV
if (evt== 3 and
FaceSelect.val and len(UV)>0):
OB = Blender.Object.GetSelected()[0]
ME=OB.getData()
ME.hasFaceUV(1)
SEL=Blender.NMesh.FaceFlags['SELECT']
for f in ME.faces:
if f.flag & SEL:
f.flag &=~SEL
for uv in UV:
ME.faces[uv[0]].uv=uv[1][:]
ME.faces[uv[0]].flag |= SEL
ME.update()
Blender.Window.RedrawAll()
Register(draw, event, bevent) |