4
$\begingroup$

How does one make a Trammel Of Archimedes?

Trammel of Archimedes

A trammel of Archimedes is a mechanism that generates the shape of an ellipse. It consists of two shuttles which are confined ("trammelled") to perpendicular channels or rails and a rod which is attached to the shuttles by pivots at fixed positions along the rod.

As the shuttles move back and forth, each along its channel, the end of the rod moves in an elliptical path. The semi-axes a and b of the ellipse have lengths equal to the distances from the end of the rod to each of the two pivots.

enter image description here

How does one do a looping animation like this?

enter image description here

$\endgroup$
8
$\begingroup$

enter image description here

Animate both "shuttles" moving on different axis by keyframing their X and and Y positions in sync. Start at say $X=-1$ at frame $0$ then $X=1$ at frame $30$, and back at $X=-1$ at frame $60$, repeat for Y axis for the other shuttle.

In the Curve Editor move their animation curve keyframes so that they are offset by "half a cycle". That is if one apexes every $x$ frames, the other one should apex at frames $x+1.5x$.

enter image description here

Add a Cycles modifier to both curves so they repeat indefinitely.

enter image description here

Create a "bar" object, move it so that it's origin it is exactly coinciding with one the shuttles, then parent the bar to that shuttle with Ctrl + P.

Add a Track to Constraint pointing to the other shuttle, adjusting the axis settings as necessary.

enter image description here

As mentioned by Robin Betts, for a mathematically perfect animation the f-curve should be a perfect sine wave. Use a Built-in Function f-curve modifier instead of manually keyframing the shuttels and using the Cycles modifier.

Set it to a Sine function, so the shuttles have mathematically correct motion relative to each other. With the previously described technique you will notice a wobble between the second bar hole and the corresponding shuttle caused by the manually keyframed animation.

enter image description here

|improve this answer|||||
$\endgroup$
  • 4
    $\begingroup$ Simple and effective. Great to see the big D answering. $\endgroup$ – batFINGER Jan 29 at 3:41
  • 1
    $\begingroup$ @batFINGER Thanks. Sadly not as common as I'd like these days, but I do miss it $\endgroup$ – Duarte Farrajota Ramos Jan 29 at 13:13
  • 1
    $\begingroup$ Great presentation ..Do you know a way to generate a perfectly sinusoidal f-curve, apart from drivers? Because that's what you need.. (X of the X slider = cos(t), Y of the Y slider = sin(t) or vice-versa) to keep the distance between the blocks perfectly constant, and scribe an ellipse.. $\endgroup$ – Robin Betts Jan 29 at 23:56
  • $\begingroup$ @RobinBetts Indeed, you are right. If you look closely you will notice that my animation is not perfect. The second blue bar hole slightly wobbles relative to its shuttle because animation curve are not perfect mathematical sine functions. Now that you mention it you can use the curve modifier Bul-tin Function to generate a perfect sine. See updated answer for details. $\endgroup$ – Duarte Farrajota Ramos Jan 30 at 1:16
  • 1
    $\begingroup$ .... and I learned a new modifier into the bargain. $\endgroup$ – Robin Betts Jan 30 at 9:02
5
$\begingroup$

Follow path constraint and driver.

enter image description here

Add two default circle curves at origin. Give one a follow path constraint targeting the other

enter image description here

Make it a fixed offset type, where 0 is one end, 1 the other, or for the case of a closed curve one single orbit.

For simplicity this is given a driver such that it does one revolution in 25 frames. Divide frame by 25, then modulus (or remainder when divided by) one.

enter image description here

(frame / 25) % 1

Making it rotate about z axis exactly one full 2 * pirevolution on each orbit. Exactly like the moon around the earth. Or simply 2 * pi times offset above. To avoid circular refs have calculated again rather than using modifier offset as a variable input into driver.

enter image description here Drivers editor

enter image description here Object Properties panel

2 * pi * ( (frame / 25) % 1)

Note this is very similar to methods used here

Calculate sphere's rotation for rolling

I am trying to make an animation of a double planet, can't seem to get it right.

Lastly parent an arm to the orbiting curve, aligned along a diameter.

Note very poor effort at dynamic paint in image above, but shows the ellipse.

A circle of twice the scale of originals has been added to simulate question gif.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.