160 lines
5.8 KiB
OpenSCAD
160 lines
5.8 KiB
OpenSCAD
|
|
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);
|
|
|
|
R_BASE_PLATE = [R_EXTERNAL[0], R_EXTERNAL[1], 3];
|
|
|
|
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"); |