I really have no idea how to better word the title. I am on my second day with blender and im trying to rotate a C-arm (X-ray equipment) to model real world equipment. I can manually animate the motion by adjusting rotation then compensate with location to keep the c-arm "anchored" to the "track" since it isn't a perfect arc. I attached screenshots to better demonstrate my dilemma. Is there a constraint that will keep it attached to its parent object's surface as it rotates? or is there a way to link rotation and location transforms together?
-
$\begingroup$ What I understand is if you rotate C-Arm, you want C-mount to stick to it. Then you want to be able to rotate C-mount as if it slides along C-arm. Am I understanding it correctly? $\endgroup$– lintang_biruCommented Apr 1, 2020 at 19:50
-
$\begingroup$ The C-mount is fixed to the boom that reaches towards the "ceiling." so it is restrained to lateral rotation at a pivot point set to the boom. A real C-Arm is mechanically rotated by the c-mount along it's track. so the two surfaces must maintain contact at all times. here is an example of the geometry of a real c-arm. researchgate.net/profile/Daniel_Ruijters/publication/51530658/… $\endgroup$– E. ShoeCommented Apr 4, 2020 at 16:09
1 Answer
Ok, to start, I've created a quick (and not terribly accurate) recreation of an area of your model;
And we'll say I want to move the object on the left in a way that it follows the shared curve in the middle. The quickest way I know to do this is to set the origin of the object to an appropriate pivot point, then simply rotate the object.
Setting the origin
Go to object mode and left click in an area you want to pivot from (this is a bit of a guess at this point);
Set your pivot point to "3D Cursor";
Now hit r and move the mouse, see if the object moves as desired;
No no, that won't do. How about;
Yes, much better. Check the full range of desired motion;
Ok, this will do. right click to stop rotating (or ctrl+z to bring it back to where it was if you confirmed the rotation).
Now, hit space (or F3, depending on your hotkey settings), and search for (and select) "Set Origin";
Then select "Origin to 3D cursor";
Now set your pivot point to "Active Element";
At this point, you can hit r and rotate the object on that point, regardless of where the 3D cursor is;
Technically, you don't need to set the origin
You could pivot on the 3D cursor without setting the origin, but setting the origin allows you to move the cursor around and not have to find the optimal pivot point every time.
-
1$\begingroup$ instead of guessing when setting the 3D cursor with Shift + RMB, would be better to use a cube or other meshes' vertices/edges to snap the 3D cursor. $\endgroup$ Commented Apr 3, 2020 at 15:29
-
$\begingroup$ Indeed. One way I do this is by creating a circle or sphere, and using it for measurement. I should update my answer, but I need to wait until I have a moment to do it. $\endgroup$ Commented Apr 3, 2020 at 15:59
-
$\begingroup$ The issue with this solution is that it requires a perfect arc. The c-arm uses a more elongated arc. that's why it becomes unaligned as the c-arm rotates further. Also, in your example the pieces should be flipped. The object on the left would be the mount/track that rotates the object on the right. $\endgroup$– E. ShoeCommented Apr 4, 2020 at 16:07
-
$\begingroup$ Not that this is required for blender, or even this forum, but; If you have two objects moving along each other, and they're both curved but not perfectly round, and neither of them are pliable... that can't happen in reality. There are a number of ways to warp things along a path, but is that what you want? $\endgroup$ Commented Apr 4, 2020 at 16:29