IK Constraint Wackiness


I have been struggling with getting my head wrapped around Bongo, as it has been driving me bonkers. My model is based on rectractable landing gear for model aircraft. I have managed to get a hydraulic ram working (thanks to the excavator sample) but the rest is not coming together. I have a point object constrained to the blue path identifying how the retract mechanism must move. No problem there. There is a jackshaft connected to ram constrained to the point object. It moves as required, again no problem there. What I am running into is with the trunion block which is supposed to be driven (pushed) by the jackshaft in turn pushed by the ram. Two problems, 1) once the trunion block passes 90-degrees it completely reverses itself on z-axis and that should not be and 2) I am receiving a “Bongo Constraint goal not reached.” error. What am I missing? Secondly, the strut needs to move rearward and rotate so that the wheel axle points up. Please help.

RetractsTest.3dm (212.1 KB)


In my quick attempt to fix the flipping problem.

  1. I made the Trunion itself into a Hinge (X).

  2. I also added some extra lines (Aimer + Connector) to control the rotation of the JackShaftCamFollowers. One JackShaftCamFollower was made the “child” of the other so as to make the other one do the same trick.

  3. I also added an extra point (PT_TRUNION_FLIPPER) as a Child to the Trunion, located at the same location as the the ActuatorRamFocusPoint (which iis constrained to the JackshaftFocusPoint which follows the JackshaftPath), and made this new point constrained to the JackshaftFocusPoint as well.

With the extra step inbetween - adding an explicit hinge at §1 above - the Trunion cannot flip like crazy anymore.

I didn’t check the reasons for the broken constraints, they probably stem from some slight imperfections in locating the focal points (detach, relocate, and put the IK-chain together again).

RetractsTest 001.3dm (344.8 KB)

// Rolf

(Luc Adriaenssen) #3

LookAt is a simple constraint (not and IK constraint – the video http://bongo.rhino3d.com/video/simple-constraint-versus-ik-in-bongo-2-0-a-clarification illustrates the difference). In the Excavator model it can used for the hydrolic cylinders because they are symmetrical in regard to the XZ-plane - a rotation of 180° isn’t noticed. Do observe the pivot of object ‘cylinder_C’ making a twist (when it becomes vertical) between ticks 34/35 and 56/57 and 88/89. LookAt is used in the Excavator-model not to overload the IK with constraints hence slowing down.

The twisting (reverse 180°) of the LookAt is due to the way 3 dimensional directions are computed. Maybe @Lars can tell us something more about it.

Rolf’s step 1 is surely right: making the ‘Trunion’ object a Hinge will avoid any twisting – a Hinge will only rotate about the specified axis .
But then the connection to ‘Jackshaft’ and his ‘followers’ needs to be taken care of:
• ‘Jackshaft’ must be connected (child of) to the ‘Trunion’ in a sliding manner (Telescopic). In order to get the sliding motion right its pivot needs to be rotated so that the Y-axis (it could as well be Z) aligns parallel to the groove in ‘Trunion’.
• ‘Jackshaft’ also needs to follow JackshaftFocusPoint. You could make ‘JackshaftPin’ child of ‘Jackshaft’ and (IK-)constrain it to JackshaftFocusPoint, but in the model I used the ability of objects to have a double function “Joint and constraint’ on ‘Jackshaft’ itself. Simplicity first.
• The “followers” can then simply be made child of ‘JackshaftPin’

RetractsTest 002.3dm (288.0 KB)

I also made an alternative for ‘ActuatorRam’ thinking in reality it wouldn’t scale but rather slide (like a telescope). I needed to elongate the object to make is feasible though. Good idea?

For “the strut needs to move rearward and rotate so that the wheel axle points up.“ I think a simple parent/child relation Trunion/Strut will do?

• I don’t see any “goal not reached” messages on my system??
• The reason the IK-decoration (rubberband) turns out soOOO big is because the objects in your model are very small. I see you turned down the size of the pivot to 1 (instead of default 5) to have proper proportions. Unfortunately the size of the decoration isn’t (yet) size-able. I disable their display in Bongo’s Options to get them out of the way.

(Luc Adriaenssen) #4

The reason for the “goal not reached” message in Rolf’s model lies in the nesting of constraints.
‘Jackshaft’ is contrainted to “ActuatorRamFocusPoint” which in his turn is constrained to ‘JackshaftFocusPoint’ while ‘Jackshaft’ is child ‘JackshaftFocusPoint’. A bit overkill.
Jackshaft’ being child ‘JackshaftFocusPoint’ will suffice to keep it going along. So abolishing Constraints and Joints for ‘Jackshaft’ (radio button none :slight_smile:) clears everything.


A bit too quick… :slight_smile: Nice final solution @Luc!

I expected you to do a more careful job, like you always do. Very good job this time also.

// Rolf


@Luc and @RIL -

Appreciate the assistance and guidance. I managed to get it to work but will revisit and compare what I ended up with to the recommendations made by Luc. Again, thank you!