python类utils()的实例源码

bpy_types.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def draw_preset(self, context):
        """
        Define these on the subclass:
        - preset_operator (string)
        - preset_subdir (string)

        Optionally:
        - preset_extensions (set of strings)
        - preset_operator_defaults (dict of keyword args)
        """
        import bpy
        ext_valid = getattr(self, "preset_extensions", {".py", ".xml"})
        props_default = getattr(self, "preset_operator_defaults", None)
        self.path_menu(bpy.utils.preset_paths(self.preset_subdir),
                       self.preset_operator,
                       props_default=props_default,
                       filter_ext=lambda ext: ext.lower() in ext_valid)
__init__.py 文件源码 项目:visp_cao_editor 作者: lagadic 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def register():
    from bpy.utils import register_class
    for mod in _modules_loaded:
        for cls in mod.classes:
            register_class(cls)

    bpy.types.Scene.ignit_panel = bpy.props.PointerProperty(type=_modules_loaded[0].classes[0])
    bpy.types.Scene.custom_vertices = CollectionProperty(type=_modules_loaded[0].classes[1])
    bpy.types.Scene.custom_vertices_index = IntProperty()

    bpy.types.Scene.custom_faces = CollectionProperty(type=_modules_loaded[1].classes[0])
    bpy.types.Scene.custom_faces_index = IntProperty()

    bpy.types.Scene.custom_lines = CollectionProperty(type=_modules_loaded[2].classes[0])
    bpy.types.Scene.custom_lines_index = IntProperty()

    bpy.types.Scene.custom_cylinder = CollectionProperty(type=_modules_loaded[3].classes[0])
    bpy.types.Scene.custom_cylinder_index = IntProperty()

    bpy.types.Scene.custom_circle = CollectionProperty(type=_modules_loaded[4].classes[0])
    bpy.types.Scene.custom_circle_index = IntProperty()

    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_file_export.append(menu_func_export)
__init__.py 文件源码 项目:visp_cao_editor 作者: lagadic 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)
    del bpy.types.Scene.custom_circle
    del bpy.types.Scene.custom_circle_index
    del bpy.types.Scene.custom_cylinder
    del bpy.types.Scene.custom_cylinder_index

    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_file_export.remove(menu_func_export)
    del bpy.types.Scene.ignit_panel

# if __name__ == "__main__":
#     register()
console_python.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def banner(context):
    sc = context.space_data
    version_string = sys.version.strip().replace('\n', ' ')

    add_scrollback("PYTHON INTERACTIVE CONSOLE %s" % version_string, 'OUTPUT')
    add_scrollback("", 'OUTPUT')
    add_scrollback("Command History:     Up/Down Arrow", 'OUTPUT')
    add_scrollback("Cursor:              Left/Right Home/End", 'OUTPUT')
    add_scrollback("Remove:              Backspace/Delete", 'OUTPUT')
    add_scrollback("Execute:             Enter", 'OUTPUT')
    add_scrollback("Autocomplete:        Ctrl-Space", 'OUTPUT')
    add_scrollback("Zoom:                Ctrl +/-, Ctrl-Wheel", 'OUTPUT')
    add_scrollback("Builtin Modules:     bpy, bpy.data, bpy.ops, "
                   "bpy.props, bpy.types, bpy.context, bpy.utils, "
                   "bgl, blf, mathutils",
                   'OUTPUT')
    add_scrollback("Convenience Imports: from mathutils import *; "
                   "from math import *", 'OUTPUT')
    add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data",
                   'OUTPUT')
    add_scrollback("", 'OUTPUT')
    sc.prompt = PROMPT

    return {'FINISHED'}


# workaround for readline crashing, see: T43491
helpers.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def _setup_classes(self):
        import bpy
        assert(self._class_store is None)
        self._class_store = self.class_ignore()
        from bpy.utils import unregister_class
        for cls in self._class_store:
            unregister_class(cls)
