x_size = 23; // horizontal outer size of the aquarium pedestal.
y_size = 20; //
thickness = 10; // thickness of the pad bellow aquarium. hairs lenght is 12mm.
rim_height = 7; // height of upper rim for fixing the aquarium in position.
mount_hole = 3.7;
clear = 0.175;
axis_offset = -1.5;
// aquarium pad
module bottom () {
difference () {
intersection() {
union(){ // bottom part with rim/fixing pin
rotate([0,0,45])
translate ([ axis_offset, 0, 0])
cube([x_size, y_size ,thickness], center = true);
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])
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);
};
rotate([0,0,45])
translate ([ axis_offset, 0, 0])
cube([x_size, y_size ,4*thickness], center = true); // cut out half of top tip
}
cylinder (h = thickness + rim_height, r= mount_hole, $fn=20); // hole for screw head
translate ([0, 0, -thickness]) // hole for the screw
cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20);
rotate([0,0,-45]) // hole for top part mounting nut
translate ([ 0, -y_size/3, thickness/3])
cube([6, 3, thickness], center = true);
rotate([90,0,-45]) // hole for top part mounting screw.
translate ([ 0, 1.8, 0])
cylinder (h = thickness + rim_height, r= mount_hole/2, $fn=20);
rotate([0,-45,-45]) // hole for top part mounting nut
translate ([ 0, 0, -11])
cube([30, 30, 1], center = true);
rotate([0,45,-45]) // hole for top part mounting nut
translate ([ 0, 0, -11])
cube([30, 30, 1], center = true);
rotate([0,45,45]) // hole for top part mounting nut
translate ([ 0, 0, -13])
cube([30, 30, 1], center = true);
rotate([0,-45,45]) // hole for top part mounting nut
translate ([ 0, 0, -11])
cube([30, 30, 1], center = true);
}
}
//Top part
module top () {
union () {
wall_thickness = 3;
rotate([0,0,45])
translate ([-wall_thickness, 0, 0])
difference () {
translate ([wall_thickness/2, 0, thickness/2 + 1.5*wall_thickness])
cube([x_size - wall_thickness, y_size , wall_thickness ], center = true);
rotate([0,0,-45])
translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height])
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);
};
rotate([0,0,45])
translate ([-8.3, 0, 0])
difference () {
translate ([8.3/2, 0, thickness/2 + wall_thickness/2])
cube([x_size - 8.3, y_size , wall_thickness ], center = true);
rotate([0,0,-45])
translate ([sqrt(pow(x_size,2) + pow(x_size,2))/4, sqrt(pow(x_size,2) + pow(x_size,2))/4 , rim_height])
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);
};
rotate([0,0,-45])
difference () {
translate ([0, -y_size/2 - wall_thickness/2 , 1.25 * wall_thickness])
cube([y_size, wall_thickness , thickness + 1.5*wall_thickness ], center = true);
rotate([90,0,0])
translate ([-0.5/2, 0, rim_height/3])
minkowski() {
cube([0.5,3.1,10]);
cylinder(r=1.5,h=1,$fn=50);
}
}
}
}
//translate ([0, 0, thickness]) // separate two parts
//bottom ();
rotate([180,0,0]) // hole for top part mounting nut
top ();