reform2-heatsink.scad 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. x1 = 8;
  2. y1 = 4;
  3. x2 = x1+23;
  4. y2 = y1+10;
  5. x3 = x2+12.75;
  6. y3 = y2+60;
  7. sink_width = 54;
  8. sink_height = 6;
  9. sink_depth = 25+y3+1;
  10. fins_y = 20.5;
  11. fin_width = sink_width+2;
  12. fin_thickness = 2;
  13. fin_spacing = 3;
  14. fin_depth = sink_height-2;
  15. module screw_hole(x,y,height) {
  16. shh=3;
  17. translate([x,y,height]) cylinder(h=shh, r=5/2, center = true, $fn=40);
  18. translate([x,y,height/2]) cylinder(h=height+1, r=2.2/2, center = true, $fn=20);
  19. }
  20. union() {
  21. difference() {
  22. cube([sink_width,sink_depth,sink_height]);
  23. screw_hole(x1,y1,sink_height);
  24. screw_hole(x2,y1,sink_height);
  25. screw_hole(x3,y2,sink_height);
  26. screw_hole(x3,y3,sink_height);
  27. for (i = [-4 : -2]) {
  28. translate([-1,fins_y+i*fin_spacing,sink_height-fin_depth]) cube([fin_width-15,fin_thickness,fin_depth+1]);
  29. }
  30. for (i = [-1 : 16]) {
  31. translate([-1,fins_y+i*fin_spacing,sink_height-fin_depth]) cube([fin_width,fin_thickness,fin_depth+1]);
  32. }
  33. for (i = [17 : 18]) {
  34. translate([-1,fins_y+i*fin_spacing,sink_height-fin_depth]) cube([fin_width-15,fin_thickness,fin_depth+1]);
  35. }
  36. for (i = [19 : 25]) {
  37. translate([-1,fins_y+i*fin_spacing,sink_height-fin_depth]) cube([fin_width,fin_thickness,fin_depth+1]);
  38. }
  39. //translate([42.5,1.5,6.5]) linear_extrude(height = 2, center = true, convexity = 10) scale(0.12) import(file = "mnt.svg");
  40. }
  41. // cpu contact pad
  42. translate([x3-17-15,y2+18.6-3.2,-1]) color([1,0,0]) cube([17,17,1]);
  43. }