Commit 547e8982 authored by György Kurucz's avatar György Kurucz
Browse files

Add centrifugal_pump and gearbox.

parent 997a0323
use <../include/short.scad>
$fn = 100;
ID = 25; // internal diameter
CW = .8; // case wall thickness
H = 5; // height of case
OD = 5; // output diameter
ODB = 3; // output pipe diameter
I_N = 6; // number of impeller blades
I_T = .8; // impeller tolerance
I_B = .8; // impeller base plate thickness
SH = 2; // motor shaft diameter
SL = 8; // motor shaft length
S_P = 4.5; // plastic hex shaft diameter
S_L = 35; // plastic hex shaft length
S_T = 1; // plastic hex shaft tube tolerance
M_H = 29; // mount height
M_A = 18; // height after motor is thicker
M_B = 2; // how much thicker
M_W = .8; // mount wall thickness
module motor_mount_shape() {
module a() {
rotate([0,0,90]) intersection() {
square([100, 15.5], center=true);
circle(d=20);
}
}
module b() {
circle(d = 34);
}
b();
}
module case_inside_shape(r, od, th) {
ra = od / 4;
rt = r + th;
circle(r = rt);
intersection() {
tX(ra) circle(r = rt + ra);
tXY(-rt-1, -rt-ra) square([2*(rt + ra + 1), rt + ra + 1]);
}
}
module case_output_shape(r, od, th) {
ra = od / 4;
rt = r + th;
tXY(r - od/2 - th,-1) square([od + th*2, rt*.6 + 1]);
}
module case_inside(r = ID/2, od=5, h=10, th=0) {
ra = od / 4;
rt = r + th;
module flat() { case_inside_shape(r=r, od=od, th=th); }
module ct() { tXZ(r, H-ODB/2) rotate([-90,0,0]) children(); }
tZ(-th) linear_extrude(h + 2*th) flat();
hull() {
tZ(-th) linear_extrude(h + 2*th)
case_output_shape(r=r, od=od, th=th);
ct() cylinder(h=rt*1.3, d=ODB + 2*th);
}
ct() cylinder(h=r*2 - th, d=ODB + 2*th);
}
module motor_mount_inside() {
bh = 1.8;
bhp = 2;
module shape() { motor_mount_shape(); }
module base() {
translate([0,0,bh + bhp]) linear_extrude(M_H) shape();
translate([0,0,bh + bhp + M_A]) linear_extrude(M_H-M_A) offset(M_B) shape();
translate([0,0,bhp]) cylinder(h=bh + 1, d = 6.1);
cylinder(h=2*bhp+1, center=true, d=SH);
}
base();
}
module impeller() {
a = 0;
base_rot = a - 53;
dir = -1; // -1: back, 1: front
module blade() {
t = .8;
// translate([0,-t/2,0]) cube([ID/2-I_T, t, H]);
intersection() {
d = ID*.8;
rX(a) tXY(d/2/sqrt(2), dir * d/2/sqrt(2)) diff() {
cylinder(d=d, h=3*H, center=true);
tZ(-1) cylinder(d=d-t*2, h=3*H+3, center=true);
}
tY(-4) cube([ID/2-I_T, 8, H]);
rZ(base_rot) cylinder(d=ID-2*I_T, h=H, $fn=I_N);
}
}
difference() {
union() {
rZ(base_rot) cylinder(h=I_B, d=ID-I_T*2, $fn=I_N);
for (i=[0:I_N]) {
rotate([0,0,i*360/I_N]) blade();
}
cylinder(h=H, d=3);
}
//tZ(-1) cylinder(h=H+2, d=S_P + S_T, $fn=6);
}
}
module plastic_shaft() {
diff() {
cylinder(d=S_P, h=S_L-1, $fn=6);
tZ(-1) cylinder(d=SH, h=SL+1);
}
}
module case() {
translate([0,0,CW]) difference() {
case_inside(r=ID/2, od=OD, h=H, th=CW);
case_inside(r=ID/2, od=OD, h=H);
cylinder(r=ID/2, h=100);
cylinder(d=S_P + 2*S_T, center=true, h=10);
}
}
module main() {
rX(180) case();
difference() {
h = S_L;
d = S_P + 2*S_T;
w = .4 * 4 * 2;
union() {
tZ(-CW) cylinder(h=h+CW, d=d + w);
hull() {
tZ(h) linear_extrude(1) offset(.8)
motor_mount_shape();
tZ(h-S_L*.3) cylinder(d=d,h=1);
}
hull() {
tZ(-CW) cylinder(h=CW, d=2.5*d);
tZ(S_L * .2) cylinder(h=1, d=d);
}
tZ(h) tube(10, .4) motor_mount_shape();
}
tZ(-CW-1) cylinder(h=h+CW+10, d=d);
tZ(h) cylinder(h=3, d = 6.1, center=true);
tXYZ(-10, -d*.4/2, -2) cube([20, d*.4, h]);
for(i = [0:6])
rotate([0,0,i*60]) tX(26/2) {
cylinder(d = 2.5, h = 100, center=true);
tZ(S_L-4) cylinder(d = 5, h=4, center=true);
}
}
}
module print() {
tZ(H + 2*CW) main();
tY(ID + 2) tZ(H) union() {
rX(180) impeller();
tZ(S_L-I_B-1) rX(180) plastic_shaft();
}
}
print();
use <../include/gear.scad>;
dist = 52.5;
n1 = 8;
n2 = 40;
echo("Ratio: ", n2 / n1);
mm_per_tooth = (dist / (n1 + n2)) * 2 * PI;
module g(n) {
gear(
mm_per_tooth = mm_per_tooth,
number_of_teeth = n,
thickness = 6,
hole_diameter = 2,
clearance = .2,
backlash = .1
);
}
difference() {
union() {
rotate([0,0,360/n2/2]) g(n2);
translate([0,0,-6/2]) cylinder(d=5, h=8, $fn=100);
}
translate([-1.3/2, -5/2, -6/2-1]) cube([1.3, 5, 5]);
}
translate([0, pitch_radius(mm_per_tooth, n1) + pitch_radius(mm_per_tooth, n2) + 2 ,0]) g(n1);
//# cube([5, dist, 5]);
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment