Hello. I need to import some external files into blender and the mesh imported has a lot of empties and is very difficult to work with them. The origins of the empties are set to 0,0,0 and I don’t know how to move this to the position of the objects that are parented inside.
I need to remove all the empties because they are creating a lot of problems. I want to join all the objects (into one single object / empty) that have an empty as parent and remove the parent empty. How to do this?
Select all, Alt+P > Clear and keep transformation, delete empties.
Thank you but is not exactly what I need. I need to join together the objects that are inside every empty and have a bunch of objects instead of empties. Now I have only an object that has joined all other objects into a single mesh. I need individual meshes. Hope I’m more clear this time.
Do what JuhaW told you to do. This will then unparent the objects from the empties. You can then delete the empties because they no longer serve any purpose.
In the first post you talk about joining them into a single object but in your next post you talk about needing individual meshes. Which is it that you want ?
Then you can select all the individual mesh objects and join them together into one object with Ctrl+J if you want to do that.
You can split a single object into individual objects by selecting the vertices and using P
You can reset each objects origin using the Set Origin option in the toolshelf (shortcut T)
If you want an object parented to an empty (why ?) you can use the Ctrl+P option to parent selected objects to the currently active object
Please download the file from the first post.
I need to have separate objects per empty. I need to join all the objects that are parented to an empty and join them and only after that to remove the empties, so I will have a structured hierarchy of objects.
The method described here is resulting into one big mesh… is not what I need.
Hopefully I’m more clear this time. I need to remove the empties because all of them are referenced to 0,0,0 coordinate.
This joins all mesh objects that are siblings
mesh_objs = [obj for obj in bpy.context.selected_objects if obj.type == 'MESH']
for obj in mesh_objs:
bpy.context.scene.objects.active = obj
After that you can make hierarchial sense of it yourself. Could for example ctrl+click on the parent empty icon in the outliner to select the children, ctrl+P -> parent and keep offset, then delete empties.
Easiest way I found to do this, as I have the same problem regularly, is to select all empties using the ‘select all by type’ menu. Then hide them, select the remaining meshes, and ‘export selected’ as an fbx. Reimport that and all the empties will be gone and everything will still be separate and in its original place