I’m trying to rotate a Universal Joint (produced entirely in GH) to its very maximum angles. The base geometry (the outer shell with its opening making contact with the axle at maximum angles) allows for a maximum 15 degree angle in two planes (15 degrees / plane).
When turning the ball to maximum angles in two planes simultaneously, the outer ball makes contact with the inner axle at Dot 1 and 3 in the clip. The Ball opening is wide enough to allow the combined planes to sum up into approximately 21 degrees at those contact points (1 & 3).
Anyway, when turning the ball in only one plane, (to max 15 degrees) there’s that gap at point 2.
That gap doesn’t actually pose any problem, except for the tricky math it takes if I want to close the gap while rotating the ball using the Multi Dimensional component shown in the clip. And I would like to know how to close that gap (while not colliding with the axle when both planes are turned to their respective maximum angles).
I’d like the inner edge of the Ball to make contact with the inner axle at all times, but how do I calculate the two (accelerating) angles to achieve that? See clip:
Fig 1. What formula keeps the gap at dot 2 closed all the way from dot 1 through dot 2 to dot 3 while dragging the controller up and down? :
The controller emits values -1 to 1 in both planes, which I multiply with the desired maximum angle (15 degrees in this case, plus allowance for combining this angle in two planes at the same time, which ends up at a maximum of ~21 degrees)