How can I change the local origin of an object, without changing the object location in the world space.

This is the object located at position (0,0,0) in the world space

enter image description here

This is the same object located at position (0,1,0) in the world space, but with its local origin offset so that the object is in the same place

enter image description here

Is there a way to do this in a single step?

up vote 187 down vote accepted

One way to do this is by entering Edit mode and placing the 3D cursor where you want the new origin. (When doing this, you can be very precise by selecting vertices, edges or faces and using them as guides. If you pick several points and snap the cursor to them using Shift+SCursor to Selected, Blender will use the average of the selected points to determine the new location of the cursor).

enter image description here

You then go back to Object mode and use Ctrl+Alt+Shift + COrigin to 3D Cursor to update or change the object origin to the location of the 3D cursor.

enter image description here

  • With all the attention this has gotten, this seems to be a good idea, Maybe someone with a little time on their hands could tackle it. :) – iKlsR Dec 22 '16 at 10:27
  • 1
    For properly center object from blender for unity I was needed to place 3D cursor to the zero coordinates (0, 0, 0) and then place the center of mesh object using Origin to 3D Cursor. – electroid Mar 11 '17 at 9:11
  • My pivot point has become rotated, how do I restore the rotation to be non rotated with respect to the rotation in world coordinates? – rien333 Apr 6 '17 at 22:26
  • 1
    @rien333 Best to ask a new question, not sure what you mean by "pivot point has become rotated". – iKlsR Apr 6 '17 at 22:29
  • 1
    I would like to upvote your answer every time I need this. +4 till now. – Izzy Aug 3 '17 at 15:06

This is useful to have as a script, I wrote one back in 2011. It uses the 3d cursor but restores its original position.

A link to this script is here (includes all addon boilerplate) Once installed the script can be run from 3d view > space bar > Origin Move to Selected

This is the juicy bit:

def execute(self, context):
    saved_location = bpy.context.scene.cursor_location.copy()

    bpy.ops.object.mode_set(mode = 'OBJECT')
    bpy.context.scene.cursor_location = saved_location

    bpy.ops.object.mode_set(mode = 'EDIT')
    return {'FINISHED'}

To bind this to a key combo:

  • User Preferences > Input > 3D View > 3D View (Global) > New.
  • Then fill in the text field with object.origin_to_selected and Blender will name the short-cut correctly. Then pick your short-cut keys: enter image description here

More work up front, but convenient when used hourly.

  • Very handy! I knew it could be done with scripting, but I'm new on that topic – rraallvv Jun 23 '13 at 12:11
  • 3
    Very nice.. This should be part of Blender distribution. – satishgoda Jun 23 '13 at 14:42
  • 1
    How can be added undo support? – rraallvv Jun 27 '13 at 15:11
  • 1
    hmm, this might take a bit longer, i will let you know when I find time to add undo. it's not just a simple bl_options = {'REGISTER', 'UNDO'} – zeffii Jun 27 '13 at 15:51
  • 2
    @rraallvv the best way I know at the moment is, and this only works immediately after the origin switch.. is to go to object mode and hit undo. – zeffii Jun 27 '13 at 21:30

In Object Mode, first select the Object you want to change the Origin. Then click Manipulate Center points (or Alt ,) It is the 3rd button on the right from the Object mode in the 3D header.
Switch to Edit Mode, if your Object is not selected, press A or A twice to select everything.
Move the selected object with the 3D manipulator. It works now relative to the center point. When you are done, go back to Object Mode and uncheck Manipulate Center points (or Alt ,).

  • 4
    Sorry but you're wrong. The "manipulate center points" button only works with rotation, in "object" or "pose" modes. To move the pivot point of an object, this option is useless... However, manipulating the whole vertices of an object in "edit" mode will do the trick, as you said. – Polosson Sep 1 '14 at 18:01

protected by David Sep 16 '14 at 0:39

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.