【Blender】頂点・線・面選択モードを同時に有効化するPythonコード

メッシュの編集にて、Shiftキーを押しながら選択モードのアイコンをクリックすると、複数の選択モードを有効化できることを知りました。

それをショートカットに割り当てたかったのですが、該当する項目が見当たらず・・。

ならばと、これを機にPythonスクリプトデビューしてしまうことにしました☻

#mesh_select_mode_all.py

import bpy

def main(context):
    if bpy.context.mode == 'EDIT_MESH':
        #bpy.context.tool_settings.mesh_select_mode = (True, True, True)
        bpy.ops.mesh.select_mode(type='VERT')
        bpy.ops.mesh.select_mode(use_extend=True, type='EDGE')
        bpy.ops.mesh.select_mode(use_extend=True, type='FACE')

class SelectModeAll(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "mesh.select_mode_all"
    bl_label = "Select Mode (All)"

    def execute(self, context):
        main(context)
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(SelectModeAll.bl_idname, text=SelectModeAll.bl_label)

# Register and add to the "object" menu (required to also use F3 search "Simple Object Operator" for quick access).
def register():
    bpy.utils.register_class(SelectModeAll)
    bpy.types.VIEW3D_MT_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(SelectModeAll)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

if __name__ == "__main__":
    register()

このスクリプトをBlenderのScripts/Startupフォルダに保存しておくと、Blender起動時に自動で実行されます。

そして、プリファレンスのキーマップから「mesh.select_mode_all」として呼び出せるというわけです。

とりあえず、この辺で・・。

長々とお読みいただき、ありがとうございましたm(_ _)m


この記事が気に入ったらサポートをしてみませんか?