How to simplify this code to Switch to a specific camera view in each area?
import bpy
class C_0V0(bpy.types.Operator):
bl_idname = "cam.c0v0"
bl_label = "C_0V0"
cam_name = "C_0V0"
def execute(self, context):
C = bpy.context
# select cam in context area
C.space_data.camera = bpy.data.objects["C_0V0"]
# set scene cam
for area in C.screen.areas:
if area.type == 'VIEW_3D':
A = C.area.spaces.active.camera
C.scene.camera = bpy.data.objects[A.name]
C.space_data.shading.color_type = 'OBJECT'
C.space_data.region_3d.view_perspective = 'CAMERA'
#cam view center
bpy.ops.view3d.view_center_camera()
# set cam attributes
bpy.data.objects[A.name].lock_scale = (True, True, True)
bpy.data.objects[A.name].lock_location = (True, True, True)
bpy.data.objects[A.name].lock_rotation = (True, True, True)
bpy.data.objects[A.name].scale = (1, 1, 1)
bpy.data.cameras[A.name].display_size = 0.05
bpy.data.cameras[A.name].background_images[0].alpha = 0
bpy.data.cameras[A.name].dof.use_dof = False
bpy.data.cameras[A.name].clip_start = 25
bpy.data.cameras[A.name].clip_end = 100000
bpy.data.cameras[A.name].background_images[0].scale = 1
bpy.data.cameras[A.name].background_images[1].scale = 1
bpy.data.cameras[A.name].background_images[2].scale = 1
return {'FINISHED'}
class C_0V1(bpy.types.Operator):
bl_idname = "cam.c0v1"
bl_label = "C_0V1"
cam_name = "C_0V1"
def execute(self, context):
C = bpy.context
# select cam in context area
C.space_data.camera = bpy.data.objects["C_0V1"]
# set scene cam
for area in C.screen.areas:
if area.type == 'VIEW_3D':
A = C.area.spaces.active.camera
C.scene.camera = bpy.data.objects[A.name]
C.space_data.shading.color_type = 'OBJECT'
C.space_data.region_3d.view_perspective = 'CAMERA'
#cam view center
bpy.ops.view3d.view_center_camera()
# set cam attributes
bpy.data.objects[A.name].lock_scale = (True, True, True)
bpy.data.objects[A.name].lock_location = (True, True, True)
bpy.data.objects[A.name].lock_rotation = (True, True, True)
bpy.data.objects[A.name].scale = (1, 1, 1)
bpy.data.cameras[A.name].display_size = 0.05
bpy.data.cameras[A.name].background_images[0].alpha = 0
bpy.data.cameras[A.name].dof.use_dof = False
bpy.data.cameras[A.name].clip_start = 25
bpy.data.cameras[A.name].clip_end = 100000
bpy.data.cameras[A.name].background_images[0].scale = 1
bpy.data.cameras[A.name].background_images[1].scale = 1
bpy.data.cameras[A.name].background_images[2].scale = 1
return {'FINISHED'}
addon_keymaps = []
def register():
bpy.utils.register_class(C_0V0)
bpy.utils.register_class(C_0V1)
def unregister():
bpy.utils.unregister_class(C_0V0)
bpy.utils.unregister_class(C_0V1)
if name == "main":
register()
```