| 4484 | 
        kaklik | 
        1 | 
          | 
      
      
         | 
         | 
        2 | 
        pedestal_height = 13;   // designed for use the MLAB standard 12mm screws. | 
      
      
         | 
         | 
        3 | 
        mount_hole = 3.5; | 
      
      
         | 
         | 
        4 | 
        clear = 0.175; | 
      
      
         | 
         | 
        5 | 
        nut_size = 6.6; | 
      
      
         | 
         | 
        6 | 
        inch = 25.4; // dimensions of mesa card are documented in inches therefore a conversion is needed. | 
      
      
         | 
         | 
        7 | 
        MLAB_grid = 10.16; | 
      
      
         | 
         | 
        8 | 
        x_size = 4 * inch; | 
      
      
         | 
         | 
        9 | 
        y_size = 4 * inch; | 
      
      
         | 
         | 
        10 | 
          | 
      
      
         | 
         | 
        11 | 
        x_holes = floor((x_size - 10) / MLAB_grid); | 
      
      
         | 
         | 
        12 | 
        y_holes = floor((y_size - 20) / MLAB_grid); | 
      
      
         | 
         | 
        13 | 
          | 
      
      
         | 
         | 
        14 | 
        MLAB_grid_xoffset = (x_size - (x_holes * MLAB_grid))/2; | 
      
      
         | 
         | 
        15 | 
        MLAB_grid_yoffset = (y_size - (y_holes * MLAB_grid))/2; | 
      
      
         | 
         | 
        16 | 
          | 
      
      
         | 
         | 
        17 | 
        7i90HD_holes_offset = 0.15 * inch; | 
      
      
         | 
         | 
        18 | 
        7i90HD_holes_xdistance = 3.7 * inch; | 
      
      
         | 
         | 
        19 | 
        7i90HD_holes_ydistance = 3.7 * inch; | 
      
      
         | 
         | 
        20 | 
          | 
      
      
         | 
         | 
        21 | 
        difference () { | 
      
      
         | 
         | 
        22 | 
        	cube([x_size, y_size,pedestal_height]);          // base plastics brick | 
      
      
         | 
         | 
        23 | 
          | 
      
      
         | 
         | 
        24 | 
        	//mount holes for 7i90HD | 
      
      
         | 
         | 
        25 | 
          | 
      
      
         | 
         | 
        26 | 
                translate ([7i90HD_holes_offset, 7i90HD_holes_offset,0]) | 
      
      
         | 
         | 
        27 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        28 | 
                translate ([7i90HD_holes_offset, 7i90HD_holes_offset, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        29 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        30 | 
          | 
      
      
         | 
         | 
        31 | 
                translate ([7i90HD_holes_offset + 7i90HD_holes_xdistance, 7i90HD_holes_offset, 0]) | 
      
      
         | 
         | 
        32 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        33 | 
                translate ([7i90HD_holes_offset + 7i90HD_holes_xdistance, 7i90HD_holes_offset, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        34 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        35 | 
          | 
      
      
         | 
         | 
        36 | 
                translate ([7i90HD_holes_offset, 7i90HD_holes_offset + 7i90HD_holes_ydistance,0]) | 
      
      
         | 
         | 
        37 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        38 | 
                translate ([7i90HD_holes_offset, 7i90HD_holes_offset + 7i90HD_holes_ydistance, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        39 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        40 | 
          | 
      
      
        | 4489 | 
        kaklik | 
        41 | 
                translate ([2.35 * inch, 7i90HD_holes_offset + 7i90HD_holes_ydistance,0])               // middle holes | 
      
      
         | 
         | 
        42 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        43 | 
                translate ([2.35 * inch, 7i90HD_holes_offset + 7i90HD_holes_ydistance, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        44 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        45 | 
          | 
      
      
         | 
         | 
        46 | 
                translate ([2.35 * inch, 7i90HD_holes_offset, 0])               // middle holes | 
      
      
         | 
         | 
        47 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        48 | 
                translate ([2.35 * inch, 7i90HD_holes_offset, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        49 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        50 | 
          | 
      
      
        | 4484 | 
        kaklik | 
        51 | 
                translate ([7i90HD_holes_offset + 7i90HD_holes_xdistance, 7i90HD_holes_offset + 7i90HD_holes_ydistance,0]) | 
      
      
         | 
         | 
        52 | 
                cylinder (h = 6, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        53 | 
                translate ([7i90HD_holes_offset + 7i90HD_holes_xdistance, 7i90HD_holes_offset + 7i90HD_holes_ydistance, 6.2])  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        54 | 
                cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        55 | 
          | 
      
      
         | 
         | 
        56 | 
        ///////////////////////////////////////// | 
      
      
         | 
         | 
        57 | 
        //      holes for components at the bottom side of the PCB. | 
      
      
         | 
         | 
        58 | 
          | 
      
      
         | 
         | 
        59 | 
        	translate ([0, 17 , pedestal_height - 3]) // RS422 IO connector | 
      
      
         | 
         | 
        60 | 
        	cube([17, 18, 5]); | 
      
      
         | 
         | 
        61 | 
          | 
      
      
         | 
         | 
        62 | 
                translate ([1, 42 , pedestal_height - 3]) // W3 jumper | 
      
      
         | 
         | 
        63 | 
                cube([3, 8, 5]); | 
      
      
         | 
         | 
        64 | 
          | 
      
      
         | 
         | 
        65 | 
                translate ([49, 2 , pedestal_height - 3]) // W6 jumper | 
      
      
         | 
         | 
        66 | 
                cube([3, 8, 5]); | 
      
      
         | 
         | 
        67 | 
          | 
      
      
         | 
         | 
        68 | 
                translate ([49, 91 , pedestal_height - 3]) // W1 jumper | 
      
      
         | 
         | 
        69 | 
                cube([3, 8, 5]); | 
      
      
         | 
         | 
        70 | 
          | 
      
      
         | 
         | 
        71 | 
                translate ([57, 18 , pedestal_height - 3]) // P1 jumper | 
      
      
         | 
         | 
        72 | 
                cube([6, 65, 5]); | 
      
      
         | 
         | 
        73 | 
          | 
      
      
         | 
         | 
        74 | 
                translate ([76, 18 , pedestal_height - 3]) // P2 jumper | 
      
      
         | 
         | 
        75 | 
                cube([6, 65, 5]); | 
      
      
         | 
         | 
        76 | 
          | 
      
      
         | 
         | 
        77 | 
                translate ([93.5, 18 , pedestal_height - 3]) // P3 jumper | 
      
      
         | 
         | 
        78 | 
                cube([6, 65, 5]); | 
      
      
         | 
         | 
        79 | 
          | 
      
      
        | 4489 | 
        kaklik | 
        80 | 
                translate ([4, 9 , pedestal_height - 3]) // P7 Power connector | 
      
      
         | 
         | 
        81 | 
                cube([4, 7, 5]); | 
      
      
         | 
         | 
        82 | 
          | 
      
      
         | 
         | 
        83 | 
                translate ([5, 56 , pedestal_height - 3]) // P4 interface connector | 
      
      
         | 
         | 
        84 | 
                cube([6, 34, 5]); | 
      
      
        | 4484 | 
        kaklik | 
        85 | 
                //////////////////////////////////////// | 
      
      
         | 
         | 
        86 | 
          | 
      
      
         | 
         | 
        87 | 
        // MLAB grid holes | 
      
      
         | 
         | 
        88 | 
                grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size - MLAB_grid_xoffset], i = [MLAB_grid_yoffset :MLAB_grid: y_size - MLAB_grid_yoffset ]) | 
      
      
         | 
         | 
        89 | 
                if (!(j>10 && i>20 && j<90 && i<90)) // exception for board mount holes | 
      
      
         | 
         | 
        90 | 
                [j, i] ];  | 
      
      
         | 
         | 
        91 | 
                for (j = grid_list) { | 
      
      
         | 
         | 
        92 | 
                        translate (concat(j, [0])) | 
      
      
         | 
         | 
        93 | 
                        cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); | 
      
      
         | 
         | 
        94 | 
                        translate (concat(j, [3.2]))  // one solid layer for slicer (the holes will be pierced on demand ) | 
      
      
         | 
         | 
        95 | 
                        cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10); | 
      
      
         | 
         | 
        96 | 
                        translate (concat(j, [6.0])) | 
      
      
         | 
         | 
        97 | 
                        cylinder (h = 10, r= nut_size/2, $fn=6); | 
      
      
         | 
         | 
        98 | 
                } | 
      
      
         | 
         | 
        99 | 
          | 
      
      
         | 
         | 
        100 | 
          | 
      
      
         | 
         | 
        101 | 
        ////  lightening central holes | 
      
      
         | 
         | 
        102 | 
          | 
      
      
         | 
         | 
        103 | 
        	translate ([11,15, 0])   | 
      
      
         | 
         | 
        104 | 
        	cube([45,72,pedestal_height ]);         | 
      
      
         | 
         | 
        105 | 
          | 
      
      
         | 
         | 
        106 | 
        //	translate ([12.5,42, 0])   | 
      
      
         | 
         | 
        107 | 
        //	cube([71,40,pedestal_height ]);         | 
      
      
         | 
         | 
        108 | 
          | 
      
      
         | 
         | 
        109 | 
        } | 
      
      
         | 
         | 
        110 | 
          | 
      
      
         | 
         | 
        111 | 
          |