57 lines
1.2 KiB
OpenSCAD
57 lines
1.2 KiB
OpenSCAD
difference() {
|
|
union() {
|
|
cage();
|
|
}
|
|
|
|
translate([208.5 / 2, 0, 43.5])
|
|
rotate([90, 0, 30])
|
|
cylinder(h=50, d=4.2, center=true, $fn=100);
|
|
}
|
|
|
|
edges();
|
|
|
|
module edges() {
|
|
translate([0, 0, 83])
|
|
torus2(d_major=204, d_minor=6, $fn=500);
|
|
|
|
translate([0, 0, 3])
|
|
torus2(d_major=204, d_minor=6, $fn=500);
|
|
}
|
|
|
|
module cage() {
|
|
difference() {
|
|
translate([0, 0, 3])
|
|
cylinder(h=80, d=210, $fn=500);
|
|
|
|
translate([0, 0, -20])
|
|
cylinder(h=150, d=204, $fn=500);
|
|
|
|
for (a = [15 : 6 : 351]) {
|
|
for (h = [11.5 : 18 : 66]) {
|
|
rotate([0, 0, a])
|
|
translate([100, 0, h])
|
|
rotate([0, 90, 0])
|
|
cylinder(h=50, d=9, $fn=50);
|
|
}
|
|
}
|
|
|
|
for (a = [12 : 6 : 348]) {
|
|
for (h = [20.5 : 18 : 75]) {
|
|
rotate([0, 0, a])
|
|
translate([100, 0, h])
|
|
rotate([0, 90, 0])
|
|
cylinder(h=50, d=9, $fn=50);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module torus(r_major, r_minor) {
|
|
rotate_extrude()
|
|
translate([r_major, 0, 0])
|
|
circle(r=r_minor);
|
|
}
|
|
|
|
module torus2(d_major, d_minor) {
|
|
torus(r_major=d_major / 2, r_minor=d_minor / 2);
|
|
} |