summaryrefslogtreecommitdiff
authorMichael Krelin <hacker@klever.net>2016-06-26 21:15:10 (UTC)
committer Michael Krelin <hacker@klever.net>2016-06-26 21:15:10 (UTC)
commit7791aaa609a8b3e397bc88b7811b938b988c75f7 (patch) (side-by-side diff)
treeb90f3cdbaef4eeaf43ab14f95d6f2cf1c20fbbf9
parent0bd5c1fd7159694b36ef69694143eef00d442961 (diff)
downloadhotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.zip
hotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.tar.gz
hotendery-7791aaa609a8b3e397bc88b7811b938b988c75f7.tar.bz2
higher mixing vessel for more convenient mixing
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--mixing.scad17
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,54 +1,55 @@
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");
}
}