45 lines
1.2 KiB
OpenSCAD
45 lines
1.2 KiB
OpenSCAD
h = 140;
|
|
l = 100;
|
|
w = 70 + 100;
|
|
|
|
d2 = 25;
|
|
|
|
hd = 10;
|
|
|
|
wall = 3;
|
|
|
|
$fn=50;
|
|
|
|
// Private variables
|
|
_slot = wall + sep;
|
|
|
|
module wall() {
|
|
difference() {
|
|
translate([0, l / 2, 0]) rotate([0, 90, 0]) cylinder(r = l / 2, h = wall);
|
|
translate([-0.5, 0, 0]) rotate([0, 90, 0]) cube(size =[l/2, l, wall+1]);
|
|
translate([-0.5, l / 2 - 20, l / 2]) rotate([0, 90, 0]) cylinder(r = d2 / 2, h = wall+1);
|
|
translate([-0.5, l / 2 + 20, l / 2]) rotate([0, 90, 0]) cylinder(r = d2 / 2, h = wall+1);
|
|
}
|
|
}
|
|
|
|
|
|
module ellipsoid(diameter, width, height) {
|
|
scale([1, width/diameter, 1]) linear_extrude(height = height) circle(d = diameter);
|
|
}
|
|
|
|
union() {
|
|
difference() {
|
|
cube(size = [w, l, wall]);
|
|
translate([ 35, 50, 0]) ellipsoid(50,80, wall+1);
|
|
translate([ 84, 50, 0]) ellipsoid(20,80, wall+1);
|
|
translate([109, 50, 0]) ellipsoid(20,80, wall+1);
|
|
translate([134, 50, 0]) ellipsoid(20,80, wall+1);
|
|
translate([159, 50, 0]) ellipsoid(20,80, wall+1);
|
|
}
|
|
translate([ 0, 0, 0]) wall();
|
|
translate([ 70, 0, 0]) wall();
|
|
translate([ 95, 0, 0]) wall();
|
|
translate([120, 0, 0]) wall();
|
|
translate([145, 0, 0]) wall();
|
|
translate([170, 0, 0]) wall();
|
|
}
|