helpers.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def _teardown_classes(self):
        assert(self._class_store is not None)

        from bpy.utils import register_class
        for cls in self._class_store:
            register_class(cls)
        self._class_store = None
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def update_panel(self, context):
    try:
        bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    except:
        pass
    prefs = context.user_preferences.addons[__name__].preferences
    TOOLS_PT_Archipack_PolyLib.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_PolyLib)
    TOOLS_PT_Archipack_Tools.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Tools)
    TOOLS_PT_Archipack_Create.bl_category = prefs.create_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Create)
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def unregister():
    global icons_collection
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    bpy.utils.unregister_class(ARCHIPACK_create_menu)

    bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    bpy.utils.unregister_class(Archipack_Pref)
    # unregister subs
    archipack_snap.unregister()
    archipack_manipulator.unregister()
    archipack_reference_point.unregister()
    archipack_autoboolean.unregister()
    archipack_door.unregister()
    archipack_window.unregister()
    archipack_stair.unregister()
    archipack_wall.unregister()
    archipack_wall2.unregister()
    # archipack_roof2d.unregister()
    archipack_slab.unregister()
    archipack_fence.unregister()
    archipack_truss.unregister()
    # archipack_toolkit.unregister()
    archipack_floor.unregister()
    archipack_rendering.unregister()

    if HAS_POLYLIB:
        archipack_polylib.unregister()

    bpy.utils.unregister_class(archipack_data)
    del WindowManager.archipack

    for icons in icons_collection.values():
        previews.remove(icons)
    icons_collection.clear()

    addon_updater_ops.unregister()

    # bpy.utils.unregister_module(__name__)
override.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def register_property_groups():
    bpy.utils.register_class(OverrideCustomProperty)

    Override.custom_properties = CollectionProperty(type=OverrideCustomProperty)
    bpy.utils.register_class(Override)

    bpy.types.Scene.overrides = CollectionProperty(type=Override)
override.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def unregister_property_groups():
    del bpy.types.Scene.overrides
    bpy.utils.unregister_class(OverrideCustomProperty)
    bpy.utils.unregister_class(Override)

# ======================================================================================
paint_palette.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def path_menu(self, searchpaths, operator, props_default={}):
        layout = self.layout
        # hard coded to set the operators 'filepath' to the filename.
        import os
        import bpy.utils

        layout = self.layout
        if not searchpaths[0]:
            layout.label("* Missing Paths *")

        # collect paths
        else:
            files = []
            for directory in searchpaths:
                files.extend([(f, os.path.join(directory, f)) for f in os.listdir(directory)])

            files.sort()

            for f, filepath in files:

                if f.startswith("."):
                    continue

                preset_name = bpy.path.display_name(f)
                props = layout.operator(operator, text=preset_name)

                for attr, value in props_default.items():
                    setattr(props, attr, value)

                props.filepath = filepath
                if operator == "palette.load_gimp_palette":
                    props.menu_idname = self.bl_idname
paint_palette.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def register():
    bpy.utils.register_module(__name__)

    bpy.types.Scene.palette_props = PointerProperty(
                                        type=PaletteProps,
                                        name="Palette Props",
                                        description=""
                                        )
    pass
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def register():
    bpy.types.INFO_MT_file_export.append(menu_func)

    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def unregister():
    bpy.types.INFO_MT_file_export.remove(menu_func)

    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
space_text.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def draw(self, context):
        self.path_menu(
            bpy.utils.script_paths("templates_py"),
            "text.open",
            props_default={"internal": True},
        )
space_text.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def draw(self, context):
        self.path_menu(
            bpy.utils.script_paths("templates_osl"),
            "text.open",
            props_default={"internal": True},
        )
