I ran into this problem today and found a solution. It requires a few manual steps though but it is not too bad. I have 6 objects with different orientations and whose mesh data i want to link to one Reference Object
First select all the objects to be linked & press CTRL
+A
to apply Rotation
to all objects to be linked
Set Object Transform Option to Affects Origins
Make sure the Face Orientation
Normals are correct, everything should be blue. If something is red, fix it by going into Edit Mode
and press A
to select all faces and press SHIFT
+N
to recalculate normals outside.
Set Snapping Mode to Face
and set the other settings as shown below
STEPS FOR EACH OBJECT TO BE LINKED:
Then choose any surface you want your origin to orient to; I chose the circular top of the cylinder. Drag the origin by pressing G
and snap it anywhere on that surface by holding CTRL
while moving across the surface normal. It doesn't need to be perfectly centered because we will snap the origin perfectly in the center in the next step. The Z-axis will align perpendicularly outwards of that snapped surface.
Press TAB
to go to Edit Mode
and click select the chosen surface normal you snapped the origin onto and press SHIFT
+S
> Cursor to Selected
Then press TAB
again to go back to Object Mode
and press SHIFT
+S
> Selection to Cursor
Now you have the origin nicely centered and aligned with the objects local orientation. Do these steps for every object including the Reference Object you want to link to so that all objects have the same orientation.
Then you can select all objects to be linked and SHIFT
select the Reference Object last to make it the Active Selection and press CTRL
+L
> Link Object Data