import bpy import math SMALL=0.0001 def nameFlip(name): strlen=len(name) if(strlen<1): return name last=name[strlen-1] if(last=='R'): return name[0:strlen-1]+'L' if(last=='L'): return name[0:strlen-1]+'R' return name def calDistance(v1,v2): vx=v1.x-v2.x vy=v1.y-v2.y vz=v1.z-v2.z return math.sqrt(vx*vx+vy*vy+vz*vz) def getTgt(v,array): vcp=v.co.copy() vcp.x*=-1 array.remove(v) ret=None for tv in array: dist=calDistance(vcp,tv.co) if(distSMALL): tgt=getTgt(v,targets) if(tgt==None): print("no") continue for vg in obj.vertex_groups: vg.remove([tgt.index]) vgs=v.groups for vge in vgs: tvg=obj.vertex_groups[nameflip[index2name[vge.group]]] tvg.add([tgt.index],vge.weight,'REPLACE') func()