space_userpref.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def draw_ex(self, context, *, use_splash=False, use_default=False, use_install=False):
        import os

        layout = self.layout

        # now draw the presets
        layout.operator_context = 'EXEC_DEFAULT'

        if use_default:
            props = layout.operator("wm.read_homefile", text="Default")
            props.use_splash = True
            props.app_template = ""
            layout.separator()

        template_paths = bpy.utils.app_template_paths()

        # expand template paths
        app_templates = []
        for path in template_paths:
            for d in os.listdir(path):
                if d.startswith(("__", ".")):
                    continue
                template = os.path.join(path, d)
                if os.path.isdir(template):
                    # template_paths_expand.append(template)
                    app_templates.append(d)

        for d in sorted(app_templates):
            props = layout.operator(
                "wm.read_homefile",
                text=bpy.path.display_name(d),
            )
            props.use_splash = True
            props.app_template = d

        if use_install:
            layout.separator()
            layout.operator_context = 'INVOKE_DEFAULT'
            props = layout.operator("wm.app_template_install")
space_userpref.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def is_user_addon(mod, user_addon_paths):
        import os

        if not user_addon_paths:
            for path in (bpy.utils.script_path_user(),
                         bpy.utils.script_path_pref()):
                if path is not None:
                    user_addon_paths.append(os.path.join(path, "addons"))

        for path in user_addon_paths:
            if bpy.path.is_subdir(mod.__file__, path):
                return True
        return False
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)

# Define a default UIList, when a list does not need any custom drawing...
# Keep in sync with its #defined name in UI_interface.h
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def register():
    from bpy.utils import register_class
    for mod in _modules_loaded:
        for cls in mod.classes:
            register_class(cls)
__init__.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def unregister():
    from bpy.utils import unregister_class
    for mod in reversed(_modules_loaded):
        for cls in reversed(mod.classes):
            if cls.is_registered:
                unregister_class(cls)
keyingsets_builtins.py 文件源码 项目:bpy_lambda 作者: bcongdon 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def unregister():
    from bpy.utils import unregister_class
    for cls in classes:
        unregister_class(cls)
pluginmanager.py 文件源码 项目:BlenderRobotDesigner 作者: HBPNeurorobotics 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def unregister(cls):
        """
        Called from the top-level :func:`robot_designer_plugin.unregister` function in the ``__init__.py`` of the
        plugin.
        Removes all data collected during import.
        """
        report = ['\n']
        try:
            for class_ in cls._registered_classes:
                bpy.utils.unregister_class(class_)
                report.append("\t- class {0:35} in {1:40}".format(class_.__name__,
                                                                  "/".join(class_.__module__.split('.')[1:])))

            for prop, extends in cls._registered_properties:
                bpy.utils.unregister_class(prop)
                if extends in (bpy.types.Object, bpy.types.Scene, bpy.types.Bone):
                    delattr(extends, "RobotEditor")

            for prop in cls._registered_bools:
                delattr(bpy.types.Scene, prop)

            core_logger.info("\n".join(report))

            if cls._bl_icons_dict:
                bpy.utils.previews.remove(cls._bl_icons_dict)

        except Exception as e:
            report.append("Error occured during clean up. You should restart blender!")
            core_logger.info("\n".join(report) + '\n')
            core_logger.error(EXCEPTION_MESSAGE,
                              type(e).__name__, e, log_callstack(), log_callstack(back_trace=True))

        cls._registered_classes.clear()
        cls._property_groups_to_register.clear()
        cls._registered_bools.clear()
__init__.py 文件源码 项目:archipack 作者: s-leger 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def update_panel(self, context):
    try:
        bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
        bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    except:
        pass
    prefs = context.user_preferences.addons[__name__].preferences
    TOOLS_PT_Archipack_PolyLib.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_PolyLib)
    TOOLS_PT_Archipack_Tools.bl_category = prefs.tools_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Tools)
    TOOLS_PT_Archipack_Create.bl_category = prefs.create_category
    bpy.utils.register_class(TOOLS_PT_Archipack_Create)
