use <./models/common/metric_bolt_functions.scad>; use <./models/common/metric_countersunk_head_bolt.scad>; use <./models/common/washer.scad>; // Configuration R_EXTERNAL = [1200, 900, 900]; D_BEAM_SKELETON = 20; T_BEAM_SKELETON = 2; DEPTH_SLOT_BEAM_SKELETON = 4; D_SLOT = 6; L_LEG = 150; COUNT_BASE_SUPPORT_BEAMS_ON_Y = 3; COUNT_FEET_PER_BASE_SUPPORT_BEAM_ON_Y = 2; T_PLATE_SUPPORT = 2; D_VENT_DUCT = 100; SIZE_BOLT_VENT = 4; COUNT_BOLTS_PER_VENT = 4; D_WASHER_VENT = 12; T_WASHER_VENT = 0.8; OVERLAP_CLEAR_PANEL_WITH_SKELETON_EACH_SIDE = 3; D_GLOVE_HOLE = 150; SIZE_BOLT_GLOVE = SIZE_BOLT_VENT; COUNT_BOLTS_PER_GLOVE = 4; OFFSET_GLOVE_HOLE_CENTRES_X = 350; OFFSET_NUT_FROM_BOLT_END = 2; OFFSET_NUT_FROM_BOLT_END_CHAMBER = 0.5; D_WASHER_GLOVE = 12; T_WASHER_GLOVE = 2; T_HDPE_SHEET = 3; T_GASKET_RUBBER = 1.5; COUNT_HINGES = 2; SIZE_BOLT_HINGE = 4.5; R_HINGE = [50, 50, 2]; D_WASHER_HINGE = 12; T_WASHER_HINGE = 2; R_T_NUT = [5.7, 11.5, 3.2]; OFFSET_LATCH_FROM_SIDE = 300; OFFSET_LATCH_FROM_TOP = 250; R_DOOR_LATCH_SUPPORT_PLATE = [25, 120, 6]; SIZE_BOLT_LATCH_PLATE_TO_SKELETON = 4; D_WASHER_LATCH_PLATE_TO_SKELETON = 9; T_WASHER_LATCH_PLATE_TO_SKELETON = 0.8; SIZE_BOLT_LATCH_TO_PLATE = 5; D_WASHER_LATCH_TO_PLATE = 9; T_WASHER_LATCH_TO_PLATE = 0.8; R_LATCH = [21, 125, 2]; COUNT_BOLTS_PER_DOOR_GASKET_ON_X_TOP = 3; COUNT_BOLTS_PER_DOOR_GASKET_ON_X_BOTTOM = 5; COUNT_BOLTS_PER_DOOR_GASKET_ON_Z = 4; OFFSET_BOLTS_FROM_SEAL_END = 100; SIZE_BOLT_DOOR_GASKET = SIZE_BOLT_GLOVE; /* D_DOOR_SUPPORT_BEAM = 19; T_DOOR_SUPPORT_BEAM = 1.6; W_DOOR_SUPPORT_BEAM = 19; D_DOOR_SUPPORT_BEAM = 25.4; T_DOOR_SUPPORT_BEAM = 1.6; W_DOOR_SUPPORT_BEAM = 25.4; D_DOOR_SUPPORT_BEAM = 15; T_DOOR_SUPPORT_BEAM = 4; W_DOOR_SUPPORT_BEAM = 30; D_DOOR_SUPPORT_BEAM = 20; T_DOOR_SUPPORT_BEAM = 3; W_DOOR_SUPPORT_BEAM = 40; */ D_DOOR_SUPPORT_BEAM = 25; T_DOOR_SUPPORT_BEAM = 3; W_DOOR_SUPPORT_BEAM = 50; W_DOOR_GASKET = 25; D_WASHER_DOOR_GASKET = 12; T_WASHER_DOOR_GASKET = 2; AREA_BEAM_PROFILE_20 = 1.6 * pow(10, -4); // m^2 AREA_BEAM_PROFILE_30 = 3.1 * pow(10, -4); // m^2 AREA_BEAM_PROFILE_40L = 6.1 * pow(10, -4); // m^2 AREA_BEAM_PROFILE_40H = 9.2 * pow(10, -4); // m^2 DENSITY_ALUMINIUM = 2700; // kg.m^-3 DENSITY_HDPE = 950; // kg.m^-3 DENSITY_STAINLESS_STEEL = 8000; // kg.m^-3 G = 9.81; // m.s^-2 SAFETY_FACTOR = 2; SECOND_MOMENT_OF_AREA_BEAM_20 = 0.7 * pow(10, -8); // m^4 SECOND_MOMENT_OF_AREA_BEAM_30 = 2.7 * pow(10, -8); // m^4 SECOND_MOMENT_OF_AREA_BEAM_40L = 11.5 * pow(10, -8); // m^4 SECOND_MOMENT_OF_AREA_BEAM_40H = 17.7 * pow(10, -8); // m^4 YIELD_STRESS_ALUMINIUM = 150 * pow(10, 6); // Pa YIELD_STRESS_HDPE = 25 * pow(10, 6); // Pa YIELD_STRESS_STAINLESS_STEEL = 200 * pow(10, 6); // Pa YOUNG_MODULUS_ALUMINIUM = 69 * pow(10, 9); // Pa YOUNG_MODULUS_HDPE = 1 * pow(10, 9); // Pa YOUNG_MODULUS_STAINLESS_STEEL = 200 * pow(10, 9); // Pa R_INTERNAL = R_EXTERNAL - D_BEAM_SKELETON * 2 * [1, 1, 1]; echo("R_INTERNAL: ", R_INTERNAL); R_SKELETON_BEAM_CENTRES = (R_EXTERNAL + R_INTERNAL) / 2; echo("R_SKELETON_BEAM_CENTRES: ", R_SKELETON_BEAM_CENTRES); OFFSET_X_BASE_BEAM_SUPPORTS = R_SKELETON_BEAM_CENTRES[0] / 2 / COUNT_BASE_SUPPORT_BEAMS_ON_Y; // 200; echo("OFFSET_X_BASE_BEAM_SUPPORTS: ", OFFSET_X_BASE_BEAM_SUPPORTS); BASE_LOAD_FORCE = 500 * G * SAFETY_FACTOR; echo("BASE_LOAD_FORCE: ", BASE_LOAD_FORCE); AREA_BEAM_PROFILE = (D_BEAM_SKELETON == 20) ? AREA_BEAM_PROFILE_20 : (D_BEAM_SKELETON == 30) ? AREA_BEAM_PROFILE_30 : (D_BEAM_SKELETON == 40) ? AREA_BEAM_PROFILE_40H : AREA_BEAM_PROFILE_20 ; echo("AREA_BEAM_PROFILE: ", AREA_BEAM_PROFILE); SECOND_MOMENT_OF_AREA_BEAM = (D_BEAM_SKELETON == 20) ? SECOND_MOMENT_OF_AREA_BEAM_20 : (D_BEAM_SKELETON == 30) ? SECOND_MOMENT_OF_AREA_BEAM_30 : (D_BEAM_SKELETON == 40) ? SECOND_MOMENT_OF_AREA_BEAM_40H : SECOND_MOMENT_OF_AREA_BEAM_20 ; echo("SECOND_MOMENT_OF_AREA_BEAM: ", SECOND_MOMENT_OF_AREA_BEAM); T_DOOR = T_HDPE_SHEET + T_GASKET_RUBBER; echo("T_DOOR: ", T_DOOR, "mm"); OFFSET_HINGE_HOLE_CENTRES_X = 34; echo("OFFSET_HINGE_HOLE_CENTRES_X: ", OFFSET_HINGE_HOLE_CENTRES_X, "mm"); OFFSET_HINGE_HOLE_CENTRES_Y = R_HINGE[1] - 8 * 2; echo("OFFSET_HINGE_HOLE_CENTRES_Y: ", OFFSET_HINGE_HOLE_CENTRES_Y, "mm"); LENGTH_BOLT_HINGE_ON_CHAMBER = T_WASHER_HINGE + R_HINGE[2] + T_BEAM_SKELETON + R_T_NUT[2] + OFFSET_NUT_FROM_BOLT_END_CHAMBER; echo("LENGTH_BOLT_HINGE_ON_CHAMBER: ", LENGTH_BOLT_HINGE_ON_CHAMBER, "mm"); HEIGHT_NUT_HINGE = get_metric_bolt_head_height(SIZE_BOLT_HINGE); echo("HEIGHT_NUT_HINGE: ", HEIGHT_NUT_HINGE, "mm"); LENGTH_BOLT_HINGE_ON_DOOR = T_GASKET_RUBBER + T_HDPE_SHEET + T_DOOR_SUPPORT_BEAM + T_WASHER_HINGE + HEIGHT_NUT_HINGE + OFFSET_NUT_FROM_BOLT_END; echo("LENGTH_BOLT_HINGE_ON_DOOR: ", LENGTH_BOLT_HINGE_ON_DOOR, "mm"); HEIGHT_NUT_DOOR_GASKET = get_metric_bolt_head_height(SIZE_BOLT_DOOR_GASKET); echo("HEIGHT_NUT_DOOR_GASKET: ", HEIGHT_NUT_DOOR_GASKET, "mm"); LENGTH_BOLT_DOOR_GASKET = T_GASKET_RUBBER + T_HDPE_SHEET + T_DOOR_SUPPORT_BEAM + T_WASHER_DOOR_GASKET + HEIGHT_NUT_DOOR_GASKET + OFFSET_NUT_FROM_BOLT_END; echo("LENGTH_BOLT_DOOR_GASKET: ", LENGTH_BOLT_DOOR_GASKET, "mm"); HEIGHT_NUT_LATCH_TO_PLATE = get_metric_bolt_head_height(SIZE_BOLT_LATCH_TO_PLATE); echo("HEIGHT_NUT_LATCH_TO_PLATE: ", HEIGHT_NUT_LATCH_TO_PLATE, "mm"); LENGTH_BOLT_LATCH_TO_PLATE = R_LATCH[2] + R_DOOR_LATCH_SUPPORT_PLATE[2] + T_WASHER_LATCH_TO_PLATE + HEIGHT_NUT_LATCH_TO_PLATE + OFFSET_NUT_FROM_BOLT_END_CHAMBER; echo("LENGTH_BOLT_LATCH_TO_PLATE: ", LENGTH_BOLT_LATCH_TO_PLATE, "mm"); LENGTH_BOLT_LATCH_PLATE_TO_SKELETON = T_WASHER_LATCH_PLATE_TO_SKELETON + R_DOOR_LATCH_SUPPORT_PLATE[2] + T_DOOR_SUPPORT_BEAM + R_T_NUT[2] + OFFSET_NUT_FROM_BOLT_END_CHAMBER; echo("LENGTH_BOLT_LATCH_PLATE_TO_SKELETON: ", LENGTH_BOLT_LATCH_PLATE_TO_SKELETON, "mm"); OFFSET_X_VENTILATION_HOLES = R_INTERNAL[0] / 2; echo("OFFSET_X_VENTILATION_HOLES: ", OFFSET_X_VENTILATION_HOLES, "mm");