# Simpson 3D printer string calculator

- Author:
- DaveGadgeteer

Play with angle alpha (move the slider) to see the Simpson arm bend, and see the string length vary for various winding schemes (s1, s1x, s2, s3, s4, x1, x3).
This shows that the string anchors must be on the same side as the motor in order for the string length to be constant as alpha varies.
This assumes pulleys of radius Pradius are mounted on the Simpson bolts, which are on a diameter at radius Bradius of the meshing gears (not shown) of radius Gradius. B and B' are the axes of the gears on the two arms. The effect of the meshing gears is here implicit in the reflection about the y axis.
All these dimensions can be adjusted by the corresponding slider.
The lesson I get from this study is that the string should end at the right-hand arm, because that allows both a constant string length and a constant proportionality between the string position and the Reach, or effective length of the arm.
You can see the winding scheme in detail by looking at L1s1 through L1x3 definitions and L2s1 through L2x3 below. The path appears in these definitions as a sum of the various segments and arcs that comprise it, in sequence.
L1 means Length of string 1, which connects the upper pulleys and anchor points.
L1s1 = m_3 + k_3 + m + p_1 + f_1 + u1 + f_1' +a1'
(Start at right of motor pulley, go up and kiss the lower pulley to deflect toward the upper pulley, reach the upper pulley and wrap around it about 1/4 turn, cross to left side using path u1, anchor at left along path a1'.)
L1s2 = m_3 + k_3 + m + p_1 + f_1 + u1 + f_1' + g_1' + h_1' + d1 + h_1 + b1
(Instead of ending at left, pass around the left pulley and return along path d1, then anchoring along path b1 on the right.)
L1s3 = m_3 + k_3 + m + p_1 + f_1 + u1 + f_1' + g_1' + h_1' + d1 + h_1 + k_1 + p_1 + f_1 + u1 + f_1' + a1'
(Instead of ending at the right, pass around the right pulley again and cross a second time along path u1, anchoring at left along a1'.)
L1s4 = m_3 + k_3 + m + p_1 + f_1 + u1 + f_1' + g_1' + h_1' + d1 + h_1 + k_1 + p_1 + f_1 + u1 + f_1' + g_1' + h_1' + d1 + h_1 + b1
(Instead of ending at the left, pass around the left pulley again and cross a second time along path d1, anchoring at right along b1.)
L1x1 = m_3 + k_3 + m + p_1 + f_1 + e_1 + x1 + k_4' + h_1' + b1'
(Like L1s1, except take the diagonal path x1 toward the left, anchor on the left along b1'.)
L1x3 = m_3 + k_3 + m + p_1 + f_1 + e_1 + x1 + k_4' + h_1' + g_1' + f_1' + u1 + f_1 + p_1 + k_1 + h_1 + d1 + h_1' + b1'
(Instead of ending after one crossing to left, continue back along u1 and d1, making two more crossings before ending along b1' at the left.)
(The purpose of the diagonal path is to cancel out some of the string length variation one gets with a simple single u1 path to the left, as in the L1s1 case.)
(The solution isn't ideal, however, because the mechanical advantage varies slightly as angles change.)
L2s1 = mx + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + a2'
(Lower string starts at motor pulley left, diagonal up to right side of pulley c2, about 1/4 turn, cross along u2, anchor along a2'. Same path as for L1, essentially.)
L2s1x = m_3' + k_3' + p_2' + e_2 + f_2 + p_2 + k_3 + h_3 + g_3 + h_2 + d2 + h_2' + b2'
(Start at motor pulley left, straight up to left side of pulley c2, go 3/4 turn clockwise around the pulley then cross along d2 and anchor along b2'.)
(This is opposite, symmetric to, L1s1. The result is a constant string length, but the mechanical advantage varies slightly as angles change, a loss of proportionality.)
L2s2 = mx + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + g_2' + h_2' + d2 + h_2 + b2
(Motor pulley left, diagonal to right side of pulley c2, counter clockwise to path u2, around pulley c2', return along d2, anchor along b2 at right.)
L2s3 = mx + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + g_2' + h_2' + d2 + h_2 + g_3 + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + a2'
(Motor pulley left, diagonal to right of pulley c2, counter clockwise to u2, around c2' and back along d2, around c2, to the left along u2, anchor along a2' at left.)
L2s4 = mx + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + g_2' + h_2' + d2 + h_2 + g_3 + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + g_2' + h_2' + d2 + h_2 + b2
(Same, but continue around c2' and return to right along d2, anchor along b2.)
L2x1 = m_3' + k_3' + p_2' + e_2 + f_2 + p_2 + k_3 + h_3 + g_3 + h_2 + k_2 + y2 + e_2' + f_2' + a2'
(Motor pulley left, straight up to left of pulley c2, 3/4 turn clockwise around c2, diagonal up to left along y2, anchor along a2'. This diagonal is symmetric opposite of L1x1 above.)
L2x3 = m_3' + k_3' + p_2' + e_2 + f_2 + p_2 + k_3 + h_3 + g_3 + h_2 + k_2 + y2 + e_2' + f_2' + g_2' + h_2' + d2 + h_2 + g_3 + h_3 + k_3 + p_2 + f_2 + u2 + f_2' + a2'
(Same, but continue around c2', return to the right alone d2, around c2 counterclockwise and return to left along u2, anchor along a2'.)