Rev 4831 Rev 4832
Line -... Line 1...
-   1 use <./../../../../../../Library/Graphics/MLAB_logo.scad>
1   2  
2 pedestal_height = 13; // designed for use the MLAB standard 12mm screws. 3 pedestal_height = 13; // designed for use the MLAB standard 12mm screws.
3 x_size = 87; -  
4 y_size = 58; -  
5 mount_hole = 3.5; 4 mount_hole = 3.5;
6 nut_size = 6.8; 5 clear = 0.175;
7 nut_size25 = 6.1; 6 nut_size = 6.6;
8 MLAB_grid = 10.16; -  
9   7  
10 x_holes = floor(x_size / MLAB_grid); -  
11 y_holes = floor(y_size / MLAB_grid); -  
12   -  
13 MLAB_grid_xoffset = (x_size - (x_holes * MLAB_grid))/2; 8 MLAB_grid_xoffset = 3.6;
14 MLAB_grid_yoffset = (y_size - (y_holes * MLAB_grid))/2; 9 MLAB_grid_yoffset = 1.5;
15   10  
16 difference () { 11 difference () {
-   12 // translate ([-1,-16,0])
-   13 cube([58,87,pedestal_height]);
-   14  
-   15 //mount holes for ODROID
-   16  
-   17 translate ([4.5, 4.5,0])
-   18 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
-   19 translate ([4.5, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
-   20 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
-   21  
-   22 translate ([4.5 + 49, 4.5,0])
-   23 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
-   24 translate ([4.5 + 49, 4.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
-   25 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
-   26  
-   27 translate ([4.5, 4.5 + 58,0])
-   28 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
-   29 translate ([4.5, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
-   30 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
-   31  
-   32 translate ([4.5 + 49, 4.5 + 58,0])
-   33 cylinder (h = 6, r= (nut_size+clear)/2, $fn=6);
-   34 translate ([4.5 + 49, 4.5 + 58, 6.2]) // one solid layer for slicer (the holes will be pierced on demand )
-   35 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
-   36  
-   37 ////////////////////////////////////
-   38 translate ([1, 66 , pedestal_height - 4.5]) // HOLE for USB and Ethernet connectors
-   39 cube([55,18,5]);
-   40  
-   41 translate ([15, 8 , pedestal_height - 3.5]) // HOLE for Passive components
-   42 cube([41,50,5]);
-   43  
17 cube([x_size, y_size ,pedestal_height]); // base plastics brick 44 translate ([9, 1.5 , pedestal_height - 2]) // HOLE for Passive components
-   45 cube([40,10,5]);
18   46  
19 //mount holes for Raspberry Pi model A/B 47 translate ([22, 0 , pedestal_height - 2]) // SD Card
-   48 cube([13,16,5]);
20   49  
21 translate ([26.5, 19, 0]) -  
22 rotate([0,0,90]) -  
23 cylinder (h = 6, r= nut_size25/2, $fn=6); -  
24 translate ([26.5, 19, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) -  
25 cylinder (h = pedestal_height, r= 3.0/2, $fn=30); 50 translate ([2, 8 , pedestal_height - 1.7]) // IO connector
26   -  
27 translate ([81, 44.5, 0]) -  
28 rotate([0,0,90]) 51 cube([4.5,50.5,5]);
29 cylinder (h = 6, r= nut_size25/2, $fn=6); -  
30 translate ([81, 44.5, 6.2]) // one solid layer for slicer (the holes will be pierced on demand ) -  
31 cylinder (h = pedestal_height, r= 3.0/2, $fn=30); -  
32   52  
33 //////////////////////////////////////// 53 ////////////////////////////////////////
34   54  
35 // MLAB grid holes 55 // MLAB grid holes
36 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: 86], i = [MLAB_grid_yoffset :MLAB_grid: 55]) -  
37 if (!(j>20 && i>10 && j<50 && i<50) && !(j>75 && i>40 && j<90 && i<50) ) // exception for Raspberry mount holes -  
38 [j, i] ]; -  
39 56  
40 for (j = grid_list) { 57 for (j = [0 : 5], i = [1 : 5]) {
41 translate (concat(j, [0])) 58 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0])
42 cylinder (h = 3, r= nut_size/2, $fn=6); 59 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
43 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand ) 60 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
44 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=30); 61 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
45 translate (concat(j, [6.0])) 62 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0])
46 cylinder (h = 10, r= nut_size/2, $fn=6); 63 cylinder (h = 10, r= nut_size/2, $fn=6);
47 } 64 }
48 -  
49 ///////////////////////////////////////// -  
50 // holes for components at the bottom side of the PCB. -  
51   -  
52 difference () { -  
53 translate ([2, 2 , pedestal_height - 3]) // -  
54 cube([83, 54, 3]); -  
55 -  
56 translate ([26.5, 19, pedestal_height - 5]) // Raspberry screw mount pile -  
57 cylinder (h = pedestal_height, r= 4, $fn=20); -  
58   65  
-   66 for (j = [0 : 5], i = [7 : 8]) {
-   67 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16,0])
-   68 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
-   69 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 3.2]) // one solid layer for slicer (the holes will be pierced on demand )
59 translate ([77, 40.5, pedestal_height - 5]) // Raspberry screw mount brick 70 cylinder (h = pedestal_height /3, r= mount_hole/2, $fn=10);
-   71 translate ([MLAB_grid_xoffset + j*10.16, MLAB_grid_yoffset + i*10.16, 6.0])
60 cube([20,8,5]); 72 cylinder (h = 10, r= nut_size/2, $fn=6);
61 } 73 }
62 translate ([0, 14 , pedestal_height - 4]) // SD Card -  
63 cube([20,30.5,5]); -  
64   74  
-   75
-   76
-   77
65 //// lightening central holes 78 //// lightening central holes
66 79
67 translate ([8, 8, 0]) 80 translate ([9, 8 , 0])
68 cube([14.5,y_size - 16,pedestal_height ]); 81 cube([40,70,pedestal_height ]);
-   82
-   83
-   84 // MLAB logo on the side
-   85 union (){
-   86 translate ([29,0.5, 6.5]) // ODROIDs passive components hole.
-   87 rotate ([90,0,0])
-   88 scale(v = [0.4, 0.4, 0.4])
-   89 MLAB_logo_long();
-   90 }
69   91  
-   92 translate ([45, 86.5, 4]) // ODROIDs passive components hole.
70 translate ([30.5,8, 0]) 93 rotate ([90,0,180])
-   94 linear_extrude(height = 0.5) {
71 cube([47, y_size - 16,pedestal_height ]); 95 text(text = "RPi3 - B", size = pedestal_height * 0.4);
-   96 }
72 } 97 }
73   98  
74   -