Utility_Apps/Blender/addons/Sync Render with Viewport Visibility/__init__.py

46 lines
No EOL
1.5 KiB
Python

bl_info = {
"name": "Sync Render with Viewport Visibility",
"author": "https://claude.ai/",
"version": (1, 0),
"blender": (2, 80, 0),
"location": "Object > Show/Hide > Sync Render with Viewport",
"description": "Syncs render visibility based on viewport visibility",
"category": "Object",
}
import bpy
class OBJECT_OT_sync_render_viewport(bpy.types.Operator):
"""Sync render visibility with viewport visibility"""
bl_idname = "object.sync_render_viewport"
bl_label = "Sync Render with Viewport"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
count = 0
# Iterate through all objects in the scene
for obj in bpy.data.objects:
# If object is hidden in viewport, enable display in render
if obj.hide_get():
obj.hide_render = True
# If object is visible in viewport, disable display in render
else:
obj.hide_render = False
count += 1
self.report({'INFO'}, f"Synced {count} objects")
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(OBJECT_OT_sync_render_viewport.bl_idname)
def register():
bpy.utils.register_class(OBJECT_OT_sync_render_viewport)
bpy.types.VIEW3D_MT_object_showhide.append(menu_func)
def unregister():
bpy.utils.unregister_class(OBJECT_OT_sync_render_viewport)
bpy.types.VIEW3D_MT_object_showhide.remove(menu_func)
if __name__ == "__main__":
register()