p2or
8/25/2017 - 10:15 AM

blender-merge-vertex-groups-jerryno.py

import bpy

vgroup_A_name = "Group"
vgroup_B_name = "Group.001"

ob = bpy.context.active_object
if vgroup_A_name and vgroup_B_name in ob.vertex_groups:
    
    vgroup = ob.vertex_groups.new(name=vgroup_A_name+"+"+vgroup_B_name)
    
    for id, vert in enumerate(ob.data.vertices):
        available_groups = [v_group_elem.group for v_group_elem in vert.groups]
        A = B = 0
        if ob.vertex_groups[vgroup_A_name].index in available_groups:
            A = ob.vertex_groups[vgroup_A_name].weight(id)
        if ob.vertex_groups[vgroup_B_name].index in available_groups:
            B = ob.vertex_groups[vgroup_B_name].weight(id)
        
        if len(vert.groups):
            for g in vert.groups:
                if ob.vertex_groups[g.group].name in [vgroup_A_name, vgroup_B_name]:
                    vgroup.add([id], A+B ,'REPLACE')