include <../../config.scad>; use <./vent_gasket_holes.scad>; use <../common/metric_bolt.scad>; use <../common/metric_bolt_functions.scad>; module glovebox_rear_panel() { r_panel = [ R_INTERNAL[0] + OVERLAP_CLEAR_PANEL_WITH_SKELETON_EACH_SIDE * 2 , T_HDPE_SHEET , R_INTERNAL[2] + OVERLAP_CLEAR_PANEL_WITH_SKELETON_EACH_SIDE * 2 ]; union() { /* difference() { // clear panel color("white", 0.4) translate([0, 0, 0]) cube(r_panel, center = true); for (index_side = [0 : 1 : 1]) { mirror([index_side, 0, 0]) { translate([R_INTERNAL[0] / 4, 0, -R_INTERNAL[2] / 4]) { // ventilation holes rotate([90, 0, 0]) cylinder(T_HDPE_SHEET, D_VENT_DUCT / 2, D_VENT_DUCT / 2, center = true); // vent duct fastenings rotate([90, 0, 0]) vent_gasket_holes(); } } } } */ color("white", 1) import("./glovebox_rear_panel_only.stl"); // gasket height_nut_vent = get_metric_bolt_head_height(SIZE_BOLT_VENT); length_bolt_vent = T_WASHER_VENT * 2 + T_GASKET_RUBBER + T_HDPE_SHEET + height_nut_vent + OFFSET_NUT_FROM_BOLT_END; for (index_side = [0 : 1 : 1]) { mirror([index_side, 0, 0]) { // Vent gasket translate([ R_INTERNAL[0] / 4 , r_panel[1] / 2 , -R_INTERNAL[2] / 4 ]) { color("black") translate([0, T_GASKET_RUBBER / 2, 0]) import("./vent_gasket.stl"); // Fasteners for (index_hole = [0 : 1 : COUNT_BOLTS_PER_VENT - 1]) { rotate([0, 360 / COUNT_BOLTS_PER_VENT * index_hole, 0]) translate([D_VENT_DUCT / 2, 0, D_VENT_DUCT / 2]) { // Bolt and nut translate([0, length_bolt_vent / 2 - r_panel[1] - T_WASHER_VENT, 0]) rotate([90, 0, 0]) metric_bolt(SIZE_BOLT_VENT, length_bolt_vent, true, OFFSET_NUT_FROM_BOLT_END); // Washers translate([0, -r_panel[1] - T_WASHER_VENT / 2, 0]) rotate([90, 0, 0]) washer(T_WASHER_VENT, D_WASHER_VENT, SIZE_BOLT_VENT, centre = true); translate([0, T_GASKET_RUBBER + T_WASHER_VENT / 2, 0]) rotate([90, 0, 0]) washer(T_WASHER_VENT, D_WASHER_VENT, SIZE_BOLT_VENT, centre = true); } } } } } } // Shopping } // $fn = 250; // test output glovebox_rear_panel();