d6ef674dfa663f0f0f67b9b055d5e9f5bcff5131
[blender.git] / release / scripts / uvcopy.py
1 #!BPY
2 """ Registration info for Blender menus: <- these words are ignored
3 Name: 'UVcopy'
4 Blender: 242
5 Group: 'Object'
6 Tip: 'Copy UV coords from a mesh to another that has same vertex indices'
7 """
8
9 __author__ = "Toni Alatalo, Martin Poirier et. al."
10 __url__ = ("blender", "elysiun",
11 "Script's homepage, http://www.elysiun.com/forum/viewtopic.php?t=14897", 
12 "Communicate problems and errors, http://www.elysiun.com/forum/viewtopic.php?t=14897")
13 __version__ = "0.2 01/2006"
14
15 __bpydoc__ = """\
16 This script copies UV coords from a mesh to another (version of the same mesh).
17 """
18
19 import Blender
20  
21 scene = Blender.Scene.GetCurrent()
22
23 unwrapped = scene.getActiveObject()
24 targets = Blender.Object.GetSelected()
25  
26 if unwrapped: 
27     source = unwrapped.data
28 else: 
29     raise RuntimeError, "No active object to copy UVs from." 
30  
31 if targets:
32     try:
33         targets.remove(unwrapped)
34     except ValueError:
35         print "ob for sourcedata was not in targets, so did not need to remove", unwrapped, targets
36     #try:
37     #    target = targets[0].data
38     #except IndexError:
39     if not targets:
40         raise RuntimeError, "no selected object other than the source, hence no target defined."
41 else: 
42     raise RuntimeError, "No selected object(s) to copy UVs to."
43
44 if source and targets:
45     for target in targets:
46         target = target.data
47         for i in range(len(target.faces)): 
48             target.faces[i].uv = source.faces[i].uv
49             #print "copied to target:", target.name, target.data.faces[i].uv, ", source being:", source.faces[i].uv
50         target.update() 
51         print "Copied UV from object " + unwrapped.name + " to object(s) " + str([target.name for target in targets]) + "."