Well in that case just constrain one link to a curve and duplicate along it. Roll every other link 90 degrees.
Move your curve points around until you are happy with the position.
Something like this
Code:
Application.SICreateCurve("crvlist", 3, 0)
Application.SIAddPointOnCurveAtEnd("crvlist", -2.71952817824377, 0, 0.773833791090281, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", -2.27391874180865, 0, -0.839412925929718, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", -1.15989515072084, 0, -0.878760406832644, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", 0.281782437745741, 0, 0.406590635996297, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", 1.3302752293578, 0, 1.46897262037532, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", 2.99475753604194, 0, 0.249200712384591, False, 0, "")
Application.SIAddPointOnCurveAtEnd("crvlist", 3.75491480996068, 0, -0.68202300231801, False, 0, "")
Application.CreatePrim("Torus", "MeshSurface", "", "")
Application.SetValue("torus.torus.radius", 0.248, "")
Application.SetValue("torus.torus.sectionradius", 0.099, "")
Application.SelectObj("torus", "", "")
Application.ApplyCns("Path", "torus", "crvlist", "")
Application.SetValue("torus.kine.pathcns.tangent", True, "")
Application.SetValue("torus.kine.pathcns.dirx", 0, "")
Application.SetValue("torus.kine.pathcns.diry", 0, "")
Application.SetValue("torus.kine.pathcns.dirz", 1, "")
Application.SetValue("torus.kine.pathcns.upvct_active", True, "")
Application.Duplicate("torus", "", 2, 1, 1, 0, 0, 1, 0, 1, "", "", "", "", "", "", "", "", "", "", 0)
Application.SetValue("torus1.kine.pathcns.perc", 2.862, "")
Application.SetValue("torus1.kine.pathcns.roll", 89.208, "")
Application.SetValue("torus1.kine.pathcns.roll", 90, "")
Application.SelectObj("torus1", "", True)
Application.Duplicate("torus1", "", 2, 1, 1, 0, 0, 1, 0, 1, "", "", "", "", "", "", "", "", "", "", 0)
Application.SelectObj("torus2.kine.pathcns", "", "")
Application.SetValue("torus2.kine.pathcns.perc", 6.07, "")
Application.SetValue("torus2.kine.pathcns.roll", 0, "")
Application.SetDisplayMode("Camera", "shaded")
Application.SelectObj("torus2", "", True)