Splitting an array

I created a mug. It is a cylinder and a handle. I joined the two meshes together and was happy with the result. I then made an array of mugs so I had several rows of them. I wanted the ones at the front to be moved separately so they would look more natural. In edit mode I hit “P” and chose “separate by loose parts”. I wasn’t aware that this wouldn’t just separate the array into individual mugs, it would also separate each mug into an individual handle and cylinder.

Is there a way of separating an array so that all that happens is the arrayed objects become separate, without undoing the joins for any individual parts? In my case there wasn’t a serious problem because each mug had only separated into two parts, but a more complex model would be a real pain to deal with if each one had to be joined back together again before you could do anything with it.

Also, is there a way of setting the origin to the centre of the mass for all the now separated objects in one go? I expect that would involve a Python script and you could only do it once all the bits had been joined back together because joining meshes moves the centre of mass.

Select all objects and press ctrl+shift+alt+c and choose origin to center of mass. As for not manualy joining each separate object with another one you can do this by avoiding array modifier and simply selecting the whole mug then duplicating it, moving it desired distance and pressing SHIFT+R to repeat the step you have previously made.

Thanks for the first bit. I must have done something wrong when I tried that. However, I wanted to use the array modifier because it was much quicker than copying a mug 40 times and after all, that’s what it’s there for. I want to be able to use the array modifier without “separate by loose parts” going right back to the parts which were joined to make the arrayed object in the first place.

If there is some other way of separating out complete objects which had been constructed by joining meshes, without undoing the join, I want to know how to do it.

I had a thought about this. I think the only way round it is to create each new part of the object in edit mode. So, in the case of the mugs, where the handles are modelled separately, create the cylinder for the mug, go into edit mode and add a new mesh for the handle. I have had problems with this in the past because it can be impossible to move or delete mesh which would otherwise have been a different object but isn’t, because it was added in edit mode, so it isn’t really a solution. It most certainly isn’t really what I am looking for. At best it’s a workaround.

Still, I can’t complain when Blender doesn’t do exactly what I want. I got it for free and it really is bloody excellent.