custom-keyboard/3dprint_case/rack.scad

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