eps = 0.01; infty = 100; wall = 1.5; alu_w = 32 + 0.5; alu_h = 11 + 0.5; alu_wall = 1.8; alu_side = 4 + 0.5; inside_l = 4.5; inside_h = 5; alu_side2 = 2; inside_h2 = 0.8; module alu_end() { translate([-alu_w/2, -alu_h/2, 0]) cube([alu_w, alu_h, wall]); translate([-alu_w/2+alu_side2, -alu_h/2+alu_wall, 0]) cube([alu_w - 2*alu_side2, inside_h2, wall+inside_l]); translate([-alu_w/2+alu_side, -alu_h/2+alu_wall, 0]) cube([alu_w - 2*alu_side, inside_h, wall+inside_l]); } // translate([0, -1.5*alu_h, 0]) alu_end(); end2_h = wall + 10; end2_l = 40; cable_w = 2.5; cable_h = 8; module alu_end2() { difference() { union() { alu_end(); // rear translate([-alu_w/2, alu_h/2, 0]) cube([alu_w, end2_h, wall]); // bottom translate([-alu_w/2, alu_h/2+end2_h-wall, 0]) cube([alu_w, wall, end2_l]); // sides for (x = [-1, 1]) scale([x, 1, 1]) translate([alu_w/2-wall, alu_h/2, 0]) cube([wall, end2_h, end2_l]); } translate([-alu_w/2-eps, alu_h/2-cable_w, -eps]) cube([cable_h+eps, cable_w, wall+2*eps]); } } // alu_end2(); alu_end();