2017年1月18日水曜日

3DカーソルをZY平面上に移動

ミラーモデファイアを使ってオブジェクトを編集しているときなどに
軸になる位置に3Dカーソルを移動したい場合がありますが
標準の機能にはそういった機能はないようなのでアドオンで作りました


bl_info = {
    "name": "カーソルをオブジェクトのZY平面に",
    "author": "Yukimi",
    "version": (1, 0),
    "blender": (2, 60, 0),
    "location": "View3D > Cursor",
    "description": "3DカーソルをオブジェクトのXY平面上に移動",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "3D View"
}
import bpy
#カーソルのX値を0に
class set_cursor_xy_plane(bpy.types.Operator):
    bl_idname = "cursor.set_cursor_x"
    bl_label = "カーソルをZY平面に"
    def execute(self, context):
        active_obj = bpy.context.active_object
        space = bpy.context.space_data
        if active_obj:
            space.cursor_location[0] = active_obj.location.x
        else:
            space.cursor_location[0] = 0
        return {'FINISHED'}
################################################
def menu_funk(self, context):
    self.layout.operator("cursor.set_cursor_x")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_snap.append(menu_funk)

# アドオン無効化時の処理
def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_snap.remove(menu_funk)
################################################    


# メイン処理
if __name__ == "__main__":
    register()
Shift+Sのスナップメニューに追加する形式にしてみました

ミラーで円形状になるものを編集している時に
「カーソル>選択物」 「カーソルをZY平面に」 と順に実行することで
円の中心部分にカーソルを移動できます

オブジェクトが回転している場合には現状対応していませんが
いかがでしょうか