Updated convenience add-on for moving an object to another object, using blender 2.76
move_to_first_selected_object.py:
import bpy
bl_info = {
"name": "Move to First",
"author": "CoDEmanX",
"version": (1, 0),
"blender": (2, 76, 0),
"location": "View3D > Object Mode > Tool Shelf",
"description": "Move last selected object(s) to first",
"warning": "",
"wiki_url": "",
"tracker_url": "",
"category": "Object"}
def main(context):
ob_act = context.selected_editable_objects[-1]
loc = ob_act.matrix_world.to_translation()
for ob in context.selected_editable_objects:
if ob != ob_act:
ob.location = loc
class OBJECT_OT_move_to_origin(bpy.types.Operator):
"""Move last selected object(s) to first"""
bl_idname = "object.move_to_first_selected_object"
bl_label = "Move to First"
@classmethod
def poll(cls, context):
return context.object is not None
def execute(self, context):
main(context)
return {'FINISHED'}
draw_func = lambda self, context: \
self.layout.operator(OBJECT_OT_move_to_origin.bl_idname)
def register():
bpy.utils.register_class(OBJECT_OT_move_to_origin)
bpy.types.VIEW3D_PT_tools_object.append(draw_func)
def unregister():
bpy.utils.unregister_class(OBJECT_OT_move_to_origin)
bpy.types.VIEW3D_PT_tools_object.remove(draw_func)
if __name__ == "__main__":
register()
move_to_last_selected_object.py:
import bpy
bl_info = {
"name": "Move to Last",
"author": "CoDEmanX",
"version": (1, 0),
"blender": (2, 76, 0),
"location": "View3D > Object Mode > Tool Shelf",
"description": "Move first selected object(s) to last",
"warning": "",
"wiki_url": "",
"tracker_url": "",
"category": "Object"}
def main(context):
ob_act = context.object
loc = ob_act.matrix_world.to_translation()
for ob in context.selected_editable_objects:
if ob != ob_act:
ob.location = loc
class OBJECT_OT_move_to_origin(bpy.types.Operator):
"""Move first selected object(s) to last"""
bl_idname = "object.move_to_last_selected_object"
bl_label = "Move to Last"
@classmethod
def poll(cls, context):
return context.object is not None
def execute(self, context):
main(context)
return {'FINISHED'}
draw_func = lambda self, context: \
self.layout.operator(OBJECT_OT_move_to_origin.bl_idname)
def register():
bpy.utils.register_class(OBJECT_OT_move_to_origin)
bpy.types.VIEW3D_PT_tools_object.append(draw_func)
def unregister():
bpy.utils.unregister_class(OBJECT_OT_move_to_origin)
bpy.types.VIEW3D_PT_tools_object.remove(draw_func)
if __name__ == "__main__":
register()