BeginPackage["TUBES`"]

tubecurve[eightknot][r_][t_,theta_]:={Cos[2*t] +
 10*(Cos[t] +
 Cos[3*t]) +
 Cos[4*t] +
 r*(Cos[theta]*((144*(Cos[t] +
 5*Cos[3*t])*(-
460 -
 98*Cos[t] -
 160*Cos[2*t] -
 11*Cos[3*t] +
 20*Cos[4*t] -
 Cos[5*t] -
 10*Cos[7*t]))/((2478 +
 399*Cos[t] +
 528*Cos[2*t] +
 40*Cos[3*t] -
 244*Cos[4*t] -
 222*Cos[5*t] +
 6*Cos[6*t] -
 240*Cos[7*t] +
 240*Cos[8*t] -
 384*Cos[10*t] -
 121*Cos[11*t] +
 144*Cos[12*t] +
 264*Sin[t/2] +
 352*Sin[(3*t)/2] +
 32*Sin[(7*t)/2] -
 32*Sin[(9*t)/2] -
 24*Sin[(11*t)/2] +
 24*Sin[(13*t)/2] +
 352*Sin[(19*t)/2] -
 264*Sin[(23*t)/2])^(1/2)*(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2)) +
 (2^(1/2)*(16*Cos[4*t] -
 12*Cos[6*t] -
 Sin[t/2] +
 11*Sin[(11*t)/2])*(2*(5*Cos[t] +
 2*Cos[2*t] +
 45*Cos[3*t] +
 8*Cos[4*t])*(-
16*Cos[4*t] +
 12*Cos[6*t] +
 Sin[t/2] -
 11*Sin[(11*t)/2]) +
 (5*Sin[t] +
 Sin[2*t] +
 15*Sin[3*t] +
 2*Sin[4*t])*(-
Cos[t/2] +
 121*Cos[(11*t)/2] -
 128*Sin[4*t] +
 144*Sin[6*t])))/((1239/4 +
 (399*Cos[t])/8 +
 66*Cos[2*t] +
 5*Cos[3*t] -
 (61*Cos[4*t])/2 -
 (111*Cos[5*t])/4 +
 (3*Cos[6*t])/4 -
 30*Cos[7*t] +
 30*Cos[8*t] -
 48*Cos[10*t] -
 (121*Cos[11*t])/8 +
 18*Cos[12*t] +
 33*Sin[t/2] +
 44*Sin[(3*t)/2] +
 4*Sin[(7*t)/2] -
 4*Sin[(9*t)/2] -
 3*Sin[(11*t)/2] +
 3*Sin[(13*t)/2] +
 44*Sin[(19*t)/2] -
 33*Sin[(23*t)/2])^(1/2)*(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2))) +
 (2^(3/2)*(6*(Sin[t] +
 15*Sin[3*t])*(16*Cos[4*t] -
 12*Cos[6*t] -
 Sin[t/2] +
 11*Sin[(11*t)/2]) +
 3*(Cos[t] +
 5*Cos[3*t])*(-
Cos[t/2] +
 121*Cos[(11*t)/2] -
 128*Sin[4*t] +
 144*Sin[6*t]))*Sin[theta])/(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2)), 6*Sin[t] +
 10*Sin[3*t] +
 r*((3*Cos[theta]*(-
3412*Cos[t/2] -
 11124*Cos[(3*t)/2] -
 7200*Cos[(5*t)/2] +
 5968*Cos[(7*t)/2] +
 8052*Cos[(9*t)/2] -
 124*Cos[(11*t)/2] -
 26796*Cos[(13*t)/2] -
 348*Cos[(15*t)/2] +
 18992*Cos[(17*t)/2] -
 60*Cos[(19*t)/2] +
 924*Cos[(21*t)/2] -
 3652*Cos[(25*t)/2] +
 7260*Cos[(29*t)/2] -
 41120*Sin[t] -
 26374*Sin[2*t] -
 149784*Sin[3*t] -
 27089*Sin[4*t] +
 5800*Sin[5*t] -
 3426*Sin[6*t] -
 25856*Sin[7*t] -
 10375*Sin[8*t] +
 9792*Sin[9*t] -
 2773*Sin[10*t] +
 1344*Sin[11*t] -
 1089*Sin[12*t] -
 6240*Sin[13*t] -
 3025*Sin[14*t] +
 4320*Sin[15*t]))/((2478 +
 399*Cos[t] +
 528*Cos[2*t] +
 40*Cos[3*t] -
 244*Cos[4*t] -
 222*Cos[5*t] +
 6*Cos[6*t] -
 240*Cos[7*t] +
 240*Cos[8*t] -
 384*Cos[10*t] -
 121*Cos[11*t] +
 144*Cos[12*t] +
 264*Sin[t/2] +
 352*Sin[(3*t)/2] +
 32*Sin[(7*t)/2] -
 32*Sin[(9*t)/2] -
 24*Sin[(11*t)/2] +
 24*Sin[(13*t)/2] +
 352*Sin[(19*t)/2] -
 264*Sin[(23*t)/2])^(1/2)*(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2)) +
 (2^(3/2)*(2*(5*Cos[t] +
 2*Cos[2*t] +
 45*Cos[3*t] +
 8*Cos[4*t])*(-
16*Cos[4*t] +
 12*Cos[6*t] +
 Sin[t/2] -
 11*Sin[(11*t)/2]) +
 (5*Sin[t] +
 Sin[2*t] +
 15*Sin[3*t] +
 2*Sin[4*t])*(-
Cos[t/2] +
 121*Cos[(11*t)/2] -
 128*Sin[4*t] +
 144*Sin[6*t]))*Sin[theta])/(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2)), 4*Sin[(5*t)/2]*Sin[3*t] +
 4*Sin[4*t] -
 2*Sin[6*t] +
 r*(Cos[theta]*((36*(Cos[t] +
 5*Cos[3*t])*(-
3*Cos[t/2] +
 Cos[(3*t)/2] +
 900*Cos[(5*t)/2] +
 25*Cos[(7*t)/2] +
 143*Cos[(9*t)/2] +
 99*Cos[(13*t)/2] +
 275*Cos[(17*t)/2] -
 1120*Sin[t] +
 920*Sin[3*t] +
 72*Sin[5*t] -
 40*Sin[7*t] +
 360*Sin[9*t]))/((2478 +
 399*Cos[t] +
 528*Cos[2*t] +
 40*Cos[3*t] -
 244*Cos[4*t] -
 222*Cos[5*t] +
 6*Cos[6*t] -
 240*Cos[7*t] +
 240*Cos[8*t] -
 384*Cos[10*t] -
 121*Cos[11*t] +
 144*Cos[12*t] +
 264*Sin[t/2] +
 352*Sin[(3*t)/2] +
 32*Sin[(7*t)/2] -
 32*Sin[(9*t)/2] -
 24*Sin[(11*t)/2] +
 24*Sin[(13*t)/2] +
 352*Sin[(19*t)/2] -
 264*Sin[(23*t)/2])^(1/2)*(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2)) +
 (2^(3/2)*(5*Sin[t] +
 Sin[2*t] +
 15*Sin[3*t] +
 2*Sin[4*t])*(2*(5*Cos[t] +
 2*Cos[2*t] +
 45*Cos[3*t] +
 8*Cos[4*t])*(-
16*Cos[4*t] +
 12*Cos[6*t] +
 Sin[t/2] -
 11*Sin[(11*t)/2]) +
 (5*Sin[t] +
 Sin[2*t] +
 15*Sin[3*t] +
 2*Sin[4*t])*(-
Cos[t/2] +
 121*Cos[(11*t)/2] -
 128*Sin[4*t] +
 144*Sin[6*t])))/((1239/4 +
 (399*Cos[t])/8 +
 66*Cos[2*t] +
 5*Cos[3*t] -
 (61*Cos[4*t])/2 -
 (111*Cos[5*t])/4 +
 (3*Cos[6*t])/4 -
 30*Cos[7*t] +
 30*Cos[8*t] -
 48*Cos[10*t] -
 (121*Cos[11*t])/8 +
 18*Cos[12*t] +
 33*Sin[t/2] +
 44*Sin[(3*t)/2] +
 4*Sin[(7*t)/2] -
 4*Sin[(9*t)/2] -
 3*Sin[(11*t)/2] +
 3*Sin[(13*t)/2] +
 44*Sin[(19*t)/2] -
 33*Sin[(23*t)/2])^(1/2)*(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2))) +
 (3*2^(5/2)*(460 +
 98*Cos[t] +
 160*Cos[2*t] +
 11*Cos[3*t] -
 20*Cos[4*t] +
 Cos[5*t] +
 10*Cos[7*t])*Sin[theta])/(125380612 +
 43325892*Cos[t] +
 22431024*Cos[2*t] -
 535409*Cos[3*t] -
 17514048*Cos[4*t] -
 5841777*Cos[5*t] -
 8731980*Cos[6*t] +
 873507*Cos[7*t] +
 6043398*Cos[8*t] +
 8953862*Cos[9*t] +
 17781234*Cos[10*t] +
 9892014*Cos[11*t] -
 10788516*Cos[12*t] +
 569940*Cos[13*t] -
 3336210*Cos[14*t] -
 701269*Cos[15*t] +
 322938*Cos[16*t] +
 220236*Cos[17*t] -
 90468*Cos[18*t] +
 203004*Cos[19*t] +
 9216*Cos[20*t] +
 34726128*Sin[t/2] +
 38029232*Sin[(3*t)/2] +
 20535840*Sin[(5*t)/2] +
 12877152*Sin[(7*t)/2] -
 2758864*Sin[(9*t)/2] -
 372528*Sin[(11*t)/2] -
 4020720*Sin[(13*t)/2] -
 14549440*Sin[(15*t)/2] -
 3289056*Sin[(17*t)/2] -
 8662896*Sin[(19*t)/2] +
 1986096*Sin[(21*t)/2] +
 22360080*Sin[(23*t)/2] +
 1993536*Sin[(25*t)/2] +
 4841056*Sin[(27*t)/2] +
 300912*Sin[(29*t)/2] -
 830016*Sin[(31*t)/2] -
 435600*Sin[(33*t)/2] -
 27456*Sin[(35*t)/2] -
 300960*Sin[(37*t)/2] -
 12672*Sin[(39*t)/2])^(1/2))}

