Hi!
Does anyone know a nice easy way to find the pivot axis between 2 objects, one of which has been rotated? Specifically, where the axis isn’t parallel to any X,Y or Z?
Thanks!
-Christopher
Hi!
Does anyone know a nice easy way to find the pivot axis between 2 objects, one of which has been rotated? Specifically, where the axis isn’t parallel to any X,Y or Z?
Thanks!
-Christopher
Hi Christopher - can you post an example?
-Pascal
Rhino Help.3dm (38.6 KB)
So in my example file, I have a red non planar curve and a green non planar curve which is the same curve as the red one but rotated. In this case, I know the axis of rotation which I have represented in blue.
I know how to come up with a pivot point in a 2D situation by drawing lines and circles, but trying to do it in 3D has me stumped.
Hoping for a geometric, or perhaps plugin solution rather than a mathematical one!
Thanks!
-Christopher
Ooof. I do not know if that is knowable, by mortals.
-Pascal
Hi Christopher,
Rhino Help 001.3dm (54.2 KB)
HTH
Jeremy
@jeremy5 why do you use 3 matching points ?
shouldn’t 2 be enough ?
so my similar workflow would be:
kind regards. -tom
Hi Tom,
Thanks for your question. If you don’t get congruent intersections then the transformation originally applied was not a simple rotation. If you only use two pairs of points you would not be shown that and might therefore accept a false solution.
HTH
Jeremy
Hi Jeremy,
Thanks for your help! One thing I still don’t quite get - the circles that you drew were at angles? How did you get to those angles? If I draw the 3 circles - say at random angles, or parallel to the xy plane - they of course won’t intersect.
I came up with a more convoluted solution after I posted:
See - more convoluted! I like your solution better, so I’d really like to know how you got those angles for your circles!
Thanks!
-Christopher
7.
Hi Christopher,
There is an option for circle around curve. Its a great way to get to a plane that is perpendicular to a curve (in this case a line). You choose the curve, then the point on the curve (in this case the mid point) and finally the radius (value not important here).
Sorry but I’m not at my computer at the moment, so I can’t illustrate this. If you struggle to find the option, its available under the circle tile on the standard side toolbar.
Regards
Jeremy
Another way to create a plane perpendicular to a curve/line is the Plane
command with the AroundCurve option.
Good point! I keep forgetting that one.
To determine the angle of rotation after finding the axis of rotation (or already know the axis of rotation):
Create a line from a point on one object to the rotation axis perpendicular to the rotation axis.
Create a line from the corresponding point on the other object to the rotation axis perpendicular to the rotation axis. The lines should intersect the rotation axis at the same point.
The angle between the lines is the angle of rotation. In this example it is 166.257 degrees.
Two create a line perpendicular to the rotation axis:
A: Use Perp Osnap. Line
command from point on object to point on curve which Perp Osnap snaps to.
B: Line
command. “Perpendicular” option “Point” option. Click on point on object. Move cursor near the rotation axis and the line should snap to the perpendicular location.
Rhino Help DC_002.3dm (2.7 MB)
Hi Jeremy,
Cool - I feel kinda dumb for not even noticing that the circles looked perpendicular to the curves - however, that’s offset by now learning about the “around curve” option for circles. Except now I feel kinda dumb for not knowing about the around curve (I’ve always used “Set Cplane Perpendicular to curve” for similar situations) before!
You’ve just increased my productivity!
-Christopher
nifty… still I don’t quite get why this works, how did you figure this out?
Hi @Gijs,
Thanks for the question. Consider the 2d case: if you take a line from a point on the original to the centre of rotation and a line from the equivalent point on the rotated object to the centre and bisect the lines, the bisector passes through the the mid-point of, and perpendicular to, a line between the matching points. That holds for any rotation.
So in 3d you know that there is a bisector that will hit the axis, but you don’t know in what direction. You do know it is perpendicular to the connecting line, so it must be somewhere on a perpendicular plane through the mid point. You also know that the axis has to lie on that plane (and incidentally, perpendicular to the actual bisector line) for the points to match under rotation.
You also know that every matching pair of points must have the same axis. Therefore the axis must be at the intersection of all the bisector planes.
And there you have it.
[Edited to remove baloney from 2d paragraph and better describe that case.]
HTH
Jeremy