diff options
Diffstat (limited to 'release/scripts/templates_py/operator_file_export.py')
-rw-r--r-- | release/scripts/templates_py/operator_file_export.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/release/scripts/templates_py/operator_file_export.py b/release/scripts/templates_py/operator_file_export.py new file mode 100644 index 00000000000..9511cb163bc --- /dev/null +++ b/release/scripts/templates_py/operator_file_export.py @@ -0,0 +1,72 @@ +import bpy + + +def write_some_data(context, filepath, use_some_setting): + print("running write_some_data...") + f = open(filepath, 'w', encoding='utf-8') + f.write("Hello World %s" % use_some_setting) + f.close() + + return {'FINISHED'} + + +# ExportHelper is a helper class, defines filename and +# invoke() function which calls the file selector. +from bpy_extras.io_utils import ExportHelper +from bpy.props import StringProperty, BoolProperty, EnumProperty +from bpy.types import Operator + + +class ExportSomeData(Operator, ExportHelper): + """This appears in the tooltip of the operator and in the generated docs""" + bl_idname = "export_test.some_data" # important since its how bpy.ops.import_test.some_data is constructed + bl_label = "Export Some Data" + + # ExportHelper mixin class uses this + filename_ext = ".txt" + + filter_glob = StringProperty( + default="*.txt", + options={'HIDDEN'}, + ) + + # List of operator properties, the attributes will be assigned + # to the class instance from the operator settings before calling. + use_setting = BoolProperty( + name="Example Boolean", + description="Example Tooltip", + default=True, + ) + + type = EnumProperty( + name="Example Enum", + description="Choose between two items", + items=(('OPT_A', "First Option", "Description one"), + ('OPT_B', "Second Option", "Description two")), + default='OPT_A', + ) + + def execute(self, context): + return write_some_data(context, self.filepath, self.use_setting) + + +# Only needed if you want to add into a dynamic menu +def menu_func_export(self, context): + self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator") + + +def register(): + bpy.utils.register_class(ExportSomeData) + bpy.types.INFO_MT_file_export.append(menu_func_export) + + +def unregister(): + bpy.utils.unregister_class(ExportSomeData) + bpy.types.INFO_MT_file_export.remove(menu_func_export) + + +if __name__ == "__main__": + register() + + # test call + bpy.ops.export_test.some_data('INVOKE_DEFAULT') |