tubecurve[helix[a_,b_,c_]][r_][t_,theta_]:=
{a*Cos[t] + r*((-2*a*(b^2 + c^2)*Cos[t]*Cos[theta])/
       ((a^2 + b^2 + 2*c^2 - a^2*Cos[2*t] + 
            b^2*Cos[2*t])^(1/2)*
         (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
            a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2)) + 
       (2^(1/2)*b*c*Sin[t]*Sin[theta])/
       (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
          a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2)), 
  b*Sin[t] + r*((-2*b*(a^2 + c^2)*Cos[theta]*Sin[t])/
       ((a^2 + b^2 + 2*c^2 - a^2*Cos[2*t] + 
            b^2*Cos[2*t])^(1/2)*
         (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
            a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2)) \
        (2^(1/2)*a*c*Cos[t]*Sin[theta]) -
       (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
          a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2)), 
  c*t + r*(((-a^2 + b^2)*c*Cos[theta]*Sin[2*t])/
       ((a^2 + b^2 + 2*c^2 - a^2*Cos[2*t] + 
            b^2*Cos[2*t])^(1/2)*
         (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
            a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2)) + 
      (2^(1/2)*a*b*Sin[theta])/
       (2*a^2*b^2 + a^2*c^2 + b^2*c^2 + 
          a^2*c^2*Cos[2*t] - b^2*c^2*Cos[2*t])^(1/2))}

