We have released a new mechanical constraint called UniversalConstraint. This physics constraint ensures that two attachments are co-located (similar to BallSocketConstraint) and that their secondary axes remain perpendicular (see the picture below). In this sense, this constraint is more restrictive than the BallSocketConstraint but is less restrictive than HingeConstraint (by one degree of freedom).
A few example use cases for UniversalConstraint would be power transmission between the transmission and rear drive shafts of rear-wheel drive cars, constant velocity joints, robotics, etc. (See this article)
How to Use
The joint is accessible under the “Model/Create” menu. To use the constraint, select the constraint, place an attachment on one body and the second attachment on a different body. You can also limit the relative angular motion of the primary axes of attachments via LimitsEnabled properties. This way the motion of the primary axis of attachement1 will be limited by a cone. This cone is formed via attachment0 and its primary axis and its angle is defined via the MaxAngle property. (See documentation)
Let’s try to build new mechanisms with this constraint and let us know if you have any questions!