Space-Light-Button-Stands/main_space_light_button_stand.scad
2024-06-24 11:19:21 +02:00

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();
}