/* * Copyright (c) 2019 Clementine Computing LLC. * * This file is part of PopuFare. * * PopuFare is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * PopuFare is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with PopuFare. If not, see . * */ include module PopufareHousingFrontAnglePlate() { dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT; w = POPUFARE_HOUSING_WIDTH; h = sqrt(2.0)*dh; bx = POPUFARE_BRACKET_CX; br = POPUFARE_BRACKET_D/2.0; de = POPUFARE_BRACKET_DE; lip = _MATERIAL_THICKNESS; screen_w = POPUFARE_SCREEN_WIDTH; screen_h = POPUFARE_SCREEN_HEIGHT; screen_cx = 0; screen_cy = 0; screen_attach_dw = screen_w + 8; screen_attach_dh = screen_h + 8; difference() { union() { square([w,h], center=true); // lip to cover bottom plate // translate([0,-(h/2 + lip/2)]) square([w,lip], center=true); translate([0, (h/2 + lip/2)]) square([w,lip], center=true); }; // attach to site plate brackets // translate([ -(w/2 - bx), -(h/2-de) ]) circle(br); translate([ -(w/2 - bx), (h/2-de) ]) circle(br); translate([ (w/2 - bx), -(h/2-de) ]) circle(br); translate([ (w/2 - bx), (h/2-de) ]) circle(br); // screen center // translate([screen_cx, screen_cy]) square([screen_w, screen_h], center=true); translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r); translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r); translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r); translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r); } } //PopufareHousingFrontAnglePlate();