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