Custom operator with arguments!

Hi


import bpy
from bpy.props import IntProperty

def main(context):
    for ob in context.scene.objects:
        print(ob)


class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    
    var1 = IntProperty(default=0)
    var2 = IntProperty(default=100)
    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        print(self.var1, self.var2)
        return {'FINISHED'}


def register():
    bpy.utils.register_class(SimpleOperator)


def unregister():
    bpy.utils.unregister_class(SimpleOperator)


if __name__ == "__main__":
    register()

    # test call
    
    bpy.ops.object.simple_operator()
    bpy.ops.object.simple_operator(var1=9)
    
'''

In a panel layout
    
    layout = self.layout()
    op = layout.operator("object.simple_operator")
    op.var1 = 4
    op.var2 = -3
    
'''

1 Like