40 lines
1.1 KiB
OpenSCAD
40 lines
1.1 KiB
OpenSCAD
|
include <BOSL2/std.scad>
|
||
|
|
||
|
$fn=100;
|
||
|
|
||
|
topHeight=140; // total height?
|
||
|
topWidth=26;
|
||
|
|
||
|
cutoutDepth=3;
|
||
|
cutoutHeight=8.3;
|
||
|
cutoutFromTop=17.75;
|
||
|
|
||
|
shelfHeight=30.5;
|
||
|
shelfDepth=13;
|
||
|
|
||
|
ballWidth=2*INCH;
|
||
|
|
||
|
thickness=145; //6*INCH;
|
||
|
|
||
|
rounding=2;
|
||
|
|
||
|
diff("remove","keep") {
|
||
|
cuboid([topHeight-ballWidth,topWidth,thickness], anchor=BOTTOM, rounding=rounding){
|
||
|
tag("remove") {
|
||
|
// cutout
|
||
|
position(BACK+BOTTOM+LEFT) down(1) right(cutoutFromTop)
|
||
|
cuboid([cutoutHeight,cutoutDepth*2,thickness+4], anchor=BOTTOM+LEFT);
|
||
|
// shelf
|
||
|
position(FRONT+BOTTOM+LEFT) left(1) down(1)
|
||
|
cuboid([shelfHeight+1,shelfDepth*2,thickness+4], anchor=BOTTOM+LEFT);
|
||
|
// relief
|
||
|
position(BACK+BOTTOM+RIGHT) left(shelfHeight) down(1)
|
||
|
cyl(thickness+2,d=shelfHeight*3, anchor=FRONT+BOTTOM+LEFT);
|
||
|
}
|
||
|
tag("keep") position(FRONT+RIGHT) cuboid([ballWidth/2,topWidth/2,thickness], rounding=rounding, anchor=FRONT);
|
||
|
// ruler
|
||
|
//position(TOP+BACK+LEFT) up(10) back(15) ruler(topHeight,10);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
right(topHeight/2) fwd(topWidth/4) cyl(thickness, d=ballWidth, anchor=BOTTOM, rounding=rounding);
|