This is a script I use all the time. Basically you create an object with the name 3DCursor (I use an Empty with Display set as Plain Axes), and the 3D Cursor will follow it. This allows you to use Grab on the 3D Cursor, and easily snap it, move it by typing units, move it on a constrained axis, Frame it, etc.
It will also move the object to the 3D Cursor’s position, so the normal 3D Cursor tools still work.
To use:
Open the script in the Blender Text Editor
Go to Script in the Buttons Window
Enable Script Links
Press New, select the the script, and set the drop down by the name to Redraw
Here’s the script:
import Blender
try:
Blender.OldCursorPos
except:
Blender.OldCursorPos = 0,0,0
CursorObj = Blender.Object.Get(‘3DCursor’)
CursorObjPos = CursorObj.loc
CursorPos = Blender.Window.GetCursorPos()
if CursorPos != Blender.OldCursorPos:
CursorObj.loc = CursorPos
CursorObjPos = CursorObj.loc
Blender.OldCursorPos = CursorPos
Blender.Window.Redraw()
elif CursorObj.LocX != CursorPos[0] or CursorObj.LocY != CursorPos[1] or CursorObj.LocZ != CursorPos[2]:
Blender.Window.SetCursorPos(CursorObjPos)
CursorPos = Blender.Window.GetCursorPos()
Blender.OldCursorPos = CursorPos