造轮子~🚗
bl_info ={
"name":"ZYF Blender AddOns",
"blender":(2,80,0),
"category":"Object"
}
import bpy
class SelectNotEmptyObjs(bpy.types.Operator):
"""在选中的所有物体中排除空物体"""
bl_idname="object.slectnotemptyobjs"
bl_label="排除空物体"
bl_options= {'REGISTER','UNDO'}
def execute(self,context):
zenmesh = []
for i in context.selected_objects:
if i.type != 'EMPTY':
zenmesh.append(i)
bpy.ops.object.select_all(action='DESELECT')
for i in zenmesh:
i.select_set(True)
if len(zenmesh) >0:
bpy.context.view_layer.objects.active = zenmesh[0]
print("选中非空物体:{0} 个物体".format(len(zenmesh)))
return {'FINISHED'}
class SelectEmptyObjs(bpy.types.Operator):
"""在选中的所有物体中只保留空物体"""
bl_idname="object.slectemptyobjs"
bl_label="只保留空物体"
bl_options= {'REGISTER','UNDO'}
def execute(self,context):
zenmesh = []
for i in context.selected_objects:
if i.type == 'EMPTY':
zenmesh.append(i)
bpy.ops.object.select_all(action='DESELECT')
for i in zenmesh:
i.select_set(True)
if len(zenmesh) >0:
bpy.context.view_layer.objects.active = zenmesh[0]
print("选中空物体:{0} 个物体".format(len(zenmesh)))
return {'FINISHED'}
def menu_func(self,context):
self.layout.operator(SelectNotEmptyObjs.bl_idname)
self.layout.operator(SelectEmptyObjs.bl_idname)
def register():
bpy.utils.register_class(SelectNotEmptyObjs)
bpy.utils.register_class(SelectEmptyObjs)
bpy.types.VIEW3D_MT_object.append(menu_func)
def unregister():
bpy.utils.unregister_class(SelectNotEmptyObjs)
bpy.utils.unregister_class(SelectEmptyObjs)
if __name__ == "__main__":
register()