__init__.py 文件源码 项目:archipack 作者: s-leger 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def register():
    global icons_collection
    icons = previews.new()
    icons_dir = os.path.join(os.path.dirname(__file__), "icons")
    for icon in os.listdir(icons_dir):
        name, ext = os.path.splitext(icon)
        icons.load(name, os.path.join(icons_dir, icon), 'IMAGE')
    icons_collection["main"] = icons

    archipack_progressbar.register()
    archipack_material.register()
    archipack_snap.register()
    archipack_manipulator.register()
    archipack_reference_point.register()
    archipack_autoboolean.register()
    archipack_door.register()
    archipack_window.register()
    archipack_stair.register()
    archipack_wall.register()
    archipack_wall2.register()
    archipack_roof.register()
    archipack_slab.register()
    archipack_fence.register()
    archipack_truss.register()
    # archipack_toolkit.register()
    archipack_floor.register()
    archipack_rendering.register()

    if HAS_POLYLIB:
        archipack_polylib.register()

    bpy.utils.register_class(archipack_data)
    WindowManager.archipack = PointerProperty(type=archipack_data)
    bpy.utils.register_class(Archipack_Pref)
    update_panel(None, bpy.context)
    bpy.utils.register_class(ARCHIPACK_create_menu)
    bpy.types.INFO_MT_mesh_add.append(menu_func)

    addon_updater_ops.register(bl_info)
__init__.py 文件源码 项目:archipack 作者: s-leger 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def unregister():
    global icons_collection
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    bpy.utils.unregister_class(ARCHIPACK_create_menu)

    bpy.utils.unregister_class(TOOLS_PT_Archipack_PolyLib)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Tools)
    bpy.utils.unregister_class(TOOLS_PT_Archipack_Create)
    bpy.utils.unregister_class(Archipack_Pref)
    # unregister subs
    archipack_progressbar.unregister()
    archipack_material.unregister()
    archipack_snap.unregister()
    archipack_manipulator.unregister()
    archipack_reference_point.unregister()
    archipack_autoboolean.unregister()
    archipack_door.unregister()
    archipack_window.unregister()
    archipack_stair.unregister()
    archipack_wall.unregister()
    archipack_wall2.unregister()
    archipack_roof.unregister()
    archipack_slab.unregister()
    archipack_fence.unregister()
    archipack_truss.unregister()
    # archipack_toolkit.unregister()
    archipack_floor.unregister()
    archipack_rendering.unregister()

    if HAS_POLYLIB:
        archipack_polylib.unregister()

    bpy.utils.unregister_class(archipack_data)
    del WindowManager.archipack

    for icons in icons_collection.values():
        previews.remove(icons)
    icons_collection.clear()

    addon_updater_ops.unregister()
paint_palette.py 文件源码 项目:blender-addons 作者: scorpion81 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def path_menu(self, searchpaths, operator, props_default={}):
        layout = self.layout
        # hard coded to set the operators 'filepath' to the filename.
        import os
        import bpy.utils

        layout = self.layout
        if not searchpaths[0]:
            layout.label("* Missing Paths *")

        # collect paths
        else :
            files = []
            for directory in searchpaths:
                files.extend([(f, os.path.join(directory, f)) for f in os.listdir(directory)])

            files.sort()

            for f, filepath in files:

                if f.startswith("."):
                    continue

                preset_name = bpy.path.display_name(f)
                props = layout.operator(operator, text=preset_name)

                for attr, value in props_default.items():
                    setattr(props, attr, value)

                props.filepath = filepath
                if operator == "palette.load_gimp_palette":
                    props.menu_idname = self.bl_idname
paint_palette.py 文件源码 项目:blender-addons 作者: scorpion81 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def register():
    bpy.utils.register_module(__name__)

    bpy.types.Scene.palette_props = PointerProperty(
            type=PaletteProps, name="Palette Props", description="")
    pass
paint_palette.py 文件源码 项目:blender-addons 作者: scorpion81 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def unregister():
    bpy.utils.unregister_module(__name__)

    del bpy.types.Scene.palette_props
    pass
coloring_panel.py 文件源码 项目:NeuroSurf 作者: pelednoam 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def register():
    try:
        unregister()
        bpy.utils .register_class(ColoringPanel)
        bpy.utils .register_class(ColorCompartment)
    except:
        print("Can't register Coloring Panel!")
        print(traceback.format_exc())


问题


面经


文章

微信
公众号

扫码关注公众号