Hi.
(I am referring to the “Objects” in the attached file).
On the 'Horizontal Axis" there is a “Big Cube” which can slide horizontally and can rotate along the rotational axis of the “Horizontal Axis”. Parented to this Big Cube there is a “Vertical Axis”. Parented to this “Vertical Axis” there is a “Armature” (single bone). A “Small Cube” is child of the “Bone” (“Bone relative” relationship). Parented to this “Small Cube” there is a “Needle”.
This setup is completed by “Sphere”, which stands for a end-bone of a more complicated armature of some kind of machinery…
The tip of the needle should always be at the same height as the center of the sphere. The “Big Cube” already follows the “Sphere” in X-direction (world).
But regardless what I am doing, there is always some kind of variable offset in movements along the Z-axis of sphere an tip of the needle. I tried different constraints an mappings between world, local, local with parent and pose references…but I had no success.
sorry for haveing a “blind spot” regarding “upload somewhere else” … didn’t do that in the past. Knowing
that something like that exists, though.
Would like to use something non-Google (dont have and dont want an Google-something).
Can you recommend something, which honours privacy?
Thanks for your help and understanding in advance!
Cheers!
mcc
PS: Found a service myself. Link to the file added to initial post.
Okay, I think what is making the situation difficult is that spaces are unaligned. As the system is not aligned to world space you cannot use that. What I did is to align the local spaces with apply operations. Then the constraints work straightforward with local space <-> local space. You can even save the armature.
I’m sure there are multiple ways to approach this, and I haven’t looked at omgold’s solution, but I did take a quick look at your linked file.
How I would describe this is, you want Small Cube to be constrained to the intersection of the line defined by Vertical Axis and a plane, perpendicular to that line, running through Sphere. Is that correct?
To me, “constrained to plane” always suggests a floor constraint. (You can use two floor constraints to constrain it fully to the plane, rather than on one side or the other of it.) What about to intersection of that plane with the line? If the plane is perpendicular to the line, and the starting point is on the line, it will be constrained to that intersection, because the nearest point to a plane is the line perpendicular to the plane, running through the point.
Can’t show everything in that pic. Sphere bone gets copy location from sphere object, copy rotation from line bone. Line bone has child of targeting big cube. Armature is unparented.
Here are some other things I would say:
Try not to combine object constraints and armatures/bone constraints. If you can do what you want with object constraints, use those; if not, just go whole hog and use an armature for everything.
Don’t parent your armature to things. Don’t give your armature constraints. Don’t transform your armature. Any of those things are going to cause you problems. (And if you follow that advice, you will never ever need to use pose space.) If you want a bone at some particular world orientation, use copy transforms or child-of as a bone constraint. (There are times when you want to break these rules, but only very very rarely, and you need to be meticulous about your spaces when you do.)
Edit: names in that pic are probably confusing, I didn’t rename my bones, just made some duplicates.
Your solution has disconnected the “Small Cube” from the “Vertical Axis” somehow.
Rotating the “Big Cube” leaves the “Small Cube” alone somewhere in outer space…
Re-Adding the “Armature” for the “Small Cube” and parenting it to the “Bone” throws it
into a totally different orbit…
Ah, stupid me. Sorry, forget what I said. Having to handle the rotation also makes it tricky. It seems location constraints in local space after rotation constraints use the local space before the rotation. See why you are frustrated. Also gave eventually up to handle this with constraints. Not sure it is possible.
Finally I turned to drivers and hacked the trigonometric formula for the correct location in. This seems to work, but probably not the method most easy to understand:
You? Stupid??? Never…!!!
I was the one asking questions and you are the one coming up with advanced solutions, which sounds
to me like “…seems blender could not handle this correctly…I have fixed that in the code base…patch
attached…”