include // https://github.com/bullestock/lasercut-box-openscad h = 90; w = 90; d = 90; mmThick=6; difference () { union () { box(width = w, height = h, depth = d, thickness = mmThick, open=false, assemble = false); // Back holder translate([w*2+2,h+2,0]) { square([w,h]); translate([w/2,h,0]) circle(w/2, $fn=100); } } // Screw holes in back holder and service hole for ( i = [0:1]) { translate([w/2+i*(w*2+2),h/2+i*(h+2),0]) { if ( i == 0) circle(h/2 - mmThick*1.5, $fn=50); for ( i = [0,90,180,270]) { rotate(a=i) translate([w/2-2*mmThick,h/2-2*mmThick,0]) circle(0.5); } } } translate([w*2.5+2,2.3*h,0]) circle(2); // Text on top translate([w/2,h*2-12,0]) text("Lavet for sjov af Georg Sluyterman", 3, halign = "center", valign="center"); translate([w/2,h*2-17,0]) text("www.sman.dk", 3, halign = "center", valign="center"); translate([0,-5,0]) { translate([w/2,h*2-29,0]) text("Pyt-knappen er et eksternaliserende", 3.5, halign = "center", valign="center"); translate([w/2,h*2-35,0]) text("pædagogisk redskab ... bla bla bla", 3.5, halign = "center", valign="center"); translate([w/2,h*2-41,0]) text("... baseret på den narrative", 3.5, halign = "center", valign="center"); translate([w/2,h*2-47,0]) text("psykologi ... bla bla bla..", 3.5, halign = "center", valign="center"); translate([w/2,h*2-60,0]) text("Tryk nu bare på den! :)", 3.5, halign = "center", valign="center"); } // Text and hole for the button on the front translate([3*w/2-19/2,h/2-19/2,0]) { square([19,19]); translate([-20,h/3.1,0]) rotate(a=20) text("\"Pyt", 11, halign = "left", valign="center"); translate([15,h/2.5,0]) rotate(a=-15) text("pyt\"", 11, halign = "left", valign="center"); translate([-7,-h/2+mmThick+20,0]) text("-knap", 9, halign = "left", valign="center"); } // Sides translate([w*2,0,0]) { translate([w/2.3,h/1.5,0]) rotate(a=20) { text("PYT", 20, halign = "center", valign="center"); } translate([w/1.9,h/3,0]) rotate(a=-15) { text("PYT", 20, halign = "center", valign="center"); } } translate([w*3,0,0]) { translate([w/2.3,h/1.5,0]) rotate(a=-20) { text("PYT", 20, halign = "center", valign="center"); } translate([w/1.9,h/3.3,0]) rotate(a=15) { text("PYT", 20, halign = "center", valign="center"); } } // Bottom translate([w,h,0]) { for ( x = [0:7] ) { for ( y = [0:7]) { translate([w/11*(x+2),h/11*(y+2),0]) circle(2, $fn=30); } } translate ([w/2+5.5,10,0]) text("Giv mig: 5 V DC (jeg bruger maks. 50 mA)", 2.6, halign = "center", valign="center"); // Square for the power plug translate ([mmThick,mmThick,0]) square([11,9]); } } // Making the letter "P" stick translate([w*2,0,0]) { translate([w/2.3,h/1.5,0]) rotate(a=20) { translate([-18.5,-2,0]) square([2,15]); translate([-28.5,3.2,0]) square([20,2]); } translate([w/1.9,h/3,0]) rotate(a=-15) { translate([-18.5,-2,0]) square([2,15]); translate([-28.5,3.2,0]) square([20,2]); } } translate([w*3,0,0]) { translate([w/2.3,h/1.5,0]) rotate(a=-20) { translate([-18.5,-2,0]) square([2,15]); translate([-28.5,3.2,0]) square([20,2]); } translate([w/1.9,h/3.3,0]) rotate(a=15) { translate([-18.5,-2,0]) square([2,15]); translate([-28.5,3.2,0]) square([20,2]); } }