Files
glovebox/main.scad

112 lines
6.8 KiB
OpenSCAD

// Glovebox
echo("Shopping");
echo(str([1,23,3] + [4,5,6]));
echo(str([1] * 3));
include <./config.scad>;
use <./models/glovebox/glovebox.scad>;
// include <./models/fixings/angle_bracket_20_20.scad>;
// include <./models/fixings/mitre_bracket.scad>;
// include <./models/fixings/door_hinge.scad>;
// include <./models/glovebox_door/glovebox_door.scad>;
// include <./models/glovebox_door/door_support_beam.scad>;
// Customisable parameters
angle_door_from_closed = 20; // [0:10:270]
/*
angle_incline_tiller = 20; // [-20:5:135]
angle_brake_rod = 60; // [45:5:60]
*/
$fn = 100;
// output
glovebox(angle_door_from_closed);
/*
Shopping
Rubber gasket sheet for seals
Clear plastic sheet for viewport
Large gauntlets
Ventilation system
Components
*/
echo("Butyl roof and gutter sealant Everbuild everlast");
/*
Tools
*/
// color("green", 0.4) cube(R_INTERNAL, center = true);
// Base support beams
load_base_per_beam = BASE_LOAD_FORCE / COUNT_BASE_SUPPORT_BEAMS_ON_Y;
deflection_centre_y_base_beam_centre_load = load_base_per_beam * pow(R_EXTERNAL[1] * pow(10, -3) / (1 + COUNT_FEET_PER_BASE_SUPPORT_BEAM_ON_Y), 3) / 48 / YOUNG_MODULUS_ALUMINIUM / SECOND_MOMENT_OF_AREA_BEAM;
deflection_centre_y_base_beam_udl = load_base_per_beam * pow(R_EXTERNAL[1] * pow(10, -3) / (1 + COUNT_FEET_PER_BASE_SUPPORT_BEAM_ON_Y), 3) * 5 / 384 / YOUNG_MODULUS_ALUMINIUM / SECOND_MOMENT_OF_AREA_BEAM;
base_beam_shear_stress = load_base_per_beam / AREA_BEAM_PROFILE;
von_mises_stress_energy = base_beam_shear_stress * sqrt(3);
// Base support plate
second_moment_of_area_support_plate_x = R_INTERNAL[1] * pow(10, -3) * pow(T_PLATE_SUPPORT * pow(10, -3), 3) / 12;
second_moment_of_area_support_plate_y = R_INTERNAL[0] * pow(10, -3) * pow(T_PLATE_SUPPORT * pow(10, -3), 3) / 12;
deflection_plate_centre_centre_load = BASE_LOAD_FORCE / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) * pow((R_EXTERNAL[0] - OFFSET_X_BASE_BEAM_SUPPORTS * 2) * pow(10, -3) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) / 2, 3) / 48 / YOUNG_MODULUS_ALUMINIUM / second_moment_of_area_support_plate_x;
deflection_plate_centre_udl = BASE_LOAD_FORCE / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) * pow((R_EXTERNAL[0] - OFFSET_X_BASE_BEAM_SUPPORTS * 2) * pow(10, -3) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) / 2, 3) * 5 / 384 / YOUNG_MODULUS_ALUMINIUM / second_moment_of_area_support_plate_x;
base_beam_shear_stress_x = load_base_per_beam / R_INTERNAL[1] / T_PLATE_SUPPORT * pow(10, 6);
M_support_plate = DENSITY_ALUMINIUM * T_PLATE_SUPPORT * R_INTERNAL[0] * R_INTERNAL[1] * pow(10, -9);
// Door latch support plates
load_door_latch = 50 * G * SAFETY_FACTOR;
second_moment_of_area_door_latch_support_plate_y = R_DOOR_LATCH_SUPPORT_PLATE[0] * pow(R_DOOR_LATCH_SUPPORT_PLATE[2], 3) / 12 * pow(10, -12);
delection_end_plate_door_latch_support = load_door_latch * pow((R_DOOR_LATCH_SUPPORT_PLATE[1] - D_BEAM_SKELETON) * pow(10, -3), 3) / 3 / YOUNG_MODULUS_STAINLESS_STEEL / second_moment_of_area_door_latch_support_plate_y; // cantilever beam with load at end
shear_stress_y_door_latch_support_plate = load_door_latch / R_DOOR_LATCH_SUPPORT_PLATE[0] / R_DOOR_LATCH_SUPPORT_PLATE[2] * pow(10, 6);
// Door support beams
load_door_support_beam = 20 * G * SAFETY_FACTOR / 2;
second_moment_of_area_door_support_beam = (
T_DOOR_SUPPORT_BEAM * pow(W_DOOR_SUPPORT_BEAM - T_DOOR_SUPPORT_BEAM * 2, 3) / 12
+ D_DOOR_SUPPORT_BEAM * pow(T_DOOR_SUPPORT_BEAM, 3) / 12 + D_DOOR_SUPPORT_BEAM * T_DOOR_SUPPORT_BEAM * (W_DOOR_SUPPORT_BEAM / 2 + T_DOOR_SUPPORT_BEAM / 2) * 2
) * pow(10, -12);
delection_end_door_support_beam = load_door_support_beam * pow((R_EXTERNAL[0] - D_DOOR_SUPPORT_BEAM * 2) * pow(10, -3), 3) / 3 / YOUNG_MODULUS_ALUMINIUM / second_moment_of_area_door_support_beam; // cantilever beam with load at end
area_profile_door_support_beam = (T_DOOR_SUPPORT_BEAM * (W_DOOR_SUPPORT_BEAM - T_DOOR_SUPPORT_BEAM * 2) + 2 * D_DOOR_SUPPORT_BEAM * T_DOOR_SUPPORT_BEAM) * pow(10, -6);
shear_stress_z_door_support_beam = load_door_latch / area_profile_door_support_beam;
// Overall
M_beams_door = DENSITY_ALUMINIUM * area_profile_door_support_beam * 2 * (R_EXTERNAL[0] - D_DOOR_SUPPORT_BEAM + R_EXTERNAL[2] - D_DOOR_SUPPORT_BEAM) * pow(10, -3);
M_beams = DENSITY_ALUMINIUM * AREA_BEAM_PROFILE * ((L_LEG + R_EXTERNAL[2]) * 4 + (R_INTERNAL[0]) * 4 + (R_INTERNAL[1]) * 4 + R_EXTERNAL[1] * COUNT_BASE_SUPPORT_BEAMS_ON_Y + (L_LEG - D_BEAM_SKELETON) * COUNT_BASE_SUPPORT_BEAMS_ON_Y * COUNT_FEET_PER_BASE_SUPPORT_BEAM_ON_Y) * pow(10, -3);
echo("");
echo("Base support beams");
echo("deflection_centre_y_base_beam_centre_load: ", deflection_centre_y_base_beam_centre_load * pow(10, 3), "mm");
echo("deflection_centre_y_base_beam_udl: ", deflection_centre_y_base_beam_udl * pow(10, 3), "mm");
echo("base_beam_shear_stress: ", base_beam_shear_stress * pow(10, -6), "MPa");
echo("von_mises_stress_energy: ", von_mises_stress_energy * pow(10, -6), "MPa");
echo("Safe stress limit (Aluminium): ", YIELD_STRESS_ALUMINIUM * pow(10, -6), "MPa");
echo("");
echo("Base support plate");
echo("second_moment_of_area_support_plate_x: ", second_moment_of_area_support_plate_x * pow(10, 12), "mm^4");
echo("second_moment_of_area_support_plate_y: ", second_moment_of_area_support_plate_y * pow(10, 12), "mm^4");
echo("deflection_plate_centre_centre_load: ", deflection_plate_centre_centre_load * pow(10, 3), "mm");
echo("deflection_plate_centre_udl: ", deflection_plate_centre_udl * pow(10, 3), "mm");
echo("base_beam_shear_stress_x: ", base_beam_shear_stress_x * pow(10, -6), "MPa");
echo("Safe stress limit (ALUMINIUM): ", YIELD_STRESS_ALUMINIUM * pow(10, -6), "MPa");
echo("M_support_plate: ", M_support_plate, "kg");
echo("");
echo("Door latch support plates");
echo("load_door_latch: ", load_door_latch, "N");
echo("second_moment_of_area_door_latch_support_plate_y: ", second_moment_of_area_door_latch_support_plate_y * pow(10, 12), "mm^4");
echo("delection_end_plate_door_latch_support: ", delection_end_plate_door_latch_support * pow(10, 3), "mm");
echo("shear_stress_y_door_latch_support_plate: ", shear_stress_y_door_latch_support_plate * pow(10, -6), "MPa");
echo("Safe stress limit (Stainless Steel): ", YIELD_STRESS_STAINLESS_STEEL * pow(10, -6), "MPa");
echo("");
echo("Door support beams");
echo("load_door_support_beam: ", load_door_support_beam, "N");
echo("second_moment_of_area_door_support_beam: ", second_moment_of_area_door_support_beam * pow(10, 12), "mm^4");
echo("delection_end_door_support_beam: ", delection_end_door_support_beam * pow(10, 3), "mm");
echo("shear_stress_z_door_support_beam: ", shear_stress_z_door_support_beam * pow(10, -6), "MPa");
echo("Safe stress limit (Aluminium): ", YIELD_STRESS_ALUMINIUM * pow(10, -6), "MPa");
echo("");
echo("Overall");
echo("M_beams_door: ", M_beams_door, "kg");
echo("M_beams: ", M_beams, "kg");
echo("YM / D ALUMINIUM: ", YOUNG_MODULUS_ALUMINIUM / DENSITY_ALUMINIUM);
echo("YM / D HDPE: ", YOUNG_MODULUS_HDPE / DENSITY_HDPE);
echo("YM / D STAINLESS_STEEL: ", YOUNG_MODULUS_STAINLESS_STEEL / DENSITY_STAINLESS_STEEL);