tubecurve[torusknot[a_,b_,c_][p_,q_]][r_][t_,theta_]:=
        {Cos[p*t]*(a + b*Cos[q*t]) + 
         r*(Cos[theta]*((-2*p*
            (2*a^2*p^2 + b^2*p^2 + 3*b^2*q^2 + 
              4*a*b*p^2*Cos[q*t] + 
              2*a*b*q^2*Cos[q*t] + 
              b^2*p^2*Cos[2*q*t] - b^2*q^2*Cos[2*q*t])*
            (p*Cos[p*t]*(a + b*Cos[q*t]) - 
              b*q*Sin[p*t]*Sin[q*t]))/
          ((2*a^2*p^2 + b^2*p^2 + b^2*q^2 + c^2*q^2 + 
               4*a*b*p^2*Cos[q*t] + 
               b^2*p^2*Cos[2*q*t] - 
               b^2*q^2*Cos[2*q*t] + c^2*q^2*Cos[2*q*t]
               )^(1/2)*
            (8*a^4*p^6 + 24*a^2*b^2*p^6 + 3*b^4*p^6 + 
               40*a^2*b^2*p^4*q^2 + 10*b^4*p^4*q^2 + 
               4*a^2*c^2*p^4*q^2 + 3*b^2*c^2*p^4*q^2 + 
               4*a^2*b^2*p^2*q^4 + 19*b^4*p^2*q^4 + 
               4*a^2*c^2*p^2*q^4 + 9*b^2*c^2*p^2*q^4 + 
               8*b^2*c^2*q^6 + 32*a^3*b*p^6*Cos[q*t] + 
               24*a*b^3*p^6*Cos[q*t] + 
               16*a^3*b*p^4*q^2*Cos[q*t] + 
               52*a*b^3*p^4*q^2*Cos[q*t] + 
               12*a*b*c^2*p^4*q^2*Cos[q*t] + 
               20*a*b^3*p^2*q^4*Cos[q*t] + 
               12*a*b*c^2*p^2*q^4*Cos[q*t] + 
               24*a^2*b^2*p^6*Cos[2*q*t] + 
               4*b^4*p^6*Cos[2*q*t] + 
               8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
               8*b^4*p^4*q^2*Cos[2*q*t] + 
               4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
               12*b^4*p^2*q^4*Cos[2*q*t] - 
               4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*a*b^3*p^6*Cos[3*q*t] - 
               4*a*b^3*p^4*q^2*Cos[3*q*t] + 
               4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
               4*a*b^3*p^2*q^4*Cos[3*q*t] + 
               4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
               b^4*p^6*Cos[4*q*t] - 
               2*b^4*p^4*q^2*Cos[4*q*t] + 
               b^2*c^2*p^4*q^2*Cos[4*q*t] + 
               b^4*p^2*q^4*Cos[4*q*t] - 
               b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2)) + 
         (4*c*q*Cos[q*t]*
            (c*q^2*Sin[q*t]*
               (-(p*(a + b*Cos[q*t])*Sin[p*t]) - 
                 b*q*Cos[p*t]*Sin[q*t]) + 
              c*q*Cos[q*t]*
               (-(b*q^2*Cos[p*t]*Cos[q*t]) - 
                 p^2*Cos[p*t]*(a + b*Cos[q*t]) + 
                 2*b*p*q*Sin[p*t]*Sin[q*t])))/
          ((2*a^2*p^2 + b^2*p^2 + b^2*q^2 + c^2*q^2 + 
               4*a*b*p^2*Cos[q*t] + 
               b^2*p^2*Cos[2*q*t] - 
               b^2*q^2*Cos[2*q*t] + c^2*q^2*Cos[2*q*t])
              ^(1/2)*(8*a^4*p^6 + 24*a^2*b^2*p^6 + 
               3*b^4*p^6 + 40*a^2*b^2*p^4*q^2 + 
               10*b^4*p^4*q^2 + 4*a^2*c^2*p^4*q^2 + 
               3*b^2*c^2*p^4*q^2 + 4*a^2*b^2*p^2*q^4 + 
               19*b^4*p^2*q^4 + 4*a^2*c^2*p^2*q^4 + 
               9*b^2*c^2*p^2*q^4 + 8*b^2*c^2*q^6 + 
               32*a^3*b*p^6*Cos[q*t] + 
               24*a*b^3*p^6*Cos[q*t] + 
               16*a^3*b*p^4*q^2*Cos[q*t] + 
               52*a*b^3*p^4*q^2*Cos[q*t] + 
               12*a*b*c^2*p^4*q^2*Cos[q*t] + 
               20*a*b^3*p^2*q^4*Cos[q*t] + 
               12*a*b*c^2*p^2*q^4*Cos[q*t] + 
               24*a^2*b^2*p^6*Cos[2*q*t] + 
               4*b^4*p^6*Cos[2*q*t] + 
               8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
               8*b^4*p^4*q^2*Cos[2*q*t] + 
               4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
               12*b^4*p^2*q^4*Cos[2*q*t] - 
               4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*a*b^3*p^6*Cos[3*q*t] - 
               4*a*b^3*p^4*q^2*Cos[3*q*t] + 
               4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
               4*a*b^3*p^2*q^4*Cos[3*q*t] + 
               4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
               b^4*p^6*Cos[4*q*t] - 
               2*b^4*p^4*q^2*Cos[4*q*t] + 
               b^2*c^2*p^4*q^2*Cos[4*q*t] + 
               b^4*p^2*q^4*Cos[4*q*t] - 
               b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2))) + 
      (2^(3/2)*(-(c*q*Cos[q*t]*
              (-(b*q^2*Cos[q*t]*Sin[p*t]) - 
                p^2*(a + b*Cos[q*t])*Sin[p*t] - 
                2*b*p*q*Cos[p*t]*Sin[q*t])) - 
           c*q^2*Sin[q*t]*
            (p*Cos[p*t]*(a + b*Cos[q*t]) - 
              b*q*Sin[p*t]*Sin[q*t]))*Sin[theta])/
       (8*a^4*p^6 + 24*a^2*b^2*p^6 + 3*b^4*p^6 + 
          40*a^2*b^2*p^4*q^2 + 10*b^4*p^4*q^2 + 
          4*a^2*c^2*p^4*q^2 + 3*b^2*c^2*p^4*q^2 + 
          4*a^2*b^2*p^2*q^4 + 19*b^4*p^2*q^4 + 
          4*a^2*c^2*p^2*q^4 + 9*b^2*c^2*p^2*q^4 + 
          8*b^2*c^2*q^6 + 32*a^3*b*p^6*Cos[q*t] + 
          24*a*b^3*p^6*Cos[q*t] + 
          16*a^3*b*p^4*q^2*Cos[q*t] + 
          52*a*b^3*p^4*q^2*Cos[q*t] + 
          12*a*b*c^2*p^4*q^2*Cos[q*t] + 
          20*a*b^3*p^2*q^4*Cos[q*t] + 
          12*a*b*c^2*p^2*q^4*Cos[q*t] + 
          24*a^2*b^2*p^6*Cos[2*q*t] + 
          4*b^4*p^6*Cos[2*q*t] + 
          8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
          8*b^4*p^4*q^2*Cos[2*q*t] + 
          4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
          12*b^4*p^2*q^4*Cos[2*q*t] - 
          4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*a*b^3*p^6*Cos[3*q*t] - 
          4*a*b^3*p^4*q^2*Cos[3*q*t] + 
          4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
          4*a*b^3*p^2*q^4*Cos[3*q*t] + 
          4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
          b^4*p^6*Cos[4*q*t] - 
          2*b^4*p^4*q^2*Cos[4*q*t] + 
          b^2*c^2*p^4*q^2*Cos[4*q*t] + 
          b^4*p^2*q^4*Cos[4*q*t] - 
          b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2)), 
  (a + b*Cos[q*t])*Sin[p*t] + 
   r*(Cos[theta]*((2*p*
            (2*a^2*p^2 + b^2*p^2 + 3*b^2*q^2 + 
              4*a*b*p^2*Cos[q*t] + 
              2*a*b*q^2*Cos[q*t] + 
              b^2*p^2*Cos[2*q*t] - b^2*q^2*Cos[2*q*t])*
            (-(p*(a + b*Cos[q*t])*Sin[p*t]) - 
              b*q*Cos[p*t]*Sin[q*t]))/
          ((2*a^2*p^2 + b^2*p^2 + b^2*q^2 + c^2*q^2 + 
               4*a*b*p^2*Cos[q*t] + 
               b^2*p^2*Cos[2*q*t] - 
               b^2*q^2*Cos[2*q*t] + c^2*q^2*Cos[2*q*t]
               )^(1/2)*
            (8*a^4*p^6 + 24*a^2*b^2*p^6 + 3*b^4*p^6 + 
               40*a^2*b^2*p^4*q^2 + 10*b^4*p^4*q^2 + 
               4*a^2*c^2*p^4*q^2 + 3*b^2*c^2*p^4*q^2 + 
               4*a^2*b^2*p^2*q^4 + 19*b^4*p^2*q^4 + 
               4*a^2*c^2*p^2*q^4 + 9*b^2*c^2*p^2*q^4 + 
               8*b^2*c^2*q^6 + 32*a^3*b*p^6*Cos[q*t] + 
               24*a*b^3*p^6*Cos[q*t] + 
               16*a^3*b*p^4*q^2*Cos[q*t] + 
               52*a*b^3*p^4*q^2*Cos[q*t] + 
               12*a*b*c^2*p^4*q^2*Cos[q*t] + 
               20*a*b^3*p^2*q^4*Cos[q*t] + 
               12*a*b*c^2*p^2*q^4*Cos[q*t] + 
               24*a^2*b^2*p^6*Cos[2*q*t] + 
               4*b^4*p^6*Cos[2*q*t] + 
               8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
               8*b^4*p^4*q^2*Cos[2*q*t] + 
               4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
               12*b^4*p^2*q^4*Cos[2*q*t] - 
               4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*a*b^3*p^6*Cos[3*q*t] - 
               4*a*b^3*p^4*q^2*Cos[3*q*t] + 
               4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
               4*a*b^3*p^2*q^4*Cos[3*q*t] + 
               4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
               b^4*p^6*Cos[4*q*t] - 
               2*b^4*p^4*q^2*Cos[4*q*t] + 
               b^2*c^2*p^4*q^2*Cos[4*q*t] + 
               b^4*p^2*q^4*Cos[4*q*t] - 
               b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2)) - 
         (4*c*q*Cos[q*t]*
            (-(c*q*Cos[q*t]*
                 (-(b*q^2*Cos[q*t]*Sin[p*t]) - 
                   p^2*(a + b*Cos[q*t])*Sin[p*t] - 
                   2*b*p*q*Cos[p*t]*Sin[q*t])) - 
              c*q^2*Sin[q*t]*
               (p*Cos[p*t]*(a + b*Cos[q*t]) - 
                 b*q*Sin[p*t]*Sin[q*t])))/
          ((2*a^2*p^2 + b^2*p^2 + b^2*q^2 + c^2*q^2 + 
               4*a*b*p^2*Cos[q*t] + 
               b^2*p^2*Cos[2*q*t] - 
               b^2*q^2*Cos[2*q*t] + c^2*q^2*Cos[2*q*t])
              ^(1/2)*(8*a^4*p^6 + 24*a^2*b^2*p^6 + 
               3*b^4*p^6 + 40*a^2*b^2*p^4*q^2 + 
               10*b^4*p^4*q^2 + 4*a^2*c^2*p^4*q^2 + 
               3*b^2*c^2*p^4*q^2 + 4*a^2*b^2*p^2*q^4 + 
               19*b^4*p^2*q^4 + 4*a^2*c^2*p^2*q^4 + 
               9*b^2*c^2*p^2*q^4 + 8*b^2*c^2*q^6 + 
               32*a^3*b*p^6*Cos[q*t] + 
               24*a*b^3*p^6*Cos[q*t] + 
               16*a^3*b*p^4*q^2*Cos[q*t] + 
               52*a*b^3*p^4*q^2*Cos[q*t] + 
               12*a*b*c^2*p^4*q^2*Cos[q*t] + 
               20*a*b^3*p^2*q^4*Cos[q*t] + 
               12*a*b*c^2*p^2*q^4*Cos[q*t] + 
               24*a^2*b^2*p^6*Cos[2*q*t] + 
               4*b^4*p^6*Cos[2*q*t] + 
               8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
               8*b^4*p^4*q^2*Cos[2*q*t] + 
               4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
               4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
               12*b^4*p^2*q^4*Cos[2*q*t] - 
               4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
               8*a*b^3*p^6*Cos[3*q*t] - 
               4*a*b^3*p^4*q^2*Cos[3*q*t] + 
               4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
               4*a*b^3*p^2*q^4*Cos[3*q*t] + 
               4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
               b^4*p^6*Cos[4*q*t] - 
               2*b^4*p^4*q^2*Cos[4*q*t] + 
               b^2*c^2*p^4*q^2*Cos[4*q*t] + 
               b^4*p^2*q^4*Cos[4*q*t] - 
               b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2))) + 
      (2^(3/2)*(c*q^2*Sin[q*t]*
            (-(p*(a + b*Cos[q*t])*Sin[p*t]) - 
              b*q*Cos[p*t]*Sin[q*t]) + 
           c*q*Cos[q*t]*
            (-(b*q^2*Cos[p*t]*Cos[q*t]) - 
              p^2*Cos[p*t]*(a + b*Cos[q*t]) + 
              2*b*p*q*Sin[p*t]*Sin[q*t]))*Sin[theta])/
       (8*a^4*p^6 + 24*a^2*b^2*p^6 + 3*b^4*p^6 + 
          40*a^2*b^2*p^4*q^2 + 10*b^4*p^4*q^2 + 
          4*a^2*c^2*p^4*q^2 + 3*b^2*c^2*p^4*q^2 + 
          4*a^2*b^2*p^2*q^4 + 19*b^4*p^2*q^4 + 
          4*a^2*c^2*p^2*q^4 + 9*b^2*c^2*p^2*q^4 + 
          8*b^2*c^2*q^6 + 32*a^3*b*p^6*Cos[q*t] + 
          24*a*b^3*p^6*Cos[q*t] + 
          16*a^3*b*p^4*q^2*Cos[q*t] + 
          52*a*b^3*p^4*q^2*Cos[q*t] + 
          12*a*b*c^2*p^4*q^2*Cos[q*t] + 
          20*a*b^3*p^2*q^4*Cos[q*t] + 
          12*a*b*c^2*p^2*q^4*Cos[q*t] + 
          24*a^2*b^2*p^6*Cos[2*q*t] + 
          4*b^4*p^6*Cos[2*q*t] + 
          8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
          8*b^4*p^4*q^2*Cos[2*q*t] + 
          4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
          12*b^4*p^2*q^4*Cos[2*q*t] - 
          4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*a*b^3*p^6*Cos[3*q*t] - 
          4*a*b^3*p^4*q^2*Cos[3*q*t] + 
          4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
          4*a*b^3*p^2*q^4*Cos[3*q*t] + 
          4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
          b^4*p^6*Cos[4*q*t] - 
          2*b^4*p^4*q^2*Cos[4*q*t] + 
          b^2*c^2*p^4*q^2*Cos[4*q*t] + 
          b^4*p^2*q^4*Cos[4*q*t] - 
          b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2)), 
  c*Sin[q*t] + r*((-4*c*q^2*
         (a^2*p^2 + b^2*q^2 + a*b*p^2*Cos[q*t])*
         Cos[theta]*Sin[q*t])/
       ((2*a^2*p^2 + b^2*p^2 + b^2*q^2 + c^2*q^2 + 
            4*a*b*p^2*Cos[q*t] + b^2*p^2*Cos[2*q*t] - 
            b^2*q^2*Cos[2*q*t] + c^2*q^2*Cos[2*q*t])^
          (1/2)*(8*a^4*p^6 + 24*a^2*b^2*p^6 + 
            3*b^4*p^6 + 40*a^2*b^2*p^4*q^2 + 
            10*b^4*p^4*q^2 + 4*a^2*c^2*p^4*q^2 + 
            3*b^2*c^2*p^4*q^2 + 4*a^2*b^2*p^2*q^4 + 
            19*b^4*p^2*q^4 + 4*a^2*c^2*p^2*q^4 + 
            9*b^2*c^2*p^2*q^4 + 8*b^2*c^2*q^6 + 
            32*a^3*b*p^6*Cos[q*t] + 
            24*a*b^3*p^6*Cos[q*t] + 
            16*a^3*b*p^4*q^2*Cos[q*t] + 
            52*a*b^3*p^4*q^2*Cos[q*t] + 
            12*a*b*c^2*p^4*q^2*Cos[q*t] + 
            20*a*b^3*p^2*q^4*Cos[q*t] + 
            12*a*b*c^2*p^2*q^4*Cos[q*t] + 
            24*a^2*b^2*p^6*Cos[2*q*t] + 
            4*b^4*p^6*Cos[2*q*t] + 
            8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
            8*b^4*p^4*q^2*Cos[2*q*t] + 
            4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
            4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
            4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
            12*b^4*p^2*q^4*Cos[2*q*t] - 
            4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
            8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
            8*a*b^3*p^6*Cos[3*q*t] - 
            4*a*b^3*p^4*q^2*Cos[3*q*t] + 
            4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
            4*a*b^3*p^2*q^4*Cos[3*q*t] + 
            4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
            b^4*p^6*Cos[4*q*t] - 
            2*b^4*p^4*q^2*Cos[4*q*t] + 
            b^2*c^2*p^4*q^2*Cos[4*q*t] + 
            b^4*p^2*q^4*Cos[4*q*t] - 
            b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2)) + 
      (2^(1/2)*p*(2*a^2*p^2 + b^2*p^2 + 3*b^2*q^2 + 
           4*a*b*p^2*Cos[q*t] + 2*a*b*q^2*Cos[q*t] + 
           b^2*p^2*Cos[2*q*t] - b^2*q^2*Cos[2*q*t])*
         Sin[theta])/
       (8*a^4*p^6 + 24*a^2*b^2*p^6 + 3*b^4*p^6 + 
          40*a^2*b^2*p^4*q^2 + 10*b^4*p^4*q^2 + 
          4*a^2*c^2*p^4*q^2 + 3*b^2*c^2*p^4*q^2 + 
          4*a^2*b^2*p^2*q^4 + 19*b^4*p^2*q^4 + 
          4*a^2*c^2*p^2*q^4 + 9*b^2*c^2*p^2*q^4 + 
          8*b^2*c^2*q^6 + 32*a^3*b*p^6*Cos[q*t] + 
          24*a*b^3*p^6*Cos[q*t] + 
          16*a^3*b*p^4*q^2*Cos[q*t] + 
          52*a*b^3*p^4*q^2*Cos[q*t] + 
          12*a*b*c^2*p^4*q^2*Cos[q*t] + 
          20*a*b^3*p^2*q^4*Cos[q*t] + 
          12*a*b*c^2*p^2*q^4*Cos[q*t] + 
          24*a^2*b^2*p^6*Cos[2*q*t] + 
          4*b^4*p^6*Cos[2*q*t] + 
          8*a^2*b^2*p^4*q^2*Cos[2*q*t] + 
          8*b^4*p^4*q^2*Cos[2*q*t] + 
          4*a^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*b^2*c^2*p^4*q^2*Cos[2*q*t] + 
          4*a^2*b^2*p^2*q^4*Cos[2*q*t] - 
          12*b^4*p^2*q^4*Cos[2*q*t] - 
          4*a^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*b^2*c^2*p^2*q^4*Cos[2*q*t] + 
          8*a*b^3*p^6*Cos[3*q*t] - 
          4*a*b^3*p^4*q^2*Cos[3*q*t] + 
          4*a*b*c^2*p^4*q^2*Cos[3*q*t] - 
          4*a*b^3*p^2*q^4*Cos[3*q*t] + 
          4*a*b*c^2*p^2*q^4*Cos[3*q*t] + 
          b^4*p^6*Cos[4*q*t] - 2*b^4*p^4*q^2*Cos[4*q*t] + 
          b^2*c^2*p^4*q^2*Cos[4*q*t] + 
          b^4*p^2*q^4*Cos[4*q*t] - 
          b^2*c^2*p^2*q^4*Cos[4*q*t])^(1/2))}

tubecurve[twicubic][r_][t_,theta_]:=
{t + r*(-((t*(2 + 9*t^2)*Cos[theta])/
((1 + 4*t^2 + 9*t^4)^(1/2)*(1 + 9*t^2 + 9*t^4)^(1/2))) + (6*t^2*Sin[theta])/
(4 + 36*t^2 + 36*t^4)^(1/2)),
t^2 + r*((1/((1 + 4*t^2 + 9*t^4)^(1/2)*(1 + 9*t^2 + 9*t^4)^(1/2)) -
(18*t^4)/((1 + 4*t^2 + 9*t^4)^(1/2)*(4 + 36*t^2 + 36*t^4)^(1/2)))*Cos[theta] -
(6*t*Sin[theta])/(4 + 36*t^2 + 36*t^4)^(1/2)),
t^3 + r*((3*t*(1 + 2*t^2)*Cos[theta])/
((1 + 4*t^2 + 9*t^4)^(1/2)*(1 + 9*t^2 + 9*t^4)^(1/2)) +
Sin[theta]/(1 + 9*t^2 + 9*t^4)^(1/2))}

EndPackage[]
