| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- // 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 <PopufareHousingCommon.scad>
- module PopufareHousingFrontInsideSupport2Plate() {
- 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
- //
- translate([ -(w/2 - 8*mt), -(h/2 - bx)]) circle(br);
- translate([ (w/2 - 8*mt), -(h/2 - bx)]) circle(br);
- translate([ -(w/2 - 12*mt), -(h/2 - bx)]) circle(br);
- translate([ (w/2 - 12*mt), -(h/2 - bx)]) circle(br);
- // inner lip bracket catch attachment
- //
- /*
- 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]]);
- }
- }
- //PopufareHousingFrontInsideSupport2Plate();
|