blender/release/scripts/rvk1_torvk2.py
Willian Padovani Germano a6d077bae2 Scripts:
- tiny updates for better behavior, unix line endings, cvs Id tags;
- Updated DX7 exporter (thanks to author Ben Omari who's also working on a DX8 one);
- added sysinfo script;

Interface (scripts):

- changed behavior for which win is chosen for script guis:
    Now there's a smarter order, guis will use either:
    - Scripts win
    - Buttons win (if not a script from groups Wizards or Utils)
    - Text win
    - Closest bigger area
- Added a button to the scripts header so that it's faster to return to the buttons win (this can be made general), if that was the previous win used.
2004-06-10 03:27:46 +00:00

111 lines
3.5 KiB
Python

#!BPY
""" Registration info for Blender menus: <- these words are ignored
Name: 'Rvk1 to Rvk2'
Blender: 232
Group: 'Animation'
Tip: 'Copy deform data (not surf. subdiv) of active obj to rvk of the 2nd selected obj.'
"""
# $Id$
#
#----------------------------------------------
# jm soler (c) 05/2004 : 'Rvk1toRvk2' release under blender artistic licence
#----------------------------------------------
# Blender Artistic License
# http://download.blender.org/documentation/html/x21254.html
#----------------------------------------------------
# Copy the rvk (1, or armature, lattice, or
# any mesh deformation except surface
# sbdivision) of the active object to rvk (2) of
# the second selected object. Create rvk or modify
# absolute key if needed.
#----------------------------------------------
# official Page :
# http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_rvk1versrvk2.htm
# download the script :
# http://jmsoler.free.fr/util/blenderfile/py/rvk1_torvk2.py
# Communicate upon problems or errors:
# http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender
#----------------------------------------------
# Page officielle :
# http://jmsoler.free.fr/util/blenderfile/py/rvk1_torvk2.py
# Communiquer les problemes et erreurs sur:
# http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender
#---------------------------------------------
# changelog :
# - a test on mesh parity between getraw and getrawfromobject
# when there is active subsurf division.
# - can copy, or not, vertex groups from the original mesh.
#---------------------------------------------
import Blender
from Blender import NMesh,Draw,Object
def rvk2rvk():
try:
SUBMODIF=0
RVK2=Object.GetSelected()[0]
RVK1=Object.GetSelected()[1]
FRAME=Blender.Get('curframe')
DATA2=RVK2.getData()
if DATA2.getMode() & NMesh.Modes['SUBSURF'] :
SUBSURF2=DATA2.getSubDivLevels()
if SUBSURF2[0]!=0:
name = "The active object has a subsurf level different from 0 ... %t| Let script do the the modification for you ? %x1| you prefer do it yourself ? %x2 "
result = Draw.PupMenu(name)
if result==1:
DATA2.mode=DATA2.mode-NMesh.Modes['SUBSURF']
SUBMODIF=1
DATA2.update()
RVK2.makeDisplayList()
Blender.Redraw()
else:
return
RVK2NAME=Object.GetSelected()[0].getName()
mesh=RVK1.getData()
meshrvk2=NMesh.GetRawFromObject(RVK2NAME)
name = "Do you want to replace or add vertex groups ? %t| YES %x1| NO ? %x2 "
result = Draw.PupMenu(name)
if result==1:
GROUPNAME1=mesh.getVertGroupNames()
if len(GROUPNAME1)!=0:
for GROUP1 in GROUPNAME1:
mesh.removeVertGroup(GROUP1)
GROUPNAME2=DATA2.getVertGroupNames()
if len(GROUPNAME2)!=0:
for GROUP2 in GROUPNAME2:
mesh.addVertGroup(GROUP2)
mesh.assignVertsToGroup(GROUP2,DATA2.getVertsFromGroup(GROUP2),1.0,'replace')
for v in meshrvk2.verts:
i= meshrvk2.verts.index(v)
v1=mesh.verts[i]
for n in range(len(v.co)):
v1.co[n]=v.co[n]
mesh.update()
mesh.insertKey(FRAME,'relative')
mesh.update()
RVK1.makeDisplayList()
if SUBMODIF==1:
DATA2.mode=DATA2.mode+NMesh.Modes['SUBSURF']
SUBMODIF=0
DATA2.update()
RVK2.makeDisplayList()
Blender.Redraw()
except:
print 'problem : not object selected or not mesh'
rvk2rvk()