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