46 lines
No EOL
1.5 KiB
Python
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() |