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