Rev 4410 Rev 4907
1 use<Write.scad> 1 use<Write.scad>
2 $fn=100; 2 $fn=100;
3   3  
4 x_size = 20; // horizontal outer size of the pedestal. 4 x_size = 20; // horizontal outer size of the pedestal.
5 y_size = 20; // 5 y_size = 20; //
6 mount_hole = 3.5; 6 mount_hole = 3.5;
7 nut_size = 6.8; 7 nut_size = 6.8;
8 SMA_dia = 6.1; 8 SMA_dia = 6.1;
9 SMA_flat = 3.15; 9 SMA_flat = 3.15;
10 thickness = 10; // 10 thickness = 10; //
11 wall_thickness = 2; 11 wall_thickness = 2;
12 height = 55; 12 height = 55;
13   13  
14 mount_hole = 3.7; 14 mount_hole = 3.7;
15 clear = 0.175; 15 clear = 0.175;
16   16  
17 MLAB_grid = 10.16; 17 MLAB_grid = 10.16;
18   18  
19 x_holes = floor(x_size / MLAB_grid); 19 x_holes = floor(x_size / MLAB_grid);
20 y_holes = floor(y_size / MLAB_grid); 20 y_holes = floor(y_size / MLAB_grid);
21   21  
22 MLAB_grid_xoffset = (x_size - (x_holes * MLAB_grid))/2; 22 MLAB_grid_xoffset = (x_size - (x_holes * MLAB_grid))/2;
23 MLAB_grid_yoffset = (y_size - (y_holes * MLAB_grid))/2; 23 MLAB_grid_yoffset = (y_size - (y_holes * MLAB_grid))/2;
24   24  
25 //Top part 25 //Top part
26   26  
27 union () { 27 union () {
28   28  
29 difference () { 29 difference () {
30 cube([x_size, y_size , thickness ]); 30 cube([x_size, y_size , thickness ]);
31   31  
32 // MLAB grid holes 32 // MLAB grid holes
33 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size]) [j, i] ]; 33 grid_list = [for (j = [MLAB_grid_xoffset : MLAB_grid: x_size], i = [MLAB_grid_yoffset :MLAB_grid: y_size]) [j, i] ];
34 34
35 for (j = grid_list) { 35 for (j = grid_list) {
36 translate (concat(j, [0])) 36 translate (concat(j, [0]))
37 cylinder (h = 3, r= nut_size/2, $fn=6); 37 cylinder (h = 3, r= nut_size/2, $fn=6);
38 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand ) 38 translate (concat(j, [3.2])) // one solid layer for slicer (the holes will be pierced on demand )
39 cylinder (h = thickness /3, r= mount_hole/2, $fn=30); 39 cylinder (h = thickness /3, r= mount_hole/2, $fn=30);
40 translate (concat(j, [6.0])) 40 translate (concat(j, [6.0]))
41 cylinder (h = 10, r= nut_size/2, $fn=6); 41 cylinder (h = 10, r= nut_size/2, $fn=6);
42 } 42 }
43 }; 43 };
-   44 // vertical to horizontal brick connection
-   45 translate ([ 0, 0, thickness - sqrt(2 * wall_thickness*wall_thickness) / 2]) // move to correct positon on square diagonal
-   46 rotate([45,0,0])
-   47 cube([x_size, wall_thickness , wall_thickness ]);
44   48  
45 difference () { 49 difference () {
46   50  
47 translate ([0, -wall_thickness, 0]) // vertical brick 51 translate ([0, -wall_thickness, 0]) // vertical brick
48 cube([y_size, wall_thickness , height ]); 52 cube([y_size, wall_thickness , height ]);
49 53
50 // SMA connector holes 54 // SMA connector holes
51 translate ([ x_size/2, wall_thickness/2, (height - thickness)/3 + thickness - SMA_dia/2]) 55 translate ([ x_size/2, wall_thickness/2, (height - thickness)/3 + thickness - SMA_dia/2])
52 rotate([90,0,0]) { 56 rotate([90,0,0]) {
53 difference () { 57 difference () {
54 cylinder (h = 2*wall_thickness, r= SMA_dia/2, $fn=50); 58 cylinder (h = 2*wall_thickness, r= SMA_dia/2, $fn=50);
55 translate([ 0, SMA_flat , wall_thickness/2 + wall_thickness ]) 59 translate([ 0, SMA_flat , wall_thickness/2 + wall_thickness ])
56 cube([SMA_dia, 1 , thickness ], center=true); 60 cube([SMA_dia, 1 , thickness ], center=true);
57 } 61 }
58 } 62 }
59   63  
60 translate ([ x_size/2, wall_thickness/2, 2*(height - thickness)/3 + thickness + SMA_dia/2 ]) 64 translate ([ x_size/2, wall_thickness/2, 2*(height - thickness)/3 + thickness + SMA_dia/2 ])
61 rotate([90,0,0]){ 65 rotate([90,0,0]){
62 difference () { 66 difference () {
63 cylinder (h = 2*wall_thickness, r= SMA_dia/2, $fn=50); 67 cylinder (h = 2*wall_thickness, r= SMA_dia/2, $fn=50);
64 translate([ 0, SMA_flat , wall_thickness/2 + wall_thickness ]) 68 translate([ 0, SMA_flat , wall_thickness/2 + wall_thickness ])
65 cube([SMA_dia, 1 , thickness ], center=true); 69 cube([SMA_dia, 1 , thickness ], center=true);
66 } 70 }
67 71
68 } 72 }
-   73
-   74 }
69 // texts 75 // texts
70 76
71 translate ([ x_size/2, wall_thickness/2, (height - thickness)/3 + thickness - SMA_dia/2]) 77 translate ([ x_size/2, wall_thickness/2, (height - thickness)/3 + thickness - SMA_dia/2])
72 rotate([90,0,0]) { 78 rotate([90,0,0]) {
73 translate([ 0, -11, wall_thickness/2 + wall_thickness ]) 79 translate([ 0, -11, wall_thickness/2 + wall_thickness ])
74 rotate([0,0,180]) 80 rotate([0,0,180])
75 write("GPS",h=5,t=2,space= 1.1, font = "Letters.dxf", center=true); 81 write("GPS",h=5,t=2,space= 1.1, font = "Letters.dxf", center=true);
76 } 82 }
77 83
78 translate ([ x_size/2, wall_thickness/2, 2*(height - thickness)/3 + thickness + SMA_dia/2 ]) 84 translate ([ x_size/2, wall_thickness/2, 2*(height - thickness)/3 + thickness + SMA_dia/2 ])
79 rotate([90,0,0]){ 85 rotate([90,0,0]){
80 translate([ 0, -11, wall_thickness/2 + wall_thickness]) 86 translate([ 0, -11, wall_thickness/2 + wall_thickness])
81 rotate([0,0,180]) 87 rotate([0,0,180])
82 write("ANT",h=5,t=2, space= 1.1, font = "Letters.dxf",center=true); 88 write("ANT",h=5,t=2, space= 1.1, font = "Letters.dxf",center=true);
83 } 89 }
84 90
85 91
86 -  
87 } -  
88 } 92 }
89   93  
90   94