Es bastante sencillo utilizando trigonometria básica, te dejo una imagen para que la veas. Lo que tenemos que calcular es la altura del triángulo y luego sumarle la altura en la base del triangulo.
La expresión sería más o menos.
Código:
$pos1=`XForm -que -ws -t locator1`.
$long=biela, scaley.
Float $x.
$x=($long*$long)-($pos1[0]*$pos1[0]).
Float $y.
$y=sqrt ($x).
$y=$y+$pos1[1].
Locator2.translatey=$y;
Donde locator1 seria el punto dentro del cilindro que rota, creas un locator y lo emparentas al cilindro, en el que va enganchada la biela con rotación, y locator 2 donde solo se mueve arriba y abajo.
Biela es el cilindro que une esas dos posiciones, créalo de una altura de 1 y cambia el pivot a la base del cilindro, lo escalas a la distancia que quieras, lo emparentas al locator 1 y le creas un aim constraint al locator2.
Y le añades la expresión.