Seems to me we should be able to define a cylindrical equation for an n-sided polgyon that provides a clean curve with no crazy wraps or intersections.
A quick glance on google shows several techniques for doing this. I'd imagine the floor command would be used to generate the straight edges.
We can generate the cylindrical equation of a circle using the default suggestions:
r = 1
theta = t * 360
z = 0
To convert this to a hex, we need the radius to be precisely 1 at each 60 degree inteval and "some lesser value" at the points in between. The "apothem" of the hexagon is the distance from the center point to the midpoint of one of the straight sides. We can calculate this using the following equation:
apothem = r cos (180 / n)
In that equation, 'n' is the number of sides. Of course, we're using a hexagon so that number is 6. Therefore...
apothem = r cos (30)
So then we need to vary the radius r everywhere except at exactly 60 degree intervals (60, 120, 180, 240, etc). The radius value will fall between 1 (because in this example I used r = 1) and the apothem. At 60, 120, 180, 240, and 300, the radius will equal 1 precisely. At 30, 90, 150, 210, 270, and 330 the radius will be the apothem value. The value will oscillate, like a sin wave, between those two values.
This is getting very close to an equation for r. It seems to me we if we just flesh out this final equation, we'll actually have the equation for a hexagon that can then be varied over 'z' to provide a spring trajectory.
For whatever reason, this is just not coming to me tonight- perhaps its the impending Windchill migration. But it seems totally solvable without resorting to wraps or intersecting curves.
Thanks!
-Brian