46 lines
1.2 KiB
OpenSCAD
46 lines
1.2 KiB
OpenSCAD
$fn = 100;
|
|||
|
|
|
||
|
|
base_height = 4;
|
||
|
|
total_height = 80;
|
||
|
|
epsilon = 0.01;
|
||
|
|
|
||
|
|
difference() {
|
||
|
|
union() {
|
||
|
|
translate(v=[0, 0, base_height / 2]) {
|
||
|
|
cylinder(h=base_height, d=61, center=true);
|
||
|
|
}
|
||
|
|
translate(v=[30.5, 0, base_height / 2]) {
|
||
|
|
cylinder(h=base_height, d=12, center=true);
|
||
|
|
}
|
||
|
|
translate(v=[-30.5, 0, base_height / 2]) {
|
||
|
|
cylinder(h=base_height, d=12, center=true);
|
||
|
|
}
|
||
|
|
difference() {
|
||
|
|
translate(v=[0, 0, total_height / 2]) {
|
||
|
|
cylinder(h=total_height, d=53, center=true);
|
||
|
|
}
|
||
|
|
union() {
|
||
|
|
translate(v=[0, -30.5, 30.5 + base_height]) {
|
||
|
|
rotate(a=[0, 90, 0]) {
|
||
|
|
cylinder(h=100, r=30.5, center=true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
translate(v=[0, -50, 50 + 30.5 + base_height]) {
|
||
|
|
cube(100, center=true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
union() {
|
||
|
|
translate(v=[0, 0, 45]) {
|
||
|
|
cylinder(h=100, d=47, center=true);
|
||
|
|
}
|
||
|
|
translate(v=[31, 0, base_height / 2]) {
|
||
|
|
cylinder(h=base_height + epsilon, d=4.5, center=true);
|
||
|
|
}
|
||
|
|
translate(v=[-31, 0, base_height / 2]) {
|
||
|
|
cylinder(h=base_height + epsilon, d=4.5, center=true);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|