// License: CC0 // // To the extent possible under law, Clementine Computing LLC has waived // all copyright and related or neighboring rights to this file. // // This work is published from: United States. // include module PopufareHousingTopPlate() { dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT; w = POPUFARE_HOUSING_WIDTH; h = POPUFARE_HOUSING_DEPTH-dh; bx = POPUFARE_BRACKET_CX; br = POPUFARE_BRACKET_D/2.0; de = POPUFARE_BRACKET_DE; des = POPUFARE_BRACKET_DE_SHORT; lip = _MATERIAL_THICKNESS; back_bracket_dx = w/3; screw_terminal_dw = 35; screw_terminal_r = 3/2; difference() { union() { square([w,h], center=true); translate([0, (h/2 + lip/2) - 0.001]) square([w, lip], center=true); // add overhang to back and sides but not front // translate([-w/2, -h/4]) square([lip, h/2], center=true); translate([ w/2, -h/4]) square([lip, h/2], center=true); translate([-w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true); translate([ w/2, h/4 + lip/2]) square([lip, h/2 + lip], center=true); }; // shave off top front panel to accomodate angle plate // translate([0, -(h/2 - lip/2) - 0.01]) square([2*w, lip], center=true); // attach to back plate bracket // //translate([ -(w/2 - de), (h/2-bx) ]) circle(br); //translate([ (w/2 - de), (h/2-bx) ]) circle(br); // side plate bracket attachment // translate([ -(w/2 - bx), (h/2-des)]) circle(br); translate([ -(w/2 - bx),-(h/2-des)]) circle(br); translate([ (w/2 - bx), (h/2-des)]) circle(br); translate([ (w/2 - bx),-(h/2-des)]) circle(br); // back bracket attachment // translate([ -back_bracket_dx/2, h/2 - bx ]) circle(br); translate([ back_bracket_dx/2, h/2 - bx ]) circle(br); translate([-.3*w, 5]) translate([0,screw_terminal_dw/2]) circle(screw_terminal_r); translate([-.3*w, 5]) translate([0,-screw_terminal_dw/2]) circle(screw_terminal_r); translate([ .3*w, 5]) translate([0,screw_terminal_dw/2]) circle(screw_terminal_r); translate([ .3*w, 5]) translate([0,-screw_terminal_dw/2]) circle(screw_terminal_r); } } //PopufareHousingTopPlate();