bl_info = { "name": "Box_Tool", "category": "Mesh", "version": (1, 00, 0), "blender": (2, 80, 0) } import bpy class Box_Tool(bpy.types.Operator): """Box Tool""" bl_idname = "mesh.box_tool" bl_label = "Box_Tool" bl_options = {'REGISTER', 'UNDO', 'PRESET'} scale : bpy.props.FloatProperty(name = "Scale", default = 1, description="Scale") l_x : bpy.props.FloatProperty(name = "X", default = 0) l_y : bpy.props.FloatProperty(name = "Y", default = 0) l_z : bpy.props.FloatProperty(name = "Z", default = 0) def draw(self, context): layout = self.layout box = layout.box() row = box.row() row.prop(self,"scale") row = box.row() row.prop(self,"l_x") row.prop(self,"l_y") row.prop(self,"l_z") def invoke(self, context, event): wm = context.window_manager return wm.invoke_props_dialog(self) #return self.execute(context) def execute(self, context): scale = self.scale l_x = self.l_x l_y = self.l_y l_z = self.l_z bpy.ops.mesh.primitive_cube_add(size=scale, calc_uvs=True, enter_editmode=False, align='WORLD', location=(l_x, l_y, l_z), rotation=(0, 0, 0), scale=(1, 1, 1)) return {'FINISHED'} def menu_func(self, context): self.layout.operator(Box_Tool.bl_idname) addon_keymaps = [] def register(): bpy.utils.register_class(Box_Tool) bpy.types.VIEW3D_MT_object.append(menu_func) def unregister(): bpy.utils.unregister_class(Box_Tool) bpy.types.VIEW3D_MT_object.remove(menu_func) if __name__ == "__main__": register()