Advertisement
Guest User

Untitled

a guest
Dec 10th, 2011
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. use <../libs/triangles.scad>;
  2.  
  3. exhaust_x = 3; // excluding standoff
  4. exhaust_y = 10;
  5. exhaust_z = 33;
  6. exhaust_standoff = 1;
  7.  
  8. exhaust_notch_z = 2;
  9. exhaust_notch_spacing = 1.5;
  10. exhaust_notch_height = 28;
  11.  
  12. cylinder_faces = 20;
  13. c_f = cylinder_faces;
  14. zff = 0.01;
  15. track_x = 12;
  16. track_y = 100;
  17. track_z = 40;
  18.  
  19. track_bottom_chamfer = track_z/2.5;
  20. track_front_chamfer_angle = 45;
  21. track_rear_chamfer_angle = 45;
  22. track_rear_chamfer_ratio = 1.2;
  23.  
  24. track_cutout_depth = 2;
  25.  
  26. track_rear_cutout_y = 10;
  27. track_rear_cutout_z = 16;
  28. //track_rear_cutout_angle = 40;
  29. track_rear_cutout_angle = 40;
  30.  
  31. track_rear_cutout_y_dist = 10;
  32. track_rear_cutout_z_dist = 5;
  33. track_rear_cutout_diag_length = 13;
  34.  
  35. rear_exhaust_offset = 5;
  36.  
  37. module whole()
  38. {
  39.  
  40.  
  41. }
  42.  
  43. module track()
  44. {
  45. trc_y = track_rear_cutout_y;
  46. trc_z = track_rear_cutout_z;
  47. trc_y_d = track_rear_cutout_y_dist;
  48. trc_z_d = track_rear_cutout_z_dist;
  49. union()
  50. {
  51.  
  52. difference()
  53. {
  54. cube([track_x, track_y, track_z]);
  55. // Corner chamfers
  56. translate([0,0,-(track_bottom_chamfer/2)]) rotate([45,0,0]) cube([track_x,track_bottom_chamfer/sqrt(2),track_bottom_chamfer/sqrt(2)]);
  57. translate([0,track_y,-(track_bottom_chamfer/2)]) rotate([45,0,0]) cube([track_x,track_bottom_chamfer/sqrt(2),track_bottom_chamfer/sqrt(2)]);
  58.  
  59. translate([0,track_y,track_bottom_chamfer]) rotate([track_front_chamfer_angle,0,0]) cube([track_x,100,(track_z - track_bottom_chamfer)/sin(track_front_chamfer_angle)]);
  60. translate([0,0,track_bottom_chamfer*track_rear_chamfer_ratio])
  61. rotate([track_rear_chamfer_angle,0,0])
  62. tread_rear_chamfer();
  63.  
  64. // Face cutouts
  65. /*#translate([track_x-track_cutout_depth,trc_y_d,trc_z_d]) cube([track_cutout_depth,trc_y,trc_z]);
  66. #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
  67. rotate([track_rear_cutout_angle,0,0])
  68. cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);
  69. #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
  70. rotate([track_rear_cutout_angle,0,0])
  71. cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);*/
  72.  
  73. //#translate([0,trc_y_d,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
  74. #translate([0,5,25])
  75. rotate([track_rear_chamfer_angle,0,0])
  76. cube([track_x,trc_y*cos(track_rear_cutout_angle),track_cutout_depth]);
  77.  
  78.  
  79. }
  80. // Face additions
  81. //translate([track_x,40,17]) import("predator_exhaust.stl");
  82. translate([track_x,(track_z - track_bottom_chamfer*track_rear_chamfer_ratio)/tan(track_rear_chamfer_angle)+exhaust_y/2+rear_exhaust_offset,track_z-exhaust_z]) exhaust();
  83. translate([track_x,exhaust_y/2+track_y-(track_z - track_bottom_chamfer)/cos(track_front_chamfer_angle),track_z-exhaust_z]) exhaust();
  84. }
  85. }
  86.  
  87. module tread_rear_chamfer()
  88. {
  89. trc_y = track_rear_cutout_y;
  90. trc_z = track_rear_cutout_z;
  91. trc_y_d = track_rear_cutout_y_dist;
  92. trc_z_d = track_rear_cutout_z_dist;
  93.  
  94. temp = -91 ;
  95. echo(temp);
  96.  
  97. trc_y_v = (track_z-track_bottom_chamfer*track_rear_chamfer_ratio)/sin(track_rear_chamfer_angle);
  98.  
  99. cube([track_x,trc_y_v,60]);
  100. translate([0,trc_y_v/2-trc_y*cos(track_rear_cutout_angle)/2,-track_cutout_depth])
  101. cube([track_x,trc_y*cos(track_rear_cutout_angle),track_cutout_depth]);
  102.  
  103. translate([track_x-track_cutout_depth,trc_y_v/2-trc_y*cos(track_rear_cutout_angle)/2,-track_rear_cutout_diag_length])
  104. cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),track_rear_cutout_diag_length]);
  105.  
  106. //translate([track_x-track_cutout_depth,0,-track_rear_cutout_diag_length*2])
  107.  
  108. //translate([0,0,0])
  109. rotate([temp,0,0])
  110. cube([track_cutout_depth,trc_y,trc_z]);
  111.  
  112. /*#translate([track_x-track_cutout_depth,trc_y_d,trc_z_d]) cube([track_cutout_depth,trc_y,trc_z]);
  113. #translate([track_x-track_cutout_depth+zff,trc_y_d+tan(track_rear_cutout_angle)*trc_y*sin(track_rear_cutout_angle*2)/2,trc_z_d+trc_z-trc_y*sin(track_rear_cutout_angle*2)/2])
  114. rotate([track_rear_cutout_angle,0,0])
  115. cube([track_cutout_depth,trc_y*cos(track_rear_cutout_angle),30]);*/
  116.  
  117. }
  118.  
  119. module exhaust()
  120. {
  121. exh_x = exhaust_x;
  122. exh_y = exhaust_y;
  123. exh_z = exhaust_z;
  124. exh_s = exhaust_standoff;
  125.  
  126. difference()
  127. {
  128. union()
  129. {
  130. translate([exh_s,-exh_y/2,0]) cube([exh_x,exh_y,exh_z]);
  131. translate([0,-exh_y/2,0]) cube([exh_s,exh_y,exh_z]);
  132. }
  133. translate([exhaust_standoff,-25,0]) rotate([0,30,0]) cube([20,50,20]); // Chamfer at the bottom
  134. // Chamfer on the sides
  135. translate([exhaust_standoff+exh_x,(exh_y/2)-exh_x,0]) rotate([0,0,45]) cube([exh_x*sqrt(2),exh_x*sqrt(2),exh_z]);
  136. translate([exhaust_standoff+exh_x,-(exh_y/2)-exh_x,0]) rotate([0,0,45]) cube([exh_x*sqrt(2),exh_x*sqrt(2),exh_z]);
  137.  
  138.  
  139. for (n = [0:2])
  140. {
  141. translate([0,1,exhaust_notch_height-n*(exhaust_notch_z+exhaust_notch_spacing)]) exhaust_notch();
  142. translate([0,-1,exhaust_notch_height-n*(exhaust_notch_z+exhaust_notch_spacing)]) translate([0,0,exhaust_notch_z]) rotate([180,0,0]) exhaust_notch();
  143. }
  144. }
  145. difference()
  146. {
  147. translate([(exhaust_x+exhaust_standoff)/2,0,exhaust_z]) cylinder(r=2,h=2,$fn=c_f);
  148. translate([(exhaust_x+exhaust_standoff)/2,0,exhaust_z+1.5]) cylinder(r=1,h=2,$fn=c_f);
  149. }
  150. }
  151.  
  152.  
  153. module exhaust_notch()
  154. {
  155. exh_n_z = exhaust_notch_z;
  156. devisor_x = 1.8;
  157. devisor_y = 6;
  158.  
  159. difference()
  160. {
  161. cube([10,10,exh_n_z]);
  162. cube([exhaust_x/devisor_x,exhaust_y/devisor_y,exh_n_z]);
  163. translate([0,exhaust_y/devisor_y,0,]) triangle(exhaust_y/devisor_y,exhaust_x/devisor_x,exh_n_z);
  164. }
  165. }
  166.  
  167.  
  168. render(convexity = 1)
  169. {
  170. //track();
  171. tread_rear_chamfer();
  172. //exhaust();
  173. }
  174.  
  175.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement