I have an object (button), which has been rotated and where the rotation has been applied. I want to align this button to a surface (the blue surface of the cube). The black background should sit flat on the blue surface.

Screenshot showing the problem.

I tried "Snap to Face" with "Center" and "Align Rotation to Target". I also tried to use an empty to find the rotation of the button in the 3D space. But nothing worked. Any help is highly appreciated!

This is a link to the example file: SnapTest.blend

  • $\begingroup$ Read also: Snap object on top of surface of other object $\endgroup$ – user1853 Jan 2 at 22:15
  • $\begingroup$ Yep! The second link gave the important tip, the new Transform Orientation did the job. Thank you! $\endgroup$ – Chris S. Jan 2 at 22:59

The problem here is that you've applied the rotation transformations to your button, or rotated the button around in edit mode, causing the object's local axes to no longer line up with what you consider to be upright for your object. To show you what I mean, here are the local axes for your button object:

Button axes

And here are the normal axes for the face you're trying to snap the button on:

Face axes

What Blender is doing when you're snapping the object is aligning the local XYZ-axes of the button to that of the cube. However, your desired orientation doesn't match that of the object's orientation, so when the local axes are aligned to the face of the cube, the button is at an angle to the surface (in other words, the XYZ axes in the first picture are rotated to match that in the second picture).

There are different methods you can try to use to manually rotate the object back into position, but in this case, it would be easiest to just recreate your button.

If you were unable to recreate your button, you can try to rotate the origin of the object so that it matches what you consider an "upright" position for it. To do this, go to the Active tool and Workspace settings tab and select Options > Transform > Affect Only > Origins. I would not recommend this here, as this will cause unwanted movement of parented objects.

Origin only transform

The second way to realign your button is to enter edit mode and rotate the entire object in there since transformations done in edit mode do not affect the object's origin and hence, the object's local axes.

PS: I would consider making the black part of the button the parent, not the white part. If you try to animate the white part by pushing it down, the black part will move with it in the way you have it configured right now.

| improve this answer | |

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