Download this thing or ask me how I made it at thingiverse.com
back
loxodrome torus

scale([8,8,8])
for(i=[1:12])
{
     rotate([0,0,30*i])
     {
         translate([0,0,0])
         {


///////////////////////////////////////////pi/2 arm
for(i=[0:11])
{
for(n=[85:115])
{
         vector1 = [[-0.012341841758829977, 0.04752040412286069],
[0.04959929805954917, -0.010460937720873763],
[-0.02918088264600642, -0.04278985975672278],
[-0.027541102020434843, 0.04265763078864078],
[0.05120796598674859, 0.008676907311940069],
[-0.00902551095506509, -0.05280532020544901],
[-0.046460451057862104, 0.025032287160784896],
[0.03957110968876154, 0.035519387832562616],
[0.023553726881323858, -0.049955679877267234],
[-0.054185592642325114, -0.010329415859573057],
[0.0046612479015817505, 0.05448823434467294],
[0.053403532542332835, -0.01857852356889536],
[-0.028959558223495104, -0.04989699001442871],
[-0.042941887714677864, 0.037388271055238696],
[0.04570738233589845, 0.03514603545209613],
[0.028994206455773143, -0.052222664217751256],
[-0.055350904617720534, -0.02311390646342582],
[-0.016001826458251593, 0.05726857820829848],
[0.06016064494335141, 0.009759487793936716],
[0.006407801651112502, -0.062462984622894915],
[-0.0625633937858233, -0.004190314785311469],
[-0.0013194612536940459, 0.06250823945689082],
[0.06427176376916999, -0.00029274220741125345],
[0.0012643069247615588, -0.06603670229501166],
[-0.06590659464727334, -0.0041832437174995594],
[-0.006653167704184223, 0.06561738797376805],
[0.0668123984339733, 0.010563468204145856],
[0.01776605787731197, -0.06732858638423948],
[-0.06491098829936263, -0.02632558546357515],
[-0.034192855511056656, 0.06094836189759326],
[0.05678562427674808, 0.04287966231793346],
[0.05369132500227571, -0.05005396771985209],
[-0.038475094177922435, -0.06397477892107173],
[-0.07082098677651986, 0.02368383452906224],
[0.007648066945313725, 0.07481331166309914],
[0.0764057161343312, 0.010900758138771803],
[0.03261600738901069, -0.07237803590869267],
[-0.05982689054263142, -0.05374718643798941],
[-0.06989679821350908, 0.04022518346135914],
[0.016088093485556322, 0.07994832110807576],
[0.08278876904810215, 0.01241608797085466],
[0.04359030463302589, -0.07425045466527463],
[-0.051656978792802004, -0.0706753227795954],
[-0.08620692322835793, 0.018364270214195802],
[-0.019410788250351918, 0.0868928168061089],
[0.07148142451014809, 0.05635499624700542],
[0.08533718188749843, -0.03870914652249516],
[0.007794438049019317, -0.09572458050312888],
[-0.07997024141829263, -0.0557815326474632],
[-0.08990014194649526, 0.04030650074119558],
[-0.013067333316327354, 0.09913778493591636],
[0.07811196479733432, 0.06622408559202606],
[0.10165367086337807, -0.027980215331551678],
[0.03794547119881372, -0.1014747728477379],
[-0.05914736092591115, -0.09348729464745469],
[-0.11183812983280794, -0.011361084653324291],
[-0.08040935472940945, 0.08117303005309091],
[0.010985610952514192, 0.1161917862845735],
[0.09741810124407069, 0.06996397335772178],
[0.1210375890560449, -0.025312301446134902],
[0.06772527328848509, -0.10789742374125529],
[-0.02871136374329864, -0.12761863186854808],
[-0.1114944759371513, -0.07412388255144221],
[-0.1351514404085284, 0.02169050051289735],
[-0.0884237029873778, 0.10876009401430282],
[0.004029801545982051, 0.1439860325326731],
[0.09774690589732242, 0.11190884051092655],
[0.15106346430556927, 0.028291342315273763],
[0.14259798192120396, -0.07062723951847474],
[0.07721535339878982, -0.14548085626810142],
[-0.019408666930008367, -0.1691936821751923],
[-0.11292495295549167, -0.1349386012673912],
[-0.17312095323790241, -0.05547535541120933],
[-0.18281962984865713, 0.043836377792878814],
[-0.14089314747176312, 0.13448393160708827],
[-0.05997043321921229, 0.19316813759132218],
[0.03912704663017641, 0.20689944417518377],
[0.13379662381577495, 0.174298286028578],
[0.20499025586598008, 0.10378630491543665],
[0.2404721670391399, 0.009999196992758946],
[0.23581445467146409, -0.09023813898790248],
[0.19357684531084804, -0.18133399850138412],
[0.12139892062123117, -0.25122938250133076],
[0.029702020343740976, -0.29244592966991345],
[-0.07042500697905539, -0.30208167377714257],
[-0.1688528567066604, -0.28108625923015157],
[-0.2574165668367131, -0.233179774804763],
[-0.33035675263644904, -0.16369875537859171],
[-0.3842976863324836, -0.07857158420510557],
[-0.41795101936949497, 0.016462860079585195],
[-0.4316526274685467, 0.1163791695815879],
[-0.42687470694806917, 0.2171496640752639],
[-0.4057767619178062, 0.3158313651373149],
[-0.37083727235649466, 0.4105271759844956],
[-0.3245840035855202, 0.5002660975848803],
[-0.2694221793210889, 0.5848413012049721],
[-0.20753943945176795, 0.6646486181498115],
[-0.14088326919002997, 0.740528204412533],
[-0.07118123363990386, 0.8136306259637174],
[0.0, 0.8852976900455575],
[0.07118123363990386, 0.9569647541273976],
[0.14088326919003002, 1.0300671756785817],
[0.20753943945176795, 1.1059467619413033],
[0.26942217932108875, 1.1857540788861427],
[0.32458400358552014, 1.2703292825062347],
[0.3708372723564947, 1.3600682041066192],
[0.4057767619178062, 1.4547640149538],
[0.4268747069480693, 1.553445716015851],
[0.4316526274685467, 1.654216210509527],
[0.41795101936949497, 1.7541325200115296],
[0.38429768633248373, 1.8491669642962205],
[0.33035675263644915, 1.9342941354697065],
[0.2574165668367131, 2.003775154895878],
[0.1688528567066605, 2.0516816393212665],
[0.07042500697905552, 2.072677053868257],
[-0.02970202034374103, 2.0630413097610285],
[-0.12139892062123103, 2.0218247625924457],
[-0.19357684531084818, 1.951929378592499],
[-0.2358144546714639, 1.860833519079017],
[-0.2404721670391401, 1.7605961830983559],
[-0.20499025586597996, 1.6668090751756781],
[-0.13379662381577506, 1.596297094062537],
[-0.03912704663017641, 1.563695935915931],
[0.05997043321921225, 1.5774272424997928],
[0.14089314747176307, 1.6361114484840265],
[0.18281962984865707, 1.7267590022982362],
[0.17312095323790233, 1.826070735502324],
[0.11292495295549154, 1.9055339813585062],
[0.0194086669300082, 1.9397890622663072],
[-0.07721535339878982, 1.9160762363592163],
[-0.142597981921204, 1.8412226196095896],
[-0.15106346430556938, 1.742304037775841],
[-0.09774690589732249, 1.6586865395801884],
[-0.004029801545982092, 1.6266093475584418],
[0.08842370298737778, 1.6618352860768122],
[0.13515144040852822, 1.7489048795782174],
[0.11149447593715123, 1.8447192626425573],
[0.028711363743298635, 1.8982140119596629],
[-0.06772527328848488, 1.87849280383237],
[-0.12103758905604489, 1.7959076815372497],
[-0.09741810124407069, 1.700631406733393],
[-0.010985610952514158, 1.6544035938065413],
[0.08040935472940935, 1.689422350038024],
[0.11183812983280794, 1.7819564647444393],
[0.05914736092591122, 1.8640826747385697],
[-0.03794547119881386, 1.8720701529388528],
[-0.10165367086337818, 1.7985755954226665],
[-0.0781119647973344, 1.7043712944990888],
[0.013067333316327367, 1.6714575951551984],
[0.0899001419464952, 1.7302888793499194],
[0.07997024141829256, 1.826376912738578],
[-0.007794438049019359, 1.8663199605942438],
[-0.08533718188749839, 1.8093045266136099],
[-0.07148142451014816, 1.7142403838441092],
[0.019410788250351807, 1.683702563285006],
[0.08620692322835788, 1.7522311098769188],
[0.051656978792801955, 1.8412707028707103],
[-0.04359030463302582, 1.8448458347563896],
[-0.08278876904810217, 1.7581792921202601],
[-0.016088093485556287, 1.6906470589830391],
[0.06989679821350925, 1.7303701966297558],
[0.05982689054263146, 1.8243425665291042],
[-0.032616007389010826, 1.8429734159998077],
[-0.07640571613433111, 1.759694621952343],
[-0.007648066945313836, 1.6957820684280156],
[0.07082098677651982, 1.7469115455620527],
[0.0384750941779225, 1.8345701590121863],
[-0.05369132500227569, 1.8206493478109669],
[-0.05678562427674816, 1.7277157177731812],
[0.03419285551105666, 1.7096470181935215],
[0.0649109882993627, 1.79692096555469],
[-0.01776605787731189, 1.8379239664753544],
[-0.06681239843397324, 1.760031911886969],
[0.006653167704184448, 1.704977992117347],
[0.06590659464727322, 1.7747786238086145],
[-0.001264306924761649, 1.8366320823861266],
[-0.0642717637691701, 1.7708881222985262],
[0.0013194612536941985, 1.708087140634224],
[0.06256339378582343, 1.7747856948764262],
[-0.0064078016511124325, 1.8330583647140097],
[-0.06016064494335149, 1.760835892297178],
[0.016001826458251545, 1.7133268018828165],
[0.05535090461772063, 1.7937092865545408],
[-0.02899420645577311, 1.8228180443088662],
[-0.04570738233589844, 1.7354493446390187],
[0.04294188771467777, 1.733207109035876],
[0.028959558223495163, 1.8204923701055435],
[-0.05340353254233288, 1.7891739036600103],
[-0.004661247901581733, 1.7161071457464419],
[0.05418559264232525, 1.7809247959506878],
[-0.023553726881323955, 1.820551059968382],
[-0.03957110968876165, 1.7350759922585524],
[0.04646045105786212, 1.7455630929303299],
[0.009025510955064875, 1.8234007002965638],
[-0.051207965986748594, 1.761918472779175],
[0.027541102020434916, 1.7279377493024741],
[0.02918088264600638, 1.8133852398478378],
[-0.04959929805954921, 1.7810563178119885],
[0.012341841758829908, 1.7230749759682542]];
     hull()
     {
         vector2 = vector1[n];
         vector3 = vector1[(n+1)]; //change v this for height
         // translate (7+r*cos(phi))*cos(theta), (7+r*cos(phi))*sin(theta), r*cos(theta)
         //vector2[0] is theta, vector2[1] is phi, same for vector3
         translate([(5+3*cos(vector2[1]*17+30*i))*cos(vector2[0]*17+0*i),
         (5+3*cos(vector2[1]*17+30*i))*sin(vector2[0]*17+0*i),
         3*sin(vector2[1]*17+30*i)])
         {
             sphere(r=.2);
         }
         translate([(5+3*cos(vector3[1]*17+30*i))*cos(vector3[0]*17+0*i),
         (5+3*cos(vector3[1]*17+30*i))*sin(vector3[0]*17+0*i),
         3*sin(vector3[1]*17+30*i)]) {
             sphere(r=.2);
         }
     }
}
}
/////////////////////////////////////////////////end pi/2 arm

///////////////////////////////////////////pi/2 arm
for(i=[0:11])
{
for(n=[85:115])
{
         vector1 = [[0.04752040412286069, 0.012341841758829977],
[-0.010460937720873763, -0.04959929805954917],
[-0.04278985975672278, 0.02918088264600642],
[0.04265763078864078, 0.027541102020434843],
[0.008676907311940069, -0.05120796598674859],
[-0.05280532020544901, 0.00902551095506509],
[0.025032287160784896, 0.046460451057862104],
[0.035519387832562616, -0.03957110968876154],
[-0.049955679877267234, -0.023553726881323858],
[-0.010329415859573057, 0.054185592642325114],
[0.05448823434467294, -0.0046612479015817505],
[-0.01857852356889536, -0.053403532542332835],
[-0.04989699001442871, 0.028959558223495104],
[0.037388271055238696, 0.042941887714677864],
[0.03514603545209613, -0.04570738233589845],
[-0.052222664217751256, -0.028994206455773143],
[-0.02311390646342582, 0.055350904617720534],
[0.05726857820829848, 0.016001826458251593],
[0.009759487793936716, -0.06016064494335141],
[-0.062462984622894915, -0.006407801651112502],
[-0.004190314785311469, 0.0625633937858233],
[0.06250823945689082, 0.0013194612536940459],
[-0.00029274220741125345, -0.06427176376916999],
[-0.06603670229501166, -0.0012643069247615588],
[-0.0041832437174995594, 0.06590659464727334],
[0.06561738797376805, 0.006653167704184223],
[0.010563468204145856, -0.0668123984339733],
[-0.06732858638423948, -0.01776605787731197],
[-0.02632558546357515, 0.06491098829936263],
[0.06094836189759326, 0.034192855511056656],
[0.04287966231793346, -0.05678562427674808],
[-0.05005396771985209, -0.05369132500227571],
[-0.06397477892107173, 0.038475094177922435],
[0.02368383452906224, 0.07082098677651986],
[0.07481331166309914, -0.007648066945313725],
[0.010900758138771803, -0.0764057161343312],
[-0.07237803590869267, -0.03261600738901069],
[-0.05374718643798941, 0.05982689054263142],
[0.04022518346135914, 0.06989679821350908],
[0.07994832110807576, -0.016088093485556322],
[0.01241608797085466, -0.08278876904810215],
[-0.07425045466527463, -0.04359030463302589],
[-0.0706753227795954, 0.051656978792802004],
[0.018364270214195802, 0.08620692322835793],
[0.0868928168061089, 0.019410788250351918],
[0.05635499624700542, -0.07148142451014809],
[-0.03870914652249516, -0.08533718188749843],
[-0.09572458050312888, -0.007794438049019317],
[-0.0557815326474632, 0.07997024141829263],
[0.04030650074119558, 0.08990014194649526],
[0.09913778493591636, 0.013067333316327354],
[0.06622408559202606, -0.07811196479733432],
[-0.027980215331551678, -0.10165367086337807],
[-0.1014747728477379, -0.03794547119881372],
[-0.09348729464745469, 0.05914736092591115],
[-0.011361084653324291, 0.11183812983280794],
[0.08117303005309091, 0.08040935472940945],
[0.1161917862845735, -0.010985610952514192],
[0.06996397335772178, -0.09741810124407069],
[-0.025312301446134902, -0.1210375890560449],
[-0.10789742374125529, -0.06772527328848509],
[-0.12761863186854808, 0.02871136374329864],
[-0.07412388255144221, 0.1114944759371513],
[0.02169050051289735, 0.1351514404085284],
[0.10876009401430282, 0.0884237029873778],
[0.1439860325326731, -0.004029801545982051],
[0.11190884051092655, -0.09774690589732242],
[0.028291342315273763, -0.15106346430556927],
[-0.07062723951847474, -0.14259798192120396],
[-0.14548085626810142, -0.07721535339878982],
[-0.1691936821751923, 0.019408666930008367],
[-0.1349386012673912, 0.11292495295549167],
[-0.05547535541120933, 0.17312095323790241],
[0.043836377792878814, 0.18281962984865713],
[0.13448393160708827, 0.14089314747176312],
[0.19316813759132218, 0.05997043321921229],
[0.20689944417518377, -0.03912704663017641],
[0.174298286028578, -0.13379662381577495],
[0.10378630491543665, -0.20499025586598008],
[0.009999196992758946, -0.2404721670391399],
[-0.09023813898790248, -0.23581445467146409],
[-0.18133399850138412, -0.19357684531084804],
[-0.25122938250133076, -0.12139892062123117],
[-0.29244592966991345, -0.029702020343740976],
[-0.30208167377714257, 0.07042500697905539],
[-0.28108625923015157, 0.1688528567066604],
[-0.233179774804763, 0.2574165668367131],
[-0.16369875537859171, 0.33035675263644904],
[-0.07857158420510557, 0.3842976863324836],
[0.016462860079585195, 0.41795101936949497],
[0.1163791695815879, 0.4316526274685467],
[0.2171496640752639, 0.42687470694806917],
[0.3158313651373149, 0.4057767619178062],
[0.4105271759844956, 0.37083727235649466],
[0.5002660975848803, 0.3245840035855202],
[0.5848413012049721, 0.2694221793210889],
[0.6646486181498115, 0.20753943945176795],
[0.740528204412533, 0.14088326919002997],
[0.8136306259637174, 0.07118123363990386],
[0.8852976900455575, 0.0],
[0.9569647541273976, -0.07118123363990386],
[1.0300671756785817, -0.14088326919003002],
[1.1059467619413033, -0.20753943945176795],
[1.1857540788861427, -0.26942217932108875],
[1.2703292825062347, -0.32458400358552014],
[1.3600682041066192, -0.3708372723564947],
[1.4547640149538, -0.4057767619178062],
[1.553445716015851, -0.4268747069480693],
[1.654216210509527, -0.4316526274685467],
[1.7541325200115296, -0.41795101936949497],
[1.8491669642962205, -0.38429768633248373],
[1.9342941354697065, -0.33035675263644915],
[2.003775154895878, -0.2574165668367131],
[2.0516816393212665, -0.1688528567066605],
[2.072677053868257, -0.07042500697905552],
[2.0630413097610285, 0.02970202034374103],
[2.0218247625924457, 0.12139892062123103],
[1.951929378592499, 0.19357684531084818],
[1.860833519079017, 0.2358144546714639],
[1.7605961830983559, 0.2404721670391401],
[1.6668090751756781, 0.20499025586597996],
[1.596297094062537, 0.13379662381577506],
[1.563695935915931, 0.03912704663017641],
[1.5774272424997928, -0.05997043321921225],
[1.6361114484840265, -0.14089314747176307],
[1.7267590022982362, -0.18281962984865707],
[1.826070735502324, -0.17312095323790233],
[1.9055339813585062, -0.11292495295549154],
[1.9397890622663072, -0.0194086669300082],
[1.9160762363592163, 0.07721535339878982],
[1.8412226196095896, 0.142597981921204],
[1.742304037775841, 0.15106346430556938],
[1.6586865395801884, 0.09774690589732249],
[1.6266093475584418, 0.004029801545982092],
[1.6618352860768122, -0.08842370298737778],
[1.7489048795782174, -0.13515144040852822],
[1.8447192626425573, -0.11149447593715123],
[1.8982140119596629, -0.028711363743298635],
[1.87849280383237, 0.06772527328848488],
[1.7959076815372497, 0.12103758905604489],
[1.700631406733393, 0.09741810124407069],
[1.6544035938065413, 0.010985610952514158],
[1.689422350038024, -0.08040935472940935],
[1.7819564647444393, -0.11183812983280794],
[1.8640826747385697, -0.05914736092591122],
[1.8720701529388528, 0.03794547119881386],
[1.7985755954226665, 0.10165367086337818],
[1.7043712944990888, 0.0781119647973344],
[1.6714575951551984, -0.013067333316327367],
[1.7302888793499194, -0.0899001419464952],
[1.826376912738578, -0.07997024141829256],
[1.8663199605942438, 0.007794438049019359],
[1.8093045266136099, 0.08533718188749839],
[1.7142403838441092, 0.07148142451014816],
[1.683702563285006, -0.019410788250351807],
[1.7522311098769188, -0.08620692322835788],
[1.8412707028707103, -0.051656978792801955],
[1.8448458347563896, 0.04359030463302582],
[1.7581792921202601, 0.08278876904810217],
[1.6906470589830391, 0.016088093485556287],
[1.7303701966297558, -0.06989679821350925],
[1.8243425665291042, -0.05982689054263146],
[1.8429734159998077, 0.032616007389010826],
[1.759694621952343, 0.07640571613433111],
[1.6957820684280156, 0.007648066945313836],
[1.7469115455620527, -0.07082098677651982],
[1.8345701590121863, -0.0384750941779225],
[1.8206493478109669, 0.05369132500227569],
[1.7277157177731812, 0.05678562427674816],
[1.7096470181935215, -0.03419285551105666],
[1.79692096555469, -0.0649109882993627],
[1.8379239664753544, 0.01776605787731189],
[1.760031911886969, 0.06681239843397324],
[1.704977992117347, -0.006653167704184448],
[1.7747786238086145, -0.06590659464727322],
[1.8366320823861266, 0.001264306924761649],
[1.7708881222985262, 0.0642717637691701],
[1.708087140634224, -0.0013194612536941985],
[1.7747856948764262, -0.06256339378582343],
[1.8330583647140097, 0.0064078016511124325],
[1.760835892297178, 0.06016064494335149],
[1.7133268018828165, -0.016001826458251545],
[1.7937092865545408, -0.05535090461772063],
[1.8228180443088662, 0.02899420645577311],
[1.7354493446390187, 0.04570738233589844],
[1.733207109035876, -0.04294188771467777],
[1.8204923701055435, -0.028959558223495163],
[1.7891739036600103, 0.05340353254233288],
[1.7161071457464419, 0.004661247901581733],
[1.7809247959506878, -0.05418559264232525],
[1.820551059968382, 0.023553726881323955],
[1.7350759922585524, 0.03957110968876165],
[1.7455630929303299, -0.04646045105786212],
[1.8234007002965638, -0.009025510955064875],
[1.761918472779175, 0.051207965986748594],
[1.7279377493024741, -0.027541102020434916],
[1.8133852398478378, -0.02918088264600638],
[1.7810563178119885, 0.04959929805954921],
[1.7230749759682542, -0.012341841758829908]];
     hull()
     {
         vector2 = vector1[n];
         vector3 = vector1[(n+1)]; //change v this for height
         // translate (7+r*cos(phi))*cos(theta), (7+r*cos(phi))*sin(theta), r*cos(theta)
         //vector2[0] is theta, vector2[1] is phi, same for vector3
         translate([(5+3*cos(vector2[1]*17+30*i))*cos(vector2[0]*17+0),
         (5+3*cos(vector2[1]*17+30*i))*sin(vector2[0]*17+0),
         3*sin(vector2[1]*17+30*i)])
         {
             sphere(r=.2);
         }
         translate([(5+3*cos(vector3[1]*17+30*i))*cos(vector3[0]*17+0),
         (5+3*cos(vector3[1]*17+30*i))*sin(vector3[0]*17+0),
         3*sin(vector3[1]*17+30*i)]) {
             sphere(r=.2);
         }
     }
}
}/////////////////////////////////////////////////end pi/2 arm

}}}