M0UNTAIN 0F C0DE

Aquarium Pipe Guide

3D model aquarium

The canister filter I bought for my aquarium came with plastic U-bends which directed the flow over the lip of the glass. Whoever designed it obviously knew very little about fluid dynamics. It constricted flow and had hard 90° corners.

Having the tube bend smoothly without kinking required a little guide. A 20 mm vinyl tube should push snugly into this guide.

The OpenSCAD file can be adjusted for other sized tubes, different radius bends and any angle.

$fn=80;

module corner(diameter, angle, bendRadius, legLengthA, legLengthB) {
    
    legLengthB=legLengthB-2.5;
    
    module bend() {
        rotate_extrude(angle=angle,convexity=10) {
            translate([bendRadius,0,0]) {
                difference() {
                    circle(d=diameter);
                    translate([0,-diameter/4,0]) square(diameter/2);
                }
            }
        }
    }
    
    rotate([0,0,-angle]) union() {
        bend();
        rotate([180+(90-angle)+0.05,90,0]) translate([0,-bendRadius,0]) cylinder(d=diameter,h=legLengthA);
        translate([bendRadius,0.05,0]) rotate([90,0,0]) cylinder(d=diameter,h=legLengthB);
    }
}

module support(angle, outerDiameter, wall, radius) {
    difference() {
        corner(outerDiameter,angle,radius,0,0);
        corner(outerDiameter-(wall*2),angle,radius,0.01,0.01);
    }
    
    module leg() {
        difference() {
            rotate([-90,0,0]) difference() {
                cylinder(d=outerDiameter, h=20);
                cylinder(d=outerDiameter-(wall*2), h=20);
            }
            translate([outerDiameter/2,0,0]) cube([outerDiameter/2,100,outerDiameter/2], center=true);
        }
    }
    
    translate([radius,0,0]) leg();
    translate([-radius,0,0]) rotate([0,180,0]) leg();
}

support(180,19.7,2,28);