Blender 自研插件

造轮子~🚗

bl_info ={
    "name":"ZYF Blender AddOns",
    "blender":(2,80,0),
    "category":"Object"
}

import bpy

#在选中的所有物体中排除空物体
class SelectNotEmptyObjs(bpy.types.Operator):
    """在选中的所有物体中排除空物体""" #提示
    bl_idname="object.slectnotemptyobjs" # id
    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" # id
    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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙膏上的小苏打2333

哟,哟,切克闹,煎饼果子来一套

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值