# How to mirror an object along with its local transform orientation?

So I need to mirror an object along a single axis, and this object has been rotated in object mode and therefore has a local orientation that differs from global. I need to keep this local transform because some constraints will apply to those objects for an animation. See the examples below:

The source is the red object and green one is the transformation result. This is what happens when using the mirror modifier, then separating geometry and resetting origin to geometry. The placement is fine, this is exactly where I want the object, however, the transform orientation itself matches that of the red object and has not been mirrored.

Now this is what happens when trying to mirror the object itself along the X axis using the 3d cursor as the pivot point (scaling -1 along global X). The transform orientation is then well aligned, but I wouldn't exactly call this a mirror! Now of course if I had applied the rotation before mirroring, the mirror would have worked, but the local orientation would have been reset so this is no use either.

This seems like a very basic thing to do and I'm wondering what I'm overlooking. I know that I can use other orientations like "normal" for modeling but this will not work with constraints. I will need to use constraints on local axes afterwards.

Any help is greatly appreciated.

• Isn't just a matter of mirroring the Rotation as you did with Location&Scale on the X axis (all at once with cursor as pivot)? Or am I missing something? Sep 25, 2016 at 22:13
• Yes, negating the rotation does it. You know, sometimes you just focus on the objective so bad you overlook some very basic thing. Thank you! You should repost your solution as an answer so I can give you the proper reputation and mark your reoply as the solution. Sep 25, 2016 at 22:31

## Mirror Rotation too

While performing the scaling upon the 3D cursor as pivot, you are basically mirroring both the Location (e.g. from X to -X) and the Scale of the object. The only trasformation not affected by the operator is the Rotation.

I don't think that currently (2.77) there's an operator capable of doing all in one shot, but for the provided example it can be done manually by multipying the X-rotation channel value by -1 as shown in the image sequence below:

• Just the answer I needed - but it doesn't work unless the origin is in the exact centre of the mesh. In my example image the exact same process used on top and bottom pairs, but the bottom pair is messed up due to origin location. Is there any other way to achieve this??? Doing my head in :( Feb 21, 2018 at 3:04
• I'm not sure of what you mean. I tried with an object with origin far away from center and seems to looks fine also in this case: i.stack.imgur.com/acM3t.gif What am I missing? Feb 21, 2018 at 22:53
• Hmm, how odd... how about if your object is a-symmetrical? eg one flat end and one pointy end... does it still work for you? In the end I was able to get the rotation correct, but I had to use the formula [Z rot]*-1+180 - worked in this case, but not sure if it will always work. For me using just *-1 definitely was not mirroring correctly. Feb 22, 2018 at 3:15
• Here's a try with another object: i.stack.imgur.com/L3LjC.gif. I can't tell. Maybe if you upload a problematic file we can have a look. Feb 23, 2018 at 19:26