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