Rev 4143 Rev 4145
1 x_size = 23; // horizontal outer size of the aquarium pedestal. 1 x_size = 23; // horizontal outer size of the aquarium pedestal.
2 y_size = 20; // 2 y_size = 20; //
3 thickness = 10; // thickness of the pad bellow aquarium. hairs lenght is 12mm. 3 thickness = 10; // thickness of the pad bellow aquarium. hairs lenght is 12mm.
4 rim_height = 7; // height of upper rim for fixing the aquarium in position. 4 rim_height = 7; // height of upper rim for fixing the aquarium in position.
5   5  
6 mount_hole = 3.7; 6 mount_hole = 3.7;
7 clear = 0.175; 7 clear = 0.175;
8 axis_offset = -1.5; 8 axis_offset = -1.5;
9   9  
10 // aquarium pad 10 // aquarium pad
11   11  
-   12 module bottom () {
12 difference () { 13 difference () {
13 intersection() { 14 intersection() {
14 union(){ // bottom part with rim/fixing pin 15 union(){ // bottom part with rim/fixing pin
15 rotate([0,0,45]) 16 rotate([0,0,45])
16 translate ([ axis_offset, 0, 0]) 17 translate ([ axis_offset, 0, 0])
17 cube([x_size, y_size ,thickness], center = true); 18 cube([x_size, y_size ,thickness], center = true);
18 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4, thickness/2 + rim_height/2]) 19 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4, thickness/2 + rim_height/2])
19 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, rim_height], center = true); 20 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, rim_height], center = true);
20   21  
21 }; 22 };
22   23  
23 rotate([0,0,45]) 24 rotate([0,0,45])
24 translate ([ axis_offset, 0, 0]) 25 translate ([ axis_offset, 0, 0])
25 cube([x_size, y_size ,4*thickness], center = true); // cut out half of top tip 26 cube([x_size, y_size ,4*thickness], center = true); // cut out half of top tip
26 } 27 }
27 cylinder (h = thickness + rim_height, r= mount_hole, $fn=20); // hole for screw head 28 cylinder (h = thickness + rim_height, r= mount_hole, $fn=20); // hole for screw head
28 translate ([0, 0, -thickness]) // hole for the screw 29 translate ([0, 0, -thickness]) // hole for the screw
29 cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20); 30 cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20);
30 31
31 32
32 rotate([0,0,-45]) // hole for top part mounting nut 33 rotate([0,0,-45]) // hole for top part mounting nut
33 translate ([ 0, -y_size/3, thickness/3]) 34 translate ([ 0, -y_size/3, thickness/3])
34 cube([6, 3, thickness], center = true); 35 cube([6, 3, thickness], center = true);
35   36  
36 rotate([90,0,-45]) // hole for top part mounting screw. 37 rotate([90,0,-45]) // hole for top part mounting screw.
37 translate ([ 0, 1.8, 0]) 38 translate ([ 0, 1.8, 0])
38 cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20); 39 cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20);
39   40  
40 rotate([0,-45,-45]) // hole for top part mounting nut 41 rotate([0,-45,-45]) // hole for top part mounting nut
41 translate ([ 0, 0, -11]) 42 translate ([ 0, 0, -11])
42 cube([30, 30, 1], center = true); 43 cube([30, 30, 1], center = true);
43   44  
44 rotate([0,45,-45]) // hole for top part mounting nut 45 rotate([0,45,-45]) // hole for top part mounting nut
45 translate ([ 0, 0, -11]) 46 translate ([ 0, 0, -11])
46 cube([30, 30, 1], center = true); 47 cube([30, 30, 1], center = true);
47   48  
48 rotate([0,45,45]) // hole for top part mounting nut 49 rotate([0,45,45]) // hole for top part mounting nut
49 translate ([ 0, 0, -13]) 50 translate ([ 0, 0, -13])
50 cube([30, 30, 1], center = true); 51 cube([30, 30, 1], center = true);
51   52  
52 rotate([0,-45,45]) // hole for top part mounting nut 53 rotate([0,-45,45]) // hole for top part mounting nut
53 translate ([ 0, 0, -11]) 54 translate ([ 0, 0, -11])
54 cube([30, 30, 1], center = true); 55 cube([30, 30, 1], center = true);
55 } 56 }
56   -  
57   -  
58   -  
59 //translate ([0, 0, thickness]) // separate two parts -  
60   57 }
61 /*rotate([180,0,0]) // hole for top part mounting nut -  
62   58  
63   59  
64 //Top part 60 //Top part
65   61 module top () {
66 union () { 62 union () {
67   63  
68 wall_thickness = 3; 64 wall_thickness = 3;
69   65  
70 rotate([0,0,45]) 66 rotate([0,0,45])
71 translate ([-wall_thickness, 0, 0]) 67 translate ([-wall_thickness, 0, 0])
72   68  
73 difference () { 69 difference () {
74 translate ([wall_thickness/2, 0, thickness/2 + 1.5*wall_thickness]) 70 translate ([wall_thickness/2, 0, thickness/2 + 1.5*wall_thickness])
75 cube([x_size - wall_thickness, y_size , wall_thickness ], center = true); 71 cube([x_size - wall_thickness, y_size , wall_thickness ], center = true);
76   72  
77 rotate([0,0,-45]) 73 rotate([0,0,-45])
78 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height]) 74 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height])
79 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, 2*rim_height], center = true); 75 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, 2*rim_height], center = true);
80 }; 76 };
81   77  
82 rotate([0,0,45]) 78 rotate([0,0,45])
83 translate ([-8.3, 0, 0]) 79 translate ([-8.3, 0, 0])
84   80  
85 difference () { 81 difference () {
86 translate ([8.3/2, 0, thickness/2 + wall_thickness/2]) 82 translate ([8.3/2, 0, thickness/2 + wall_thickness/2])
87 cube([x_size - 8.3, y_size , wall_thickness ], center = true); 83 cube([x_size - 8.3, y_size , wall_thickness ], center = true);
88   84  
89 rotate([0,0,-45]) 85 rotate([0,0,-45])
90 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height]) 86 translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height])
91 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, rim_height], center = true); 87 cube([sqrt(pow(x_size,2) + pow(x_size,2))/2, sqrt(pow(x_size,2) + pow(x_size,2))/2, rim_height], center = true);
92 }; 88 };
93   89  
94 90
95 rotate([0,0,-45]) 91 rotate([0,0,-45])
96   92  
97 difference () { 93 difference () {
98   94  
99 translate ([0, -y_size/2 - wall_thickness/2 , 1.25 * wall_thickness]) 95 translate ([0, -y_size/2 - wall_thickness/2 , 1.25 * wall_thickness])
100 cube([y_size, wall_thickness , thickness + 1.5*wall_thickness ], center = true); 96 cube([y_size, wall_thickness , thickness + 1.5*wall_thickness ], center = true);
101 97
102 98
103 rotate([90,0,0]) 99 rotate([90,0,0])
104 translate ([-0.5/2, 0, rim_height/3]) 100 translate ([-0.5/2, 0, rim_height/3])
105 minkowski() { 101 minkowski() {
106 cube([0.5,3.1,10]); 102 cube([0.5,3.1,10]);
107 cylinder(r=1.5,h=1,$fn=50); 103 cylinder(r=1.5,h=1,$fn=50);
108 } 104 }
109 } 105 }
110   106  
111   107  
112 108
113 } 109 }
-   110 }
-   111  
-   112 //translate ([0, 0, thickness]) // separate two parts
114   113  
-   114 //bottom ();
115   115  
-   116 rotate([180,0,0]) // hole for top part mounting nut
-   117 top ();
116 118