I don't know how to make add-ons that respond to renderings

Outline size changes with distance. Add-ons are created.

We have created a behavior where you click a button and the line size changes and is rendered. However, I would like to implement a movement where the line size changes just by opening the scene in Blender and executing rendering, I am stalled because I don’t know how to do it.

bl_info = {
    "name": "rend2",
    "blender": (3, 6, 0),
    "category": "Render",
}

import bpy

class LineSizeHandler(bpy.ops.render.render):
    @staticmethod
    def line_resize_handler(scene, depsgraph):
        ds = scene.objects.get("cam_DS")
        if ds:
            ds = ds.location[1]
            LFL = bpy.data.cameras["Camera"].lens
            ex_size = ds / LFL * 10 * 2.85
            bpy.data.node_groups["Pencil+ 4 Line Node Tree"].nodes["Brush Settings"].size = ex_size
            print(ex_size)

    def render_pre_handler(self, scene, depsgraph):
        bpy.ops.render.render()
        self.line_resize_handler(scene, depsgraph)

def register():
    line_size_handler = LineSizeHandler()
    bpy.app.handlers.render_pre.append(line_size_handler.render_pre_handler)
    bpy.types.Scene.line_size_handler = line_size_handler
    bpy.app.handlers.load_post.append(register_handler)

def unregister():
    if bpy.app.handlers.render_pre:
        bpy.app.handlers.render_pre.remove(bpy.types.Scene.line_size_handler.render_pre_handler)
    del bpy.types.Scene.line_size_handler

def register_handler(dummy):
    register()

if __name__ == "__main__":
    register()

Let’s back up a step. What exactly do you want the addon to do?

Thanks for the reply.

When you open a scene and run Render Animation
Depending on the distance from the camera
I want to render a scene where “[“Brush Settings”].size” changes according to the distance from the camera.