Rev 4313 Rev 4316
1   1  
2 x_holes = 2; 2 x_holes = 3;
3 y_holes = 3; 3 y_holes = 4;
4 MLAB_grid = 10.16; 4 MLAB_grid = 10.16;
5 pile_radius = 4; 5 pile_radius = 4;
6 pedestal_height = 15; // designed for use the MLAB standard 20mm screws. 6 pedestal_height = 15; // designed for use the MLAB standard 20mm screws.
7 x_size = x_holes * MLAB_grid ; 7 x_size = x_holes * MLAB_grid ;
8 y_size = y_holes * MLAB_grid ; 8 y_size = y_holes * MLAB_grid ;
9 mount_hole = 3.5; 9 mount_hole = 3.5;
10 //nut_size = 6.8; //size suitable for PLA material 10 //nut_size = 6.8; //size suitable for PLA material
11 nut_size = 6.7; //size suitable for ABS material 11 nut_size = 6.7; //size suitable for ABS material
12 clear = 0.175; 12 clear = 0.175;
13   13  
14   14  
15 thickness = 1; 15 thickness = 1;
16   16  
17 MLAB_grid_xoffset = MLAB_grid/2; 17 MLAB_grid_xoffset = MLAB_grid/2;
18 MLAB_grid_yoffset = MLAB_grid/2; 18 MLAB_grid_yoffset = MLAB_grid/2;
19   19  
20 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size]) 20 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size])
21 if ((j>(x_size-10) && i>(y_size-10)) || (j<10 && i<10) || (j<10 && i>(y_size-10)) || (j>(x_size-10) && i<10) ) [j, i] ]; 21 if ((j>(x_size-10) && i>(y_size-10)) || (j<10 && i<10) || (j<10 && i>(y_size-10)) || (j>(x_size-10) && i<10) ) [j, i] ];
22   22  
23   23  
24 difference () { 24 difference () {
25 union () { 25 union () {
26 for (j = grid_list) { 26 for (j = grid_list) {
27 translate (concat(j, [0])) 27 translate (concat(j, [0]))
28 cylinder (h = pedestal_height, r= pile_radius, $fn=20); 28 cylinder (h = pedestal_height, r= pile_radius, $fn=20);
29 } 29 }
30   30  
31 translate ([MLAB_grid_xoffset , MLAB_grid_yoffset , 0]) 31 translate ([MLAB_grid_xoffset , MLAB_grid_yoffset , 0])
32 minkowski() { 32 minkowski() {
33 cube([x_size - 2*(MLAB_grid/2 - pile_radius) - 2*pile_radius, y_size - 2*(MLAB_grid/2 - pile_radius) - 2*pile_radius, thickness]); // base plastics brick 33 cube([x_size - 2*(MLAB_grid/2 - pile_radius) - 2*pile_radius, y_size - 2*(MLAB_grid/2 - pile_radius) - 2*pile_radius, thickness]); // base plastics brick
34 cylinder(r=pile_radius,h=0.1); 34 cylinder(r=pile_radius,h=0.1);
35 } 35 }
36 } 36 }
37 37
38 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support 38 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support
39 cube([x_size-4*pile_radius, y_size-4*pile_radius, 2*thickness]); 39 cube([x_size-4*pile_radius, y_size-4*pile_radius, 2*thickness]);
40   40  
41 // MLAB grid holes 41 // MLAB grid holes
42 for (j = grid_list) { 42 for (j = grid_list) {
43 translate (concat(j, [0])) 43 translate (concat(j, [0]))
44 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 44 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
45 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand ) 45 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand )
46 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 46 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
47 } 47 }
48 } 48 }
49   49