First Printed Version
This commit is contained in:
53
Baller.scad
53
Baller.scad
@@ -9,7 +9,7 @@ $incolor = true;
|
|||||||
// Config
|
// Config
|
||||||
BallDiameter = 65;
|
BallDiameter = 65;
|
||||||
BallClearance = 2;
|
BallClearance = 2;
|
||||||
BallSealWidth = 2;
|
BallSealWidth = 3;
|
||||||
PlateLip = 2;
|
PlateLip = 2;
|
||||||
PlateDiameter = BallDiameter + 2*(BallClearance + BallSealWidth + PlateLip);
|
PlateDiameter = BallDiameter + 2*(BallClearance + BallSealWidth + PlateLip);
|
||||||
PlateThick = BallSealWidth/2 + 1;
|
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([-(pd+5),0]) mold_wall(PlateDiameter, pt, BallDiameter);
|
||||||
translate([0,-(pd+5)]) plate_under();
|
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) {
|
module stack(pt, ed=10 ,expand=false) {
|
||||||
d = expand ? pt + ed : pt+.01;
|
d = expand ? pt + ed : pt+.01;
|
||||||
for (i = [0:$children-1]) {
|
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;
|
threadc = $incolor ? "green" : undef;
|
||||||
|
ptol = 2;
|
||||||
|
wh = bd/2+pt+sd;
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
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(
|
color(threadc) metric_thread(
|
||||||
diameter=pd+wt,
|
diameter=pd+ptol,
|
||||||
length=8.01,
|
length=4.01,
|
||||||
internal=false);
|
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() {
|
difference() {
|
||||||
cylinder(d=pd+2*wt, h=th);
|
cylinder(d=td+wt, h=th);
|
||||||
translate([0,0,-.01]) cylinder(d=pd-6, h=5);
|
translate([0,0,-.01]) cylinder(d=3, h=5);
|
||||||
translate([0,0,pt]) metric_thread(diameter=pd+wt,length=th+.01, internal=true);
|
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(
|
module plate(
|
||||||
@@ -115,11 +117,16 @@ module ball(
|
|||||||
translate([0,0,(maxz+minz)/2])
|
translate([0,0,(maxz+minz)/2])
|
||||||
cube([bd, bd, maxz-minz],center=true);
|
cube([bd, bd, maxz-minz],center=true);
|
||||||
}
|
}
|
||||||
color(insertc) if (insert) for (iz = [-bd/2, bd/2]) {
|
color(insertc) {
|
||||||
rot = (iz < 0) ? 180 : 0;
|
if (insert) for (iz = [-bd/2, bd/2]) {
|
||||||
//translate([0,0,bd/2])thread_insertM3($die=true);
|
rot = (iz < 0) ? 180 : 0;
|
||||||
translate([0,0,iz])
|
translate([0,0,iz])
|
||||||
rotate([0,rot,0]) thread_insertM3($die=true);
|
rotate([0,rot,0])
|
||||||
|
thread_insertM25($die=true);
|
||||||
|
}
|
||||||
|
if (! bottom)
|
||||||
|
rotate([0,0,0])
|
||||||
|
thread_insertM25($die=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user