3dprint/air_tank_mount.scad

66 lines
2.2 KiB
OpenSCAD

$fn = 100;
bottle_dia = 45;
air_tank_mount_v2();
module air_tank_mount_v0() {
difference() {
translate([-24, -24, 0]) cube([48, 48, 8]);
translate([0, 0, -1]) cylinder(r=22.5, h=72);
translate([-20, -20, 4]) dualhole(true);
translate([-20, 20, 4]) dualhole(true);
translate([20, -20, 4]) dualhole(true);
translate([20, 20, 4]) dualhole(true);
}
}
module air_tank_mount_v1() {
difference() {
translate([-24, -24, 0]) cube([48, 48, 8]);
translate([0, 0, -1]) cylinder(r=22.5, h=72);
translate([-20, -20, 4]) dualhole();
translate([-20, 20, 4]) dualhole();
translate([20, -20, 4]) dualhole();
translate([20, 20, 4]) dualhole();
}
}
module air_tank_mount_v2() {
sz = ceil((bottle_dia+2.4)/8)*8;
difference() {
translate([-sz/2, -sz/2, 0]) cube([sz, sz, 8]);
translate([0, 0, -1]) cylinder(r=bottle_dia/2, h=72);
translate([-sz/2+4, -sz/2+4, 4]) axleround(axleradius=2.6, axlemesh=2);
translate([-sz/2+4, sz/2-4, 4]) axleround(axleradius=2.6, axlemesh=2);
translate([sz/2-4, -sz/2+4, 4]) axleround(axleradius=2.6, axlemesh=2);
translate([sz/2-4, sz/2-4, 4]) axleround(axleradius=2.6, axlemesh=2);
// translate([-25, -25, 4]) cube([50, 50, 8]);
}
}
module axleround(h = 24, axleradius = 2.3, axlemesh = 1.7) {
translate([0, 0, -h/2]) difference() {
cylinder($fn=16, r=axleradius, h=h);
translate([axlemesh/2, axlemesh/2, -1]) cube([axleradius, axleradius, h+2]);
translate([axlemesh/2, -axlemesh/2-axleradius, -1]) cube([axleradius, axleradius, h+2]);
translate([-axlemesh/2-axleradius, axlemesh/2, -1]) cube([axleradius, axleradius, h+2]);
translate([-axlemesh/2-axleradius, -axlemesh/2-axleradius, -1]) cube([axleradius, axleradius, h+2]);
}
}
module hole() {
union() {
cylinder(r=2.4, h=8);
translate([0, 0, -0.1]) cylinder(r=3, h=0.8+0.1);
translate([0, 0, 7.2]) cylinder(r=3, h=0.8+0.1);
};
}
module dualhole(both = false) {
translate([0, 4, 0]) rotate([90, 0, 0]) hole();
if (both) {
translate([4, 0, 0]) rotate([0, -90, 0]) hole();
}
}