// 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);