$fn=32*2; thinkness=1.6; width=208.5; depth=70.5; height=8; // outer display frame difference(){ cube([width+(thinkness*2), depth+(thinkness*2), height]); translate([thinkness, thinkness, 0]) cube([width, depth, height]); } // inner display catch translate([thinkness, thinkness, 1.5]){ offset=5; ledge=0.8; difference(){ translate([offset, 0, 0]) cube([width-(offset*2), depth, thinkness]); translate([0, ledge, 0]) cube([width, depth-(ledge*2), thinkness]); } } // usb floor usb_floor(); // battery floor battery_floor(145); // raspberry pi 4 cover rpi4_cover(); module usb_floor(){ offset=5.6+thinkness; hole=6; difference([]){ translate([0, 0, height]) cube([31+thinkness+10, depth+(thinkness*2), 2+thinkness]); translate([0, 0, height+thinkness]) cube([31, depth+(thinkness*2), 2+thinkness]); translate([31+thinkness, thinkness, height]) cube([10, depth, 2]); translate([31+thinkness+5, offset, height+2]) cylinder(h=thinkness, d=hole); translate([31+thinkness+5, depth+(thinkness*2)-offset, height+2]) cylinder(h=thinkness, d=hole); } } module battery_floor(x){ offset=5.6+thinkness; hole=6; difference(){ translate([x+thinkness, 0, height]) cube([width-x+thinkness, depth+(thinkness*2), 4+thinkness]); translate([x+thinkness, thinkness, height]) cube([width-x, depth, 4]); translate([x+thinkness+5, offset, height+4]) cylinder(h=thinkness, d=hole); translate([x+thinkness+5, depth+(thinkness*2)-offset, height+4]) cylinder(h=thinkness, d=hole); } } module rpi4_cover(){ difference(){ translate([31+thinkness+10, 0, height]) cube([104, depth+(thinkness*2), 25+thinkness]); translate([31+thinkness+10, thinkness, height]) cube([104, depth, 25]); translate([31+thinkness+62, (depth+(thinkness*2))/2, height+25]) cylinder(h=thinkness, d=41.5); } translate([17+thinkness, 0, height+2.6]) prism(24, thinkness, 24); // logo translate([31+thinkness+62, (depth+(thinkness*2))/2, height+25]) linear_extrude(height=1.6) resize([42, 42, 0]) import(file="mk-logo.svg", center=true); } module prism(l, w, h){ polyhedron( points=[[0,w,0], [0,0,0], [l,0,0], [l,w,0], [l,w,h], [l,0,h]], faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]); }