diff --git a/Baller.scad b/Baller.scad index 36e87ff..9265143 100644 --- a/Baller.scad +++ b/Baller.scad @@ -9,7 +9,7 @@ $incolor = true; // Config BallDiameter = 65; BallClearance = 2; -BallSealWidth = 2; +BallSealWidth = 3; PlateLip = 2; PlateDiameter = BallDiameter + 2*(BallClearance + BallSealWidth + PlateLip); PlateThick = BallSealWidth/2 + 1; @@ -25,14 +25,6 @@ translate([pd+5,pd+5]) cap_compression(PlateDiameter, pt); translate([-(pd+5),0]) mold_wall(PlateDiameter, pt, BallDiameter); translate([0,-(pd+5)]) plate_under(); -stack(pt, expand=false) { - cap_compression(PlateDiameter, pt); - //plate_under(); - //plate_mid(thickness=pt); - plate_top(thickness=pt); - mold_wall(PlateDiameter, pt, BallDiameter); -} - module stack(pt, ed=10 ,expand=false) { d = expand ? pt + ed : pt+.01; for (i = [0:$children-1]) { @@ -40,27 +32,37 @@ module stack(pt, ed=10 ,expand=false) { } } -module mold_wall(pd, pt, bd, wt=3) { +module mold_wall(pd, pt, bd, sd=4, wt=3) { threadc = $incolor ? "green" : undef; + ptol = 2; + wh = bd/2+pt+sd; difference() { union() { - translate([0,0,8]) cylinder(d=pd+wt, h=bd/2+pt-8); + translate([0,0,2]) cylinder(d=pd, h=wh); color(threadc) metric_thread( - diameter=pd+wt, - length=8.01, + diameter=pd+ptol, + length=4.01, internal=false); } - translate([0,0,-.1]) cylinder(d1=pd-1, d2=pd+1, h=bd/2+pt+.2); + translate([0,0,-.1]) + cylinder(d1=pd-wt, d2=pd-wt-3, h=wh+4+.2); } } -module cap_compression(pd, pt, th=7, wt=3) { +module cap_compression(pd, pt, th=7, wt=3, register=true, key=true) { + td=pd+2; difference() { - cylinder(d=pd+2*wt, h=th); - translate([0,0,-.01]) cylinder(d=pd-6, h=5); - translate([0,0,pt]) metric_thread(diameter=pd+wt,length=th+.01, internal=true); + cylinder(d=td+wt, h=th); + translate([0,0,-.01]) cylinder(d=3, h=5); + translate([0,0,-.01]) cylinder(d=6, h=3); + translate([0,0,2*pt]) metric_thread(diameter=td,length=th+.01, internal=true); + if (register && ! key) + translate([0,0,2*pt]) register_seal(); + } + if (register && key) + translate([0,0,2*pt]) register_seal(); } module plate( @@ -115,11 +117,16 @@ module ball( translate([0,0,(maxz+minz)/2]) cube([bd, bd, maxz-minz],center=true); } - color(insertc) if (insert) for (iz = [-bd/2, bd/2]) { - rot = (iz < 0) ? 180 : 0; - //translate([0,0,bd/2])thread_insertM3($die=true); - translate([0,0,iz]) - rotate([0,rot,0]) thread_insertM3($die=true); + color(insertc) { + if (insert) for (iz = [-bd/2, bd/2]) { + rot = (iz < 0) ? 180 : 0; + translate([0,0,iz]) + rotate([0,rot,0]) + thread_insertM25($die=true); + } + if (! bottom) + rotate([0,0,0]) + thread_insertM25($die=true); } } }