Completed design for v2.

This commit is contained in:
2025-06-10 16:38:59 +01:00
parent 3eef5ea046
commit 9e459446c9
47 changed files with 1194 additions and 294 deletions

View File

@@ -0,0 +1,63 @@
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();

View File

@@ -0,0 +1,22 @@
include <../../config.scad>;
use <./vent_gasket_holes.scad>;
module vent_gasket() {
// color("black")
rotate([90, 0, 0]) difference() {
// Body
// cylinder(T_GASKET_RUBBER, D_VENT_DUCT / 2 + W_DOOR_GASKET, D_VENT_DUCT / 2 + W_DOOR_GASKET, center = true);
cube([D_VENT_DUCT + W_DOOR_GASKET * 2, D_VENT_DUCT + W_DOOR_GASKET * 2, T_GASKET_RUBBER], center = true);
// Duct hole
cylinder(T_GASKET_RUBBER, D_VENT_DUCT / 2, D_VENT_DUCT / 2, center = true);
// Duct fasteners
vent_gasket_holes();
}
// Shopping
echo(str("EDPM rubber: Vent Gasket ", D_VENT_DUCT + W_DOOR_GASKET * 2, "mm x ", D_VENT_DUCT + W_DOOR_GASKET * 2, "mm - x1"));
}
$fn = 250;
// test output
vent_gasket();

Binary file not shown.

View File

@@ -0,0 +1,14 @@
include <../../config.scad>;
module vent_gasket_holes() {
for (index_hole = [0 : 1 : COUNT_BOLTS_PER_VENT - 1]) {
rotate([0, 0, 90 * index_hole]) translate([D_VENT_DUCT / 2, D_VENT_DUCT / 2, 0])
// rotate([90, 0, 0])
cylinder(T_HDPE_SHEET + T_GASKET_RUBBER, SIZE_BOLT_VENT / 2, SIZE_BOLT_VENT / 2, center = true);
}
// Shopping
}
// test output
vent_gasket_holes();