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