Steam Loco Valve Gear Rig Using Only Constraints

Hello. I am trying to animate Walschaert Valve Gear using constraints only–no armatures, bones or lattices. Part of the inspiration comes from Neal Hirsig’s Rocket Steam Locomotive Tutorial. However, I am having a little trouble setting constraints for the Combination lever and union link (see the wiki article for a demonstration). Here’s a list of what I have so far (see attached screenshot) and the constraints that go with each part:

  • Driver
  • CrankPin–Child of: Driver
  • Eccentric Crank–Child of: CrankPin
  • Eccentric CrankPin–Child of: Eccentric Crank
  • Main Rod–Child of: CrankPin; Locked Track: Crosshead_Main (To X, Lock Y)
  • CrossHead_Main–Child of: PistonRod
  • PistonRod–Child of: CrankPin (X Location only)
  • Eccentric Rod–Child of: Eccentric CrankPin; Locked Track: LinkFootPin (To X, Lock Y)
  • LinkFootPinChild of: Eccentric CrankPin (X Location only)
  • Link–Damped Track: LinkFootPin (To -Z)
  • LinkCurve (Path)–Child of: Link
  • LinkBlock–Clamp to: LinkCurve
  • Radius Rod–Child of: Radius Rod-Combo Lever Pin; Damped Track: LinkBlock (To -X)
  • Radius Rod-Combo Lever Pin–Child of: LinkBlock (X Location only)
  • Combo Lever–Child of: Radius Rod-Combo Lever Pin
  • Combo Lever-Union Link Pin
  • Union Link
  • Union Link-Crosshead Pin–Child of: Crosshead_Main

If anyone knows how to make the combo lever and union link work properly (as shown in the first animated GIF in the Wiki article) with constraints only (no bones, armatures or lattices) please let me know. I also wanna know how to rig the reverse shaft (L-shaped piece in the above pic) like in the second GIF on the wiki article. Thanks in advance.

Attachments


I don’t have a specific answer but here are some videos I’ve watched or plan to watch which might be helpful:

Sorry, that will not help me. I need advice from someone who also knows all about steam locomotives like me.

The videos lumpyoatmeal recommends are actually good reference for getting desired behavior in a complex mechanical rig. The section of the video on rigging piston behavior could be adapted in a useful way for trains, so don’t be too hasty to dismiss it. Bones (when parented to parts via bone-relative so they don’t deform) are likely the best way to control pivots in Blender with any precision. Especially when there are things like linkages where IK may be useful. Other than that, learn about drivers. Drivers more or less can do what constraints do, but more directly in relation to the underlying software. However you have to learn a bit about Python scripting to really get at it.

Of course if you’re really set on not using bones, every bone is about the equivalent of a pair of empties with one parented to the other while also having a few additional useful properties thrown in that makes animation less tedious in the long run. Unlike empties, with bones you get access to non-linear animation and things like action constraints which are awesome for controlling complex mechanisms.