Rotating two objects with collinear faces without volume intersections

I have two objects with two aligned faces - the normal to the surface of these objects are aligned - collinear.
I would like to rotate one of the objects on the collinear axis so that there are no volume intersections between the two objects.

NOTE: why do I want to rotate after normal on the surface of the object?
… because I want to make a transformer animation, it is simpler to use the insert key on the frame than to use an entire hinge that requires the time resource

https://blender.community/c/rightclickselect/2gk1/ - see my idea for improvement

Anytime you need to animate along a certain axis, there should be some object or bone oriented that way. I would advise using an armature even in this simple case, because it makes some things related to transformations simpler. So create that armature, align the default bone to the surface, then parent (relative) the corresponding object to that bone. Then when you switch to pose mode your bone is in position ready to be rotated.

2 Likes

https://blender.community/c/rightclickselect/2gk1/ - see my idea for improvement, because the normal to a surface is very important not only for basic transformations but for additional calculations…

I didn’t find anything on the geometry nodes side…

I don’t understand what you’re doing here. Did my suggestion help? if not, can you explain the context? what are you creating, is it animated, etc etc etc

If you do not want to setup any rig then use a custom Transformation Orientation (top middel and then the plus sign)… here an example (but in Edit mode and first using G instead of R ) rotating along custom Z of the “touching” face:

1 Like

A couple of other methods;

Select one of the objects, in edit mode select the face with the “normals”

Select all leaving selected the “face” as active. (or go to object mode if you want to rotate the object in object mode)

View align view to active. - in my example “right”.

Rotate on y axis ( with transform orientation set to view)
You can open another 3d window if you want to see it from a different angle while you rotate.

Edit.

Method 2
You can snap the cursor to a face with the faces rotation and then rotate using the cursor orientation on the z axis.
If you want to rotate more than once you can create an empty aligned to the cursor and parent one of the objects to the empty. Then rotate the empty on its local axis.

2 Likes

Ohhh… :star_struck: the use of the cursor tool options was new to me… maybe because i do not use the t-panel in object mode at all… and also very seldom in edit mode … keyboard “junkie” back from 2.79… only Alt-Ctrl-Shift-S is a pain and the gizmos of the this tool are “nice.” :grin:

1 Like

Yes I hardly ever too, but changing to cursor is an exception sometimes.

I may look at those a bit more now :wink:

This works with align then rotate view …, but I think can be better and I will let this open …

I say already … an animation for Godot and I need to use it without using many armatures.

Yeah you do it still too complicated you just select one of the aligned faces press shift+numpad 7 go to object mode and rotate with the white circle of your rotate gizmo.

1 Like

I think I prefer the cursor method (or the gizmo one Debuk suggested) as you can change the view to see whats going on while you rotate the object.

1 Like

Yeah its just two clicks.

1 Like

well… no

1 Like

Rotate about face.blend (93.2 KB)

Here’s a geonode solution from @zeroskilz

Hope that helps

1 Like

… definitely , is a better answer for animation without using armatures …

But then… armatures/bones were invented to make animation easier… another possibilitiy is using contraints… but then you also might have to add some empties… so it may be easier to spent some time using one of those instead on spending almost two weeks for searching for “a new solution” ???

IDK… :person_shrugging: