Cool, thanks a lot! Nice and compact code actually.
I will just quickly copy-paste it down here so it may be more convenient to grab for other users:
// uConsole cover version 1.0
// Created by Mark Bauer
// Use this file how ever you wish.
// If you decide to sell the product and feel guilty about it, don't feel guilty.
// you might give me credit for it though.
// If you make a gazillion dollars from it, you can give me a cut.
// BTC address 16WFNyEKCfNnZvQWu2NTqdcMGwUQV6tvSn
// changes 7/20/23 changed the radius of the corners a bit.
module roundedBoxBev(x,y,hz,r,bv){
// this is a generic brick with rounded corners.
// bv is a bevel on the bottom side only.
// you use the difference() function with another box to hollow it out.
up = bv;
difference(){
union(){
translate([r,0,0])cube([x-(2*r),y,hz]);
translate([0,r,0])cube([x,y-(2*r),hz]);
translate([r,r,up])cylinder(r=r,h=hz-up,$fn=64);
translate([x-r,r,up])cylinder(r=r,h=hz-up,$fn=64);
translate([r,y-r,up])cylinder(r=r,h=hz-up,$fn=64);
translate([x-r,y-r,up])cylinder(r=r,h=hz-up,$fn=64);
translate([r,r,0])cylinder(r1=r-up,r2=r,h=up,$fn=64);
translate([x-r,r,0])cylinder(r1=r-up,r2=r,h=up,$fn=64);
translate([r,y-r,0])cylinder(r1=r-up,r2=r,h=up,$fn=64);
translate([x-r,y-r,0])cylinder(r1=r-up,r2=r,h=up,$fn=64);
}
translate([x/2,0,bv-1.4142*2])rotate([45,0,0])cube([x,4,4],center=true);
translate([x/2,y,bv-1.4142*2])rotate([45,0,0])cube([x,4,4],center=true);
translate([0,y/2,bv-1.4142*2])rotate([0,45,0])cube([4,y,4],center=true);
translate([x,y/2,bv-1.4142*2])rotate([0,45,0])cube([4,y,4],center=true);
}
}
module cover(){
difference(){
union(){
roundedBoxBev(136,179,3.0,8,1.0);
translate([0,179,3+6])rotate([180,0,0])roundedBoxBev(136,179,6.0,8,3.0);
}
translate([2,2,-0.001])rotate([0,0,0])roundedBoxBev(132,175,3.0,6,0.0);
translate([4,4,-0.001])rotate([0,0,0])roundedBoxBev(128,171,7.0,1,0.0);
}
// part at the top
translate([(136/2)-50,179-2,-3])union(){
cube([100,2,5]);
translate([0,0,0.0])rotate([0,90,0])cylinder(h=100,r=2,$fn=32);
translate([0,0,-0.9])rotate([45,0,0])cube([100,2.5,2.5]);
translate([0,0,0])sphere(r=2,$fn=32);
translate([100,0,0])sphere(r=2,$fn=32);
}
// foot
translate([(136/2)-50,0,-17.7]){
cube([100,2,20.5]);
translate([0,2,0.2])rotate([0,90,0])cylinder(h=100,r=2,$fn=32);
translate([0,2,-0.6])rotate([45,0,0])cube([100,2.5,2.5]);
translate([0,2,0.2])sphere(r=2,$fn=32);
translate([100,2,0.2])sphere(r=2,$fn=32);
}
}
// intersection(){
cover();
// translate([60,-7,-25])cube([5,20,50]);
// }
// test1(); // just used to test how things fit before I print the whole thing.