74 lines
1.5 KiB
OpenSCAD
74 lines
1.5 KiB
OpenSCAD
include <BOSL2/std.scad>
|
|
|
|
// Parameter for console overwrite
|
|
x = 30.0;
|
|
y = 30.0;
|
|
z = 20.0;
|
|
|
|
box(x, y, z);
|
|
|
|
module box(x, y, z) {
|
|
difference() {
|
|
// base
|
|
cuboid(
|
|
[ x, y, z - 2],
|
|
anchor = [ -1, -1, -1 ],
|
|
rounding = 1,
|
|
edges = [
|
|
TOP,
|
|
FRONT + LEFT,
|
|
FRONT + RIGHT,
|
|
BACK + LEFT,
|
|
BACK + RIGHT
|
|
]
|
|
);
|
|
|
|
// inner
|
|
translate([ 5, 1.5, 1.5 ]) cuboid(
|
|
[ x - 10, y - 3, z - 0.5 ],
|
|
anchor = [ -1, -1, -1 ],
|
|
rounding = 8,
|
|
edges = [
|
|
BOTTOM + FRONT,
|
|
BOTTOM + LEFT,
|
|
BOTTOM + BACK,
|
|
BOTTOM + RIGHT,
|
|
FRONT + LEFT,
|
|
FRONT + RIGHT,
|
|
BACK + LEFT,
|
|
BACK + RIGHT
|
|
]
|
|
);
|
|
|
|
sideCut(y); // left lower
|
|
translate([0, 0, z - 2]) mirror([0, 0, 1]) sideCut(y); // left upper
|
|
translate([x, 0, 0]) mirror([1, 0, 0]) sideCut(y); // right lower
|
|
translate([x, 0, z - 2]) mirror([1, 0, 0]) mirror([0, 0, 1]) sideCut(y); // right upper
|
|
}
|
|
}
|
|
|
|
module sideCut(y) {
|
|
translate([0,-1,0]) rotate([-90,-90,0]) linear_extrude(y/4+4) polygon(points=[
|
|
[-1,-1],
|
|
[-1,2.1],
|
|
[3.05, 2.1],
|
|
[6.35,-1]
|
|
]);
|
|
|
|
difference() {
|
|
translate([0,y/4+2,0]) rotate([-90,-90,0]) linear_extrude(0.75 * y) polygon(points=[
|
|
[-1,-1],
|
|
[-1,3.45],
|
|
[7.15, 3.45],
|
|
[11.45,-1]
|
|
]);
|
|
|
|
translate([2.45,0.75 * y - 2.4, 0]) rotate([90,-90,0]) linear_extrude(0.4 * y + 5) polygon(points=[
|
|
[-1,-1],
|
|
[-1,0.35],
|
|
[3.05, 0.35],
|
|
[4.65,-1]
|
|
]);
|
|
}
|
|
}
|