14
$\begingroup$

I have multiple objects that I would like to all use the same mesh but maintain their individual rotation positions. As it is, when I link their object data, all the objects rotate to the same position as the object I'm linking the data from.

Is there any way do this without having to go around and manually re-rotate all the linked objects back to their original rotation positions?

Thanks!

$\endgroup$
5
  • 5
    $\begingroup$ "when I link their object data, all the objects rotate to the same position" No they don't, what happens is your current objects have no rotation transformations or have their rotations applied, so when you link object data they inherit the other object's shape, giving the impression of rotating themselves. Sad part is there is no easy way to fix this other manually realign them one by one. $\endgroup$ Commented May 9, 2017 at 18:27
  • $\begingroup$ @DuarteFarrajotaRamos - Thanks. I was afraid this might be the case but I was hoping someone had a way of doing it. $\endgroup$ Commented May 9, 2017 at 19:13
  • $\begingroup$ I am aware of the problem, but know of any way to fix this easily/quickly. Is this imported data from other application? Your best bet would probably be using other import file format that supports instancing and/or transforms. I am blindly guessing this was imported from OBJ, maybe try FBX which correctly interprets clones. $\endgroup$ Commented May 9, 2017 at 23:45
  • 1
    $\begingroup$ I don't know if this works for you or if it is "too manual" but you could perhaps previously create a "marker" for each object that you need to "remember" original transforms later. It could be anything from an object duplicate (maybe in another layer) or an empty. Then after you link the desired object data, if they loose their original transform, you can always make them use a "copy tranform" constraint to get their original transform settings, then apply that using "apply > visual tranforms" $\endgroup$
    – m.ardito
    Commented May 10, 2017 at 12:25
  • $\begingroup$ Before linking object data, you have to make sure the normals are pointing in the same direction for each object so they don't "rotate". see how to align normals and see this post where it also links object data for different rotations of meshes. $\endgroup$
    – Harry McKenzie
    Commented Aug 2, 2023 at 12:45

3 Answers 3

2
$\begingroup$

The best way is to create a Collection with the Object to distribute. Then add Collection Instances (Shift+A > Collection Instance > Collection) to the Scene and randomly place. I suggest using Proportional Editing with shortcut key O.

In this set-up, if you modify the original object, the other ones change accordingly + since it is a Collection Instance, it retains the Transformation Data (cannot be accidentaly applied).

$\endgroup$
0
$\begingroup$

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

enter image description here

Set Object Transform Option to Affects Origins

enter image description here

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.

enter image description here

Set Snapping Mode to Face and set the other settings as shown below

enter image description here

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.

enter image description here

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

enter image description here

Then press TAB again to go back to Object Mode and press SHIFT+S > Selection to Cursor

enter image description here

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

enter image description here

$\endgroup$
-1
$\begingroup$

Create duplicates, rotate them as you wish, then simply substitute the original mesh in the mesh data menu, creating multiple instances. Transformation is not affected.

$\endgroup$
1
  • 1
    $\begingroup$ Hi, thanks for the post. This site is not a regular forum, answers should be substantial, stand on their own, and thoroughly explain the solution and procedure. One liners and short tips rarely make for a good answer. If you can, please edit your post and provide some more details about the workflow and how it works. Perhaps add a few images illustrating some steps and final result. See How to write a good answer? $\endgroup$ Commented Jul 8, 2022 at 21:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .