// 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 PopufareHousingFrontInsideSupport4Plate() { w = POPUFARE_HOUSING_WIDTH; h = POPUFARE_FRONT_HEIGHT; bx = POPUFARE_BRACKET_CX; br = POPUFARE_BRACKET_D/2.0; de = POPUFARE_BRACKET_DE; frontlip = POPUFARE_HOUSING_FRONT_LIP_HEIGHT; mt = _MATERIAL_THICKNESS; lip = _MATERIAL_THICKNESS; lip_top = _MATERIAL_THICKNESS * sqrt(2.0); h_tot = h - lip_top + lip; fudge = 10; bracket_r = POPUFARE_BRACKET_WIDTH/2; difference() { union() { square([w,h], center=true); }; // legacy housing fron lip // translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip,frontlip], center=true); // get rid of ghost edges // translate([0, -(h/2 - frontlip/2)]) square([w + 2*lip + 1,frontlip], center=true); translate([0, -(h/2)]) square([w + 2*lip + 1,frontlip/2], center=true); // shave off top front panel to accomodate angle plate. // fudge to guard against stray geometry // translate([0, (h/2 - 0.4999*lip_top)]) square([2*w, lip_top + 0.15], center=true); // side plate bracket attachment // hull() { translate([ -(w/2 - bx), 0]) circle(bracket_r); translate([ -(w/2 - bx) - 2*de, 0]) circle(bracket_r); } hull() { translate([ (w/2 - bx), 0]) circle(bracket_r); translate([ (w/2 - bx) + 2*de, 0]) circle(bracket_r); } // bottom lip attachment // hull() { translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(bracket_r); translate([ -(w/2 - 8*mt), -(h/2 - bx) - 2*de]) circle(bracket_r); } hull() { translate([ (w/2 - 8*mt), -(h/2 - bx)]) circle(bracket_r); translate([ (w/2 - 8*mt), -(h/2 - bx) - 2*de]) circle(bracket_r); } hull() { translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r); translate([ -(w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r); } hull() { translate([ (w/2 - 12*mt), -(h/2 - bx)]) circle(bracket_r); translate([ (w/2 - 12*mt), -(h/2 - bx) - 2*de]) circle(bracket_r); } // top clearance // translate([0, h/2]) square([12*mt, 3*h/4], center=true); translate([0, h/2]) polygon([ [ -12*mt/2, -3*h/8], [-32*mt/2, 0], [-11*mt/2, 0]]); translate([0, h/2]) polygon([ [ 12*mt/2, -3*h/8], [ 32*mt/2, 0], [ 11*mt/2, 0]]); } } //PopufareHousingFrontInsideSupport4Plate();