reform

MNT Reform: Open Source Portable Computer
Log (Feed) | Files | Refs (Tags) | README

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 }