92 lines
No EOL
2.3 KiB
OpenSCAD
92 lines
No EOL
2.3 KiB
OpenSCAD
$fn=120;
|
|
radius=5;
|
|
|
|
use <lib/mirrorcopy.scad>;
|
|
use <lib/pcd.scad>;
|
|
use <lib/metric_screws.scad>;
|
|
|
|
module base(){
|
|
hull()
|
|
mirrorCopy([1,0,0],[0,1,0])
|
|
translate([40/2,40/2,5/2])
|
|
cylinder(h=5,r=radius, center=true);
|
|
}
|
|
module ring0(){
|
|
translate([0,0,10])cylinder(h=1,d=35);
|
|
}
|
|
module ring1(){
|
|
translate([0,0,10+10])cylinder(h=1,d=28);
|
|
}
|
|
module ring2(){
|
|
translate([0,0,10+10+10])cylinder(h=1,d=26);
|
|
}
|
|
module ring3(){
|
|
translate([0,0,10+10+10+10])cylinder(h=1,d=25);
|
|
}
|
|
module ring4(){
|
|
translate([0,0,10+10+10+10+30])cylinder(h=1,d=25);
|
|
}
|
|
module ring5(){
|
|
translate([0,0,10+10+10+10+30+30])cylinder(h=1,d=26);
|
|
}
|
|
module ring6(){
|
|
translate([0,0,10+10+10+10+30+30+10])cylinder(h=1,d=28);
|
|
}
|
|
module ring7(){
|
|
translate([0,0,10+10+10+10+30+30+10+10])cylinder(h=1,d=35);
|
|
}
|
|
module groove(){
|
|
hull(){
|
|
translate([25/2,0,25])sphere(r=2);
|
|
translate([25/2+5,0,25])sphere(r=2);
|
|
translate([25/2,0,10+10+10+10+30+30+10+10-15])sphere(r=2);
|
|
translate([25/2+5,0,10+10+10+10+30+30+10+10-15])sphere(r=2);
|
|
}
|
|
}
|
|
module pedistal(){
|
|
difference(){
|
|
hull(){
|
|
ring7();
|
|
translate([0,0,110])
|
|
mirrorCopy([1,0,0],[0,1,0])
|
|
translate([(45-radius)/2,(45-radius)/2,24.5])
|
|
cylinder(h=1,r=radius, center=true);
|
|
}
|
|
mirrorCopy([1,0,0])
|
|
translate([25/2,0,25/2+0.5])
|
|
cylinder(d=3.2, h=24, center=true);
|
|
}
|
|
}
|
|
module column(){
|
|
render()
|
|
difference(){
|
|
union(){
|
|
hull(){ base(); ring0(); }
|
|
hull(){ ring0(); ring1(); }
|
|
hull(){ ring1(); ring2(); }
|
|
hull(){ ring2(); ring3(); }
|
|
hull(){ ring3(); ring4(); }
|
|
hull(){ ring4(); ring5(); }
|
|
hull(){ ring5(); ring6(); }
|
|
hull(){ ring6(); ring7(); }
|
|
pedistal();
|
|
}
|
|
|
|
pcd(360/12)groove();
|
|
|
|
mirrorCopy([1,0,0])
|
|
translate([25/2,0,25/2+0.5+110])
|
|
cylinder(d=3.2, h=24, center=true);
|
|
|
|
mirrorCopy([1,0,0],[0,1,0])
|
|
translate([17.5,17.5,-4])
|
|
selfTappingScrew(mSize=5, length=20, recessCap=10);
|
|
}
|
|
}
|
|
|
|
if($preview){
|
|
rotate([0,0,360*$t])
|
|
column();
|
|
}else{
|
|
column();
|
|
} |