Rev 4522 Rev 4523
1   1  
2 x_holes = 5; 2 x_holes = 5;
3 y_holes = 8; 3 y_holes = 8;
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 //------------ Safety grid parameters--------------------------- 16 //------------ Safety grid parameters---------------------------
17   17  
18 nY = 8; 18 nY = 8;
19 nX = 5; 19 nX = 5;
20   20  
21   21  
22 meshX=x_size-4*pile_radius; 22 meshX=x_size-4*pile_radius;
23 meshY=y_size-4*pile_radius; 23 meshY=y_size-4*pile_radius;
24   24  
25 // width of solid part of grid 25 // width of solid part of grid
26 meshSolid=1.2; 26 meshSolid=1.2;
27   27  
28 meshSpaceX = (meshX - meshSolid*nX)/nX; 28 meshSpaceX = (meshX - meshSolid*nX)/nX;
29 meshSpaceY = (meshY - meshSolid*nY)/nY; 29 meshSpaceY = (meshY - meshSolid*nY)/nY;
30   30  
31   31  
32   32  
33 MLAB_grid_xoffset = MLAB_grid/2; 33 MLAB_grid_xoffset = MLAB_grid/2;
34 MLAB_grid_yoffset = MLAB_grid/2; 34 MLAB_grid_yoffset = MLAB_grid/2;
35   35  
36 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size]) 36 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size])
37 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] ]; 37 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] ];
38   38  
39   39  
40 difference () { 40 difference () {
41 union () { 41 union () {
42 for (j = grid_list) { 42 for (j = grid_list) {
43 translate (concat(j, [0])) 43 translate (concat(j, [0]))
44 cylinder (h = pedestal_height, r= pile_radius, $fn=20); 44 cylinder (h = pedestal_height, r= pile_radius, $fn=20);
45 } 45 }
46   46  
47 translate ([MLAB_grid_xoffset , MLAB_grid_yoffset , 0]) 47 translate ([MLAB_grid_xoffset , MLAB_grid_yoffset , 0])
48 minkowski() { 48 minkowski() {
49 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 49 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
50 cylinder(r=pile_radius,h=0.1); 50 cylinder(r=pile_radius,h=0.1);
51 } 51 }
52 } 52 }
53 53
54 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support 54 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support
55 cube([x_size-4*pile_radius, y_size-4*pile_radius, 2*thickness]); 55 cube([x_size-4*pile_radius, y_size-4*pile_radius, 2*thickness]);
56   56  
57 // MLAB grid holes 57 // MLAB grid holes
58 for (j = grid_list) { 58 for (j = grid_list) {
59 translate (concat(j, [0])) 59 translate (concat(j, [0]))
60 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6); 60 cylinder (h = 3, r= (nut_size+clear)/2, $fn=6);
61 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand ) 61 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand )
62 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10); 62 cylinder (h = pedestal_height, r= mount_hole/2, $fn=10);
63 } 63 }
64 } 64 }
65   65  
66 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support 66 translate ([2*pile_radius, 2*pile_radius, 0]) // central hole in module support
67 union() 67 union()
68 { 68 {
69 for (i=[1:nX-1]) { 69 for (i=[1:nX-1]) {
70 translate([i*(meshSolid+meshSpaceX) - meshSolid/2,0,0]) cube(size=[meshSolid, meshY, thickness],center=false); 70 translate([i*(meshSolid+meshSpaceX) - meshSolid/2,0,0]) cube(size=[meshSolid, meshY, thickness],center=false);
71 } 71 }
72   72  
73 for (i=[1:nY-1]) { 73 for (i=[1:nY-1]) {
74 translate([0,i*(meshSolid+meshSpaceY) - meshSolid/2,0]) cube(size=[meshX, meshSolid, thickness],center=false); 74 translate([0,i*(meshSolid+meshSpaceY) - meshSolid/2,0]) cube(size=[meshX, meshSolid, thickness],center=false);
75   75  
76 } 76 }
77 } 77 }
78   78