How to find centre of a sphere (Kind of....)

Hey guys,
im animating models produced in solid edge. imported to blender as an .STL

this weeks task is the “flex arm”


a series of individual ball and socket joints

what i need to do is snap the bones to the centre of the “Ball” in the ball and sockets so that it pivots in exactly the correct position.

The balls are not Exact spheres and because they are actual manufactured models im working from, there is an internal structure to each part that doesn’t allow me to easily select the centre


i tried eyeballing this. but its just not accurate enough. as you can see by the image the theoretical pivot point is not in the centre of each part, its offset to the ball, in the Actual centre of the part, there wouldn’t be any part of the model, as its a hollow.

id be grateful for any help and work arounds.

thanks

But this should be the center of the ball, no? I mean, why would couple of millimeters matter so much for animation in Blender, I’m not into CAD or anything like that at all so I’m asking a genuine question and not a rhetorical one?


yes, thats where it would be. i was hoping to have a snap of some sort as i would need to repeat it to the other sections and would like to keep the accuracy as close as possible.

so i got close with a snap. just not quite right. i selected the internal faces of the cylinder that you can see on the inside, i did an ALT+M and merged at the centre… this gave me a centre point to work from (not concerned with distorting the internal structure


as it will never be seen.
As you can see this is close to what i need.
i was hoping that i could select the ball radius vertices and then by some blender magic, convert that to a curve, then snap to the centre of the radius… i live in a CAD world. where i can easily do this. i understand blender is NOT a CAD software, i was hoping of a work around… is there anything i can do?
i also have different applications for this task which is why id like to see if there is a way to do it accurately as possible.

You can get virtually to the center by selecting the edge loop at the equator, and hitting cursor to selection.
Something like this:
tab into edit mode
z to go wireframe mode.
hit a until no verts are selected
zoom in, scroll wheel
b to box select and select just those verts/edges around the equator loop
object (menu below) snap, cursor to selected. By default the cursor will snap to the caluclated center point of the selected verts
then you do what you want, you may want to add an empty at that moment in case you move the 3-d cursor

Use B(Box select) and grab the widest row of verts, then Shift-S(Cursor to Selection) then add an empy and parent the empty to the object. At least that’s how I’d do it.

BOX SELECT!!! OF COURSE.
its funny how you get so stuck in a mindset you cant think of another way. box select, snap to centre! PERFECT! thanks!

Duplicate+Separate area you want, select your new mesh, then Set origin to geometry or Set origin to center of mass, then cursor to selected.

percisionmounts, if the joint segments are separate objects, after snapping the cursor to the center, you can do menu Object->Transform->Origin to 3D Cursor that way the joint segments will rotate around there own ball, Then you can parent them sequentially, bottom to top, and shut off their scale and transform in the transform panel. That should make a fairly workable unit.

EDIT: Here’s what I was talking about…
Segments.blend

A quick armature for multiple irregular ball joints by selecting the surrounding geometry, collapsing edges, removing doubles which leaves a vertex on each pivot. Then connecting those with edges and turning the edges to an armature with skin modifier.