By default some blender operations do not work very well with instances. Mainly I speak about ‘Apply transformation‘ and setting ‘Origin to 3D cursor’. Apply transformation – won’t work at all with instanced object and setting ‘Origin to 3D cursor’ won’t preserve position of instances. I made python version of these, that work with instances and are preserving positions of instanced objects. The math behind that was bit complicated, but I managed to make i work. The ‘Transform Utils‘ also has some other tools that I developed while working with blender.
- Add Transform Orientation – quick way to align gizmo (add temporary Transform Orientation) to selection. Gizmo will be aligned to selected object, face, vertex or edge.
- Align To Transformation – Sets current object rotation to match the gizmo transform orientation (created with previous command).
- Apply Transformation – lets you apply location, rotation, scale even on object with instances. Instances positions will be maintained.
- Origin to 3D cursor – same as default blender operator, but all instances positions are preserved.
- Store position – let’s you save current object location, rotation, scale. Position can be restored with ‘Restore position’ button.
In image below I demo the ‘Apply Transformation’ operator. Build in apply loc, rot, scale operator won’t work on object with instances. The addon version works ok, and it is maintaining original position of all instances.
Grab addon from gumroad