Animating a fire engine ladder

Hi everyone

I am trying to animate a structure using Bongo 2 (and Bongo 3 WIP). It is a fire engine ladder and platform.

The whole ladder rotates around the pivot on the fire engine, and the angle of the ladder also increases from horizontal (0°) to vertical (90°) at the same time as the rotation. During this process, the platform at the end of the ladder needs to remain parallel to the ground.
Therefore, this platform needs to rotate around the z axis and rotate through both x and y axis, whilst remaining parallel to the x y plane. It is attached to the pivot by one end of the ladder, and a hinge connecting the other end of the ladder to the platform.

An example; with a ladder length of 1, and the pivot point of (0,0,0).
At the ladder angle of 0° (horizontal) and at a rotation of 0°, the platform position would be (1,0,0).
At the ladder angle of 45°, and a rotation of 90° anti-clockwise, the platform position would be (0,0.7,0.7), given sin45 = 0.7.
At the ladder angle of 90° (vertical), and a total rotation of 180° anti-clockwise, the platform position would be (0,0,1).

It needs to be animated to move smoothly between these states.
I have also modelled the ladder to bend under the horizontal load and not under the vertical load, so if there is a way for me to slowly transition between the bending models and the straight model that would be very helpful.

Another example of the correct movement would be a crane with load. The crane jib will tilt and turn lifting and turning the load but the load will remain horizontal while it lifts and rotate (ignoring inertia) perpendicular to the jib.

I would like to know if this movement is possible to animate and how before I purchase Bongo 2 (and 3 WIP). I have used a trial to attempt to achieve this but to no success yet.

Hi Oliver,

Welcome to our community.

Something like this is sure feasible.
Fireenegineladder.3dm (91.5 KB)
But I assume your fire engine ladder is a bit more complex. Posting your Rhino model would allow me to evaluate.


1 Like

Hi Luc

This solution is perfect and is exactly what I was looking for. Thank you for your quick response and for modelling it for me!

I also need the ladder to flex under the load of the platform, so the highest deflection at the horizontal (ie sin(90)) and straight at vertical (ie sin(0)). I have been unable to get the physics simulation of Bongo 3 WIP to be able to model this. The softbody is far too weak and there is no option to make it strong/stiff enough to flex rather than collapse, and these are static deflections rather than dynamic.

Thank you

Hi again,
Indeed the softbody feature in Bongo WIP isn’t meant for flexible objects. Beachball-like object are rather targeted :blush:.

Animating flexibility in Bongo mostly requires ‘Morphing’; the animation of control points of curves of surfaces. Control points of polysurfaces however cannot be animated. In order to bend polysurfaces often the use of Rhino’s History can come in handy. This method is demonstrated in the video The power of History - YouTube
As explained in the 2nd second of the video History based activities aren’t updated when the animation is played via the “Play” button. To have a preview one should press and hold the ‘next tick’ button of the timeline.
Please keep this in mind when you take a look at the model.
Fireenegineladder 001.3dm (163.1 KB)

The implementation of History obviously requires some creativity:

Phase 1. A line “ladderbase” is keyframed to pivot horizontally and lean upwards. Its child, a curved line “laddercurve”, is keyframed ‘Morphing’ in order to straighten up towards tick 40.
fireengineladder step 1

Phase 2. Both curves are use in a Sweep1 with History enabled. Result: a twisting and turning straightening plane.
fireengineladder step 2

Phase 3. The plane is used as ‘target surface’ in a FlowAlongSrf command with History enabled. Source object is a straight (wannabe) ladder with a kind of diagonal plan as source surface. Result: a twisting and turning straightening (wannabe) ladder.
fireengineladder step 3

The use of a reference plane rather than a curve is imperative. Using a Flow (along curve) makes the ladder twirl around the target curve due to its twisting and turning under animation.

Phase 4. The “platform” is connected to “laddercurve” by means of a Simple Constraint ‘LookAlongZUp’ using a single keyframe at tick 0. This makes the X-axis of “platform” to remain tangent to the end of “laddercurve” throughout its morphing. That’s the reason why I used the Simple constraint rather than making “platfrom” child of “laddercurve”.
fireengineladder step 4

Phase 5. Just like in the previous model I used an Expression to compensate the tilting of the ladder,
thus keeping the platform horizontal at the end of the twist and turn.
fireengineladder step 5

I realize this behaviour of the platform may differ from your original design. My model is indeed purely abstract. When you post or mail me your genuine fire engine ladder model, all be glad to look into a more realistic approach.

Phase 6. :notes:All together now :notes:
fireengineladder step 6

Final phase: Hide (not delete) all the auxiliary objects (the are on Layer 01).
fireengineladder final


PS When the animation is previewed by using the “Play” button and then stopped by using the “Stop” button the “platform” might end up leaning.
I guess this is due to the culmination of History and Simple Constraint. 1 simple click on the ‘previous tick’ button of the timeline remedies the issue.