Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. // inputs
  2. length = 1;
  3. pitch = 1;
  4. alpha_i = Pi/3; // intermesh angle [0,Pi/2]
  5. alpha_f = alpha_i; // flight angle
  6. alpha_t = Pi/2 - alpha_f; // tip angle
  7. alpha_r = alpha_t; // root angle
  8.  
  9. // based on unit screw diameter
  10. Cd = Cos(alpha_i/2); // centerline distance
  11. Dr = 2*Cd-1; // root diameter
  12. Hc = 1-Cd; // channel depth
  13. Ih = Sin(alpha_i/2)/2; // intermesh height
  14.  
  15. lc = 0.1;
  16. offset_x = Cd/2; // from x=0
  17. offset_y = 0; // from y=0
  18.  
  19. // first screw
  20.  
  21. c1p0 = newp; // center point
  22. Point(c1p0) = {-offset_x+0, offset_y+0, 0, lc};
  23.  
  24. angle = alpha_t/2;
  25. xt1 = 1/2*Cos(angle);
  26. yt1 = 1/2*Sin(angle);
  27.  
  28. angle = angle + alpha_f;
  29. xr1 = Dr/2*Cos(angle);
  30. yr1 = Dr/2*Sin(angle);
  31.  
  32. angle = angle + alpha_r;
  33. xr2 = Dr/2*Cos(angle);
  34. yr2 = Dr/2*Sin(angle);
  35.  
  36. angle = angle + alpha_f;
  37. xt2 = 1/2*Cos(angle);
  38. yt2 = 1/2*Sin(angle);
  39.  
  40. angle = angle + alpha_t;
  41. xt3 = 1/2*Cos(angle);
  42. yt3 = 1/2*Sin(angle);
  43.  
  44. angle = angle + alpha_f;
  45. xr3 = Dr/2*Cos(angle);
  46. yr3 = Dr/2*Sin(angle);
  47.  
  48. angle = angle + alpha_r;
  49. xr4 = Dr/2*Cos(angle);
  50. yr4 = Dr/2*Sin(angle);
  51.  
  52. angle = angle + alpha_f;
  53. xt4 = 1/2*Cos(angle);
  54. yt4 = 1/2*Sin(angle);
  55.  
  56. c1p1 = newp; Point(c1p1) = {-offset_x+xt1, offset_y+yt1, 0, lc};
  57. c1p2 = newp; Point(c1p2) = {-offset_x+xr1, offset_y+yr1, 0, lc};
  58. c1p3 = newp; Point(c1p3) = {-offset_x+xr2, offset_y+yr2, 0, lc};
  59. c1p4 = newp; Point(c1p4) = {-offset_x+xt2, offset_y+yt2, 0, lc};
  60. c1p5 = newp; Point(c1p5) = {-offset_x+xt3, offset_y+yt3, 0, lc};
  61. c1p6 = newp; Point(c1p6) = {-offset_x+xr3, offset_y+yr3, 0, lc};
  62. c1p7 = newp; Point(c1p7) = {-offset_x+xr4, offset_y+yr4, 0, lc};
  63. c1p8 = newp; Point(c1p8) = {-offset_x+xt4, offset_y+yt4, 0, lc};
  64.  
  65. c1a = newc; Circle(c1a) = {c1p2,c1p0,c1p3};
  66. c1b = newc; Circle(c1b) = {c1p4,c1p0,c1p5};
  67. c1c = newc; Circle(c1c) = {c1p6,c1p0,c1p7};
  68. c1d = newc; Circle(c1d) = {c1p8,c1p0,c1p1};
  69.  
  70. // flank areas
  71. alpha = -1/2*((xt1-xr1)*(xt1-xr1)+(yt1-yr1)*(yt1-yr1))/(yt1-yr1);
  72. beta = -(xt1-xr1)/(yt1-yr1);
  73. x0 = xr1 + alpha*beta/(1+beta*beta)*(1-Sqrt(1-(1+1/(beta*beta))*(1-Cd*Cd/(alpha*alpha))));
  74. y0 = yr1 - alpha - beta*(xr1-x0);
  75.  
  76. p = newp; Point(p) = {-offset_x+x0, offset_y+y0, 0, lc};
  77. c1e = newc; Circle(c1e) = {c1p1,p,c1p2};
  78.  
  79. p = newp; Point(p) = {-offset_x-x0, offset_y+y0, 0, lc};
  80. c1f = newc; Circle(c1f) = {c1p3,p,c1p4};
  81.  
  82. p = newp; Point(p) = {-offset_x-x0, offset_y-y0, 0, lc};
  83. c1g = newc; Circle(c1g) = {c1p5,p,c1p6};
  84.  
  85. p = newp; Point(p) = {-offset_x+x0, offset_y-y0, 0, lc};
  86. c1h = newc; Circle(c1h) = {c1p7,p,c1p8};
  87.  
  88. ll = newl; Line Loop(ll) = {c1f, c1b, c1g, c1c, c1h, c1d, c1e, c1a};
  89. s = newl; Plane Surface(s) = {ll};
  90.  
  91. Extrude {{0,0,length}, {0,0,1}, {-offset_x, -offset_y, 0}, 2*Pi*pitch*length} {
  92. Surface{s};
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement