57 lines
No EOL
1.3 KiB
OpenSCAD
57 lines
No EOL
1.3 KiB
OpenSCAD
$fn=240;
|
|
use <lib/mirrorcopy.scad>
|
|
use <lib/metric_screws.scad>
|
|
selfTappingHolesMM = 2.9-0.25;
|
|
holeDistanceMM = 61;
|
|
standoffDiameterMM = 88;
|
|
|
|
module screw(recessCap=20){
|
|
length=20;
|
|
selfTappingScrew(mSize=3, length=length,recessCap=recessCap);
|
|
translate([0,0,(recessCap+length)/2])cylinder(h=recessCap,d=10, center=true);
|
|
}
|
|
module selfTappingHoles() {
|
|
mirrorCopy([1,1,0])
|
|
mirrorCopy([1,0,0])
|
|
translate([holeDistanceMM/2,0,0])
|
|
cylinder(d=selfTappingHolesMM, h=20+1, center=true);
|
|
}
|
|
module clearanceHoles(){
|
|
mirrorCopy([1,1,0])
|
|
mirrorCopy([1,0,0])
|
|
translate([holeDistanceMM/2,0,0])
|
|
screw(recessCap=22);
|
|
translate([0,holeDistanceMM/2,0])
|
|
screw(recessCap=50);
|
|
}
|
|
module foot(){
|
|
cylinder(d=standoffDiameterMM,h=20,center=true);
|
|
}
|
|
module middle(){
|
|
translate([0,90,35+7])
|
|
scale([0.5,0.6,1])
|
|
sphere(d=standoffDiameterMM*0.7);
|
|
}
|
|
module wall(){
|
|
translate([0,110+5,35])
|
|
rotate([90,0,0])
|
|
cylinder(d=standoffDiameterMM,h=10,center=true);
|
|
}
|
|
difference(){
|
|
union(){
|
|
hull(){
|
|
foot();
|
|
middle();
|
|
}
|
|
hull(){
|
|
middle();
|
|
wall();
|
|
}
|
|
}
|
|
selfTappingHoles();
|
|
|
|
translate([0,110+10,35])
|
|
rotate([90,0,0])
|
|
clearanceHoles();
|
|
}
|
|
/**/ |