author | Michael Krelin <hacker@klever.net> | 2016-06-26 21:15:10 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-06-26 21:15:10 (UTC) |
commit | 7791aaa609a8b3e397bc88b7811b938b988c75f7 (patch) (side-by-side diff) | |
tree | b90f3cdbaef4eeaf43ab14f95d6f2cf1c20fbbf9 | |
parent | 0bd5c1fd7159694b36ef69694143eef00d442961 (diff) | |
download | hotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.zip hotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.tar.gz hotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.tar.bz2 |
higher mixing vessel for more convenient mixing
-rw-r--r-- | mixing.scad | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/mixing.scad b/mixing.scad index ecbdfd8..fae9d52 100644 --- a/mixing.scad +++ b/mixing.scad @@ -1,56 +1,57 @@ s=2; /* shell thickness */ defaultvolume=20*10*20; /* volume for testing */ /* side of the cube, containing half the volume */ function mixing_hvs(volume=defaultvolume) = pow(volume/2,1/3); /* vessel dimensions */ -function mixing_size(volume=defaultvolume) = let(hvs = mixing_hvs(volume=volume)) [2*hvs+3*s,hvs+2*s,hvs+2*s]; +function mixing_size(volume=defaultvolume) = let(hvs = mixing_hvs(volume=volume)) [2*hvs+3*s,hvs+2*s,hvs+3*s]; module mixing( volume=defaultvolume, /* volume in cubic mm */ what="altogethernow" /* vessel|splitter|altogethernow */ ) { g=1; /* guide diameter */ hvs = mixing_hvs(volume=volume); + sz = mixing_size(volume=volume); if(what=="vessel") { - sz = mixing_size(volume=volume); translate([-sz[0]/2,-sz[1]/2,0]) difference() { cube(size=sz); translate([s,s,s]) - cube(size=[2*hvs+s,hvs,hvs+s+1]); + cube(size=[2*hvs+s,hvs,sz[2]+1]); } for(mx=[0,1]) mirror([mx,0,0]) { // horizontal guide translate([s/2+g/2,0,s]) rotate([90,0,0]) cylinder(d=g,h=hvs+s,center=true,$fn=12); for(my=[0,1]) mirror([0,my,0]) { // vertical guide + crowning sphere translate([s/2+g/2,hvs/2,0]) { - cylinder(d=g,h=hvs+2*s-g/2,$fn=12); - translate([0,0,s+hvs+s-g/2]) sphere(d=g,$fn=12); + cylinder(d=g,h=sz[2]-g/2,$fn=12); + translate([0,0,sz[2]-g/2]) sphere(d=g,$fn=12); } } // level translate([0,0,s+hvs]) { translate([s/2+hvs,0,0]) rotate([90,0,0]) cylinder(d=g,h=hvs+s,center=true,$fn=12); for(my=[0,1]) mirror([0,my,0]) { translate([s/2+g/2,hvs/2,0]) rotate([0,90,0]) cylinder(d=g,h=hvs-g/2+s/2,$fn=12); } } } }else if(what=="splitter") { + z1 = sz[2]; z2 = 2*z1; hull() { - translate([-s/2,-hvs/2,0]) cube(size=[s,hvs,hvs+2*s]); + translate([-s/2,-hvs/2,0]) cube(size=[s,hvs,z1]); cd=hvs/2; - for(yz=[ [0,2*hvs], [-hvs/2+cd/2,hvs+2*s], [hvs/2-cd/2,hvs+2*s] ]) + for(yz=[ [0,z2], [-hvs/2+cd/2,z1], [hvs/2-cd/2,z1] ]) translate([0,yz[0],yz[1]]) rotate([0,90,0]) cylinder(d=cd,h=s,$fn=60,center=true); } - translate([0,0,2*hvs]) sphere(d=2*s,$fn=30); + translate([0,0,z2]) sphere(d=2*s,$fn=30); }else if(what=="altogethernow") { mixing(volume=volume,what="vessel"); translate([0,0,s]) mixing(volume=volume,what="splitter"); } } color("salmon",0.7) mixing(what="altogethernow"); /* vim:set ai sw=1: */ |