做的东西多了 测试的东西多了 难免会多出一堆空的顶点组 还没有一键删除的方法 而且顶点组也不能多选 一个一个删除麻烦死了 在se找到了解决方案
import bpy
def survey(obj):
maxWeight = {}
for i in obj.vertex_groups:
maxWeight[i.index] = 0
for v in obj.data.vertices:
for g in v.groups:
gn = g.group
w = obj.vertex_groups[g.group].weight(v.index)
if (maxWeight.get(gn) is None or w>maxWeight[gn]):
maxWeight[gn] = w
return maxWeight
obj = bpy.context.active_object
maxWeight = survey(obj)
# fix bug pointed out by user2859
ka = []
ka.extend(maxWeight.keys())
ka.sort(key=lambda gn: -gn)
print (ka)
for gn in ka:
if maxWeight[gn]<=0:
print ("delete %d"%gn)
obj.vertex_groups.remove(obj.vertex_groups[gn]) # actually remove the group
如果是多个物体呢 稍微改一下就是了 使用bpy.context.selected_objects