//
// NopSCADlib Copyright Chris Palmer 2018
// nop.head@gmail.com
// hydraraptor.blogspot.com
//
// This file is part of NopSCADlib.
//
// NopSCADlib is free software: you can redistribute it and/or modify it under the terms of the
// GNU General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// NopSCADlib 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with NopSCADlib.
// If not, see <https://www.gnu.org/licenses/>.
//

//
//! Mini LCD Celsius Digital Thermometer Hygrometer Temperature Humidity Meter Gauge on eBay
//
include <../core.scad>
use <../utils/round.scad>

od = 40.9;
h = 14;
flange_d = 45.5;
flange_t = 1.5;
flange_d2 = 32;
flange_t2 = 2;
apperture_d = 24.7;
hygrometer_hole_r = 21.3;
slot_w = 5.5;

module hygrometer_hole(h = 0) { //! Drill the hole for a hygrometer
    round(cnc_bit_r) {
        intersection() {
            drill(hygrometer_hole_r, h);

            rotate(30)
                square([slot_w + 2 * cnc_bit_r, 100], center = true);
        }
        drill((od + 0.2) / 2, h);
    }
}

function hygrometer_or() = flange_d / 2; //! The outside radius of a hygrometer

module hygrometer() { //! Draw a hygrometer
    vitamin("hygrometer(): Mini LCD Digital Thermometer / Hygrometer");

    explode(40) {
        color(grey30)
            rotate_extrude()
                polygon([
                    [0, 0],
                    [apperture_d / 2, 0],
                    [apperture_d / 2, flange_t],
                    [flange_d2 / 2,   flange_t2],
                    [flange_d / 2,    flange_t],
                    [flange_d / 2,    0],
                    [od / 2,          0],
                    [od / 2,          -h],
                    [0,               -h]
                ]);

        color("#94A7AB")
            cylinder(d = apperture_d, h = eps);

        color("black")
            linear_extrude(height = 0.2, center = true) {
                translate([0, 3])
                    text("20_4", font = "7 segment", valign = "bottom", halign = "center", size = apperture_d / 6);

                translate([7, 3])
                    text("C", font = "7 segment", valign = "bottom", halign = "center", size = apperture_d / 8);

                translate([-1.9, 0.5])
                    text("50", font = "7 segment", valign = "top", halign = "center", size = apperture_d / 2.7);

                translate([0, -apperture_d / 6])
                    text("          %", font = "Arial", valign = "center", halign = "center", size = apperture_d / 6);
            }

    }
}
