53 lines
1.8 KiB
OpenSCAD
53 lines
1.8 KiB
OpenSCAD
$fn=32*2;
|
|
thickness=1.6;
|
|
width=208.2;
|
|
depth=70.2;
|
|
height=10;
|
|
|
|
// cover
|
|
difference(){
|
|
translate([0, 0, 0])
|
|
chamferCube(width+(thickness*2), depth+(thickness*2), height+thickness, 8, [0, 0, 1, 1], [0, 1, 1, 0], [0, 0, 0, 0]);
|
|
|
|
translate([thickness, thickness, 0])
|
|
chamferCube(width, depth, height, 8, [0, 0, 1, 1], [0, 1, 1, 0], [0, 0, 0, 0]);
|
|
|
|
translate([(width+(thickness*2))/2, (depth+(thickness*2))/2, height])
|
|
cylinder(h=thickness, d=41.5);
|
|
}
|
|
|
|
// logo
|
|
translate([(width+(thickness*2))/2, (depth+(thickness*2))/2, height])
|
|
linear_extrude(height=1.6)
|
|
resize([42, 42, 0])
|
|
import(file="mk-logo.svg", center=true);
|
|
|
|
module chamferCube(sizeX, sizeY, sizeZ, chamferHeight, chamferX, chamferY, chamferZ) {
|
|
chamferX = (chamferX == undef) ? [1, 1, 1, 1] : chamferX;
|
|
chamferY = (chamferY == undef) ? [1, 1, 1, 1] : chamferY;
|
|
chamferZ = (chamferZ == undef) ? [1, 1, 1, 1] : chamferZ;
|
|
chamferCLength = sqrt(chamferHeight * chamferHeight * 2);
|
|
|
|
difference() {
|
|
cube([sizeX, sizeY, sizeZ]);
|
|
for(x = [0 : 3]) {
|
|
chamferSide1 = min(x, 1) - floor(x / 3); // 0 1 1 0
|
|
chamferSide2 = floor(x / 2); // 0 0 1 1
|
|
if(chamferX[x]) {
|
|
translate([-0.1, chamferSide1 * sizeY, -chamferHeight + chamferSide2 * sizeZ])
|
|
rotate([45, 0, 0])
|
|
cube([sizeX + 0.2, chamferCLength, chamferCLength]);
|
|
}
|
|
if(chamferY[x]) {
|
|
translate([-chamferHeight + chamferSide2 * sizeX, -0.1, chamferSide1 * sizeZ])
|
|
rotate([0, 45, 0])
|
|
cube([chamferCLength, sizeY + 0.2, chamferCLength]);
|
|
}
|
|
if(chamferZ[x]) {
|
|
translate([chamferSide1 * sizeX, -chamferHeight + chamferSide2 * sizeY, -0.1])
|
|
rotate([0, 0, 45])
|
|
cube([chamferCLength, chamferCLength, sizeZ + 0.2]);
|
|
}
|
|
}
|
|
}
|
|
} |