# Is there a way to enter the absolute (not relative) value of a transformation?

When I press G, R, or S and enter a number, Blender will move, rotate, or scale the selection relative to its local value. Is there a way to press, say R > 4 > 5, and then some other key to have it set the absolute rotation to 45° instead of incrementing it by 45°? I know how to go into the object properties or right hand toolbar and set the position, rotation, and scaling there, I am wondering if there is a keyboard way to do it (as there is for most everything in Blender).

• – gandalf3 Dec 3 '14 at 19:05
• There probably is, but I'm not aware of it. I only know of the methods you mentioned. – TARDIS Maker Dec 3 '14 at 19:14
• AFAIK there isn't currently a way to do this. But if you can think of some good use-cases, then maybe someone will implement it ;) – gandalf3 Dec 3 '14 at 19:28

Not entirely the answer you're looking for, but at least for some cases it works nicely to do one or more of the following:

• Object > Clear > Location Alt+G
• Object > Clear > Rotation Alt+R
• Object > Clear > Scale Alt+S

And after that make the transform and input the desired value.

Also, it's important to mention that after pressing move G, rotateR or scale S, you can define:

• global axis by pressing X,Y or Z
• local axis by pressing XX, YY or ZZ.

In the special case where you wish transform a set of selected vertices at any varying Z's to a planer absolute Z, use keystrokes (in edit mode) "S Z 0" (Scale, Z-Axis, 0). I offer the following add-on to align a set of vertices on the 0-Z build plate for 3D printing (with one keystroke):

bl_info = {
"name": "Move To ZOrigin",
"author": "Ropodiak",
"category": "Mesh"
}

import bpy
import bmesh

class MeshMoveToZOrigin(bpy.types.Operator):
"""Mesh Move To ZOrigin"""
bl_idname = "mesh.move_zorigin"
bl_label = "Move To ZOrigin"
bl_options = {'REGISTER', 'UNDO'}

def execute(self, context):

# Get the active mesh
obj = bpy.context.edit_object
me = obj.data

# Get a BMesh representation
bm = bmesh.from_edit_mesh(me)

bm.faces.active = None

for v in bm.verts:
if v.select:
# Zero the z coordinate to place this part of the object on the stage
v.co.z = 0.0

# Show the updates in the viewport
# and recalculate n-gon tessellation.
bmesh.update_edit_mesh(me, True)

return {'FINISHED'}

self.layout.operator(MeshMoveToZOrigin.bl_idname, text="Move To ZOrigin")

def register():
bpy.utils.register_class(MeshMoveToZOrigin)

def unregister():
bpy.utils.unregister_class(MeshMoveToZOrigin)

if __name__ == "__main__":
register()


A method would be that you first reset or apply the Position, Rotation or scale and then set it with the value you need.

For example if you have an object rotated by 15° but you want it 45° do the following:

To reset rotation press

Ctrl+a Applies the previous rotation

or

Alt+r Reset the rotation to 0

then

r 4 5

to set the new rotation.

That is what is needed to set the absolute value as you asked.

Of course it works for the position, and scale too, you just need to change the key from r to g or s respectively.

None of the previous combination of Alt + some key work if you have already applied the transformation you need to reset by using the function achievable by pressing Ctrl+a menu.

What follows is a bit off topic but it might also help:

Alternatively it is possible to use just a relative value calculated as 45-15=30 and insert this result after pressing r.

The resulting angle will be the same in both solutions.

You may want to know that it is also possible to make Blender it self perform some calculations directly inserting the calculation to perform directly into the target field instead of calculating them by hands or by an external calculator. More or less all numerical fields (and in particular position, rotation, scale) allow calculations. Of course you must be careful with sign + or - when performing calculation using directly Blender fields, as elsewhere as well.

One more thing to remember: rotations and translations happen perpendicular to the current view (the direction you are looking the draw from). In other words if you are looking at the draw from above the rotation is performed by default around the z axis while you can grab and translate an object along the x as well the y axis. The aftermath are that if you are looking at the draw from a random direction that doesn't match to an axis the rotations and the translations will be executed relative to that custom view unless you lock the axis you need to use as "pivot" or as "direction"

Select the object then go to Properties (usualy the right sidebar) -> Object (little yellow cube). There's Transform, which are absolute values for the object. If you enter Y: 45° it will be rotated 45° as an absolute value. I don't know of a shortcut for this.

• The OP already said they knew how to go into the properties to do this. – Ray Mairlot Dec 4 '14 at 14:09
• @RayMairlot I know what it means, but what does OP stand for? – PGmath Dec 4 '14 at 14:54
• @PGmath 'Original Poster' – Ray Mairlot Dec 4 '14 at 15:14
• Sorry I overlooked that. – bortran Dec 5 '14 at 7:51
• This was what I was looking for. Thanks! – Joehot200 Aug 28 at 20:57

Of course it is possible. Setting or getting absolute position, rotation and scale is really basic. Press N to get the toolbar in the right side of the screen, between the 3D view and the properties bar (in the default layout). In the Transform toolset, you get Location, Rotation, Scale and Dimensions, which are actually the absolute values.

• As I said in my original post: "I know how to go into the object properties or right hand toolbar and set the position, rotation, and scaling there, I am wondering if there is a keyboard way to do it". – PGmath Jul 23 '17 at 21:39