Unfinished changes.

This commit is contained in:
2025-06-18 16:17:46 +01:00
parent 9e459446c9
commit 6448371d93
7 changed files with 130 additions and 35 deletions

View File

@@ -126,6 +126,7 @@ SECOND_MOMENT_OF_AREA_BEAM =
; ;
echo("SECOND_MOMENT_OF_AREA_BEAM: ", SECOND_MOMENT_OF_AREA_BEAM); 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; T_DOOR = T_HDPE_SHEET + T_GASKET_RUBBER;
echo("T_DOOR: ", T_DOOR, "mm"); echo("T_DOOR: ", T_DOOR, "mm");

View File

@@ -0,0 +1,19 @@
include <../../config.scad>;
module base_gasket() {
color("black")
difference() {
// Body
cube([R_EXTERNAL[0], R_EXTERNAL[1], T_GASKET_RUBBER], center = true);
// Workspace hole
cube([R_EXTERNAL[0] - W_DOOR_GASKET * 2, R_EXTERNAL[1] - W_DOOR_GASKET * 2, T_GASKET_RUBBER], center = true);
// Fastener holes
}
// Shopping
echo(str("EDPM rubber: Base Gasket ", R_EXTERNAL[0], "mm x ", R_EXTERNAL[1], "mm - x1"));
}
$fn = 50;
// test output
base_gasket();

Binary file not shown.

View File

@@ -0,0 +1,17 @@
include <../../config.scad>;
module base_plate() {
color("darkgrey")
difference() {
// Body
cube(R_BASE_PLATE, center = true);
// Fastener holes
}
// Shopping
echo(str("Aluminium sheet: Base plate ", R_BASE_PLATE[0], "mm x ", R_BASE_PLATE[1], "mm x ", R_BASE_PLATE[2], "mm - x1"));
}
$fn = 50;
// test output
base_plate();

View File

@@ -4,7 +4,13 @@ use <../common/c_channel_beam.scad>;
module door_support_beam(length) { module door_support_beam(length) {
color("darkgrey") c_channel_beam(length, W_DOOR_SUPPORT_BEAM, D_DOOR_SUPPORT_BEAM, T_DOOR_SUPPORT_BEAM, true); color("darkgrey") {
// c_channel_beam(length, W_DOOR_SUPPORT_BEAM, D_DOOR_SUPPORT_BEAM, T_DOOR_SUPPORT_BEAM, true);
translate([0, 0, -length / 2]) union() {
cube([W_DOOR_SUPPORT_BEAM, T_DOOR_SUPPORT_BEAM, length], center = false);
cube([T_DOOR_SUPPORT_BEAM, D_DOOR_SUPPORT_BEAM, length], center = false);
}
}
// Shopping // Shopping
echo(str("Rectangular Aluminium channel beam: Rectangular Aluminium channel beam ", length, "mm x ", W_DOOR_SUPPORT_BEAM, "mm x ", D_DOOR_SUPPORT_BEAM, "mm x ", T_DOOR_SUPPORT_BEAM, "mm - x1")); echo(str("Rectangular Aluminium channel beam: Rectangular Aluminium channel beam ", length, "mm x ", W_DOOR_SUPPORT_BEAM, "mm x ", D_DOOR_SUPPORT_BEAM, "mm x ", T_DOOR_SUPPORT_BEAM, "mm - x1"));
} }

View File

@@ -58,37 +58,65 @@ module glovebox_door() {
// Support beams // Support beams
color("darkgrey") { color("darkgrey") {
// Top // Top
/*
translate([ translate([
D_DOOR_SUPPORT_BEAM / 2 D_DOOR_SUPPORT_BEAM / 2
, -D_DOOR_SUPPORT_BEAM , -D_DOOR_SUPPORT_BEAM
, W_DOOR_SUPPORT_BEAM / 2 , W_DOOR_SUPPORT_BEAM / 2
]) rotate([0, 90, 0]) ]) rotate([0, 90, 0])
// door_support_beam(R_EXTERNAL[0] - D_DOOR_SUPPORT_BEAM); */
import("./door_support_beam_on_x.stl");
// Bottom
translate([ translate([
0
, -D_DOOR_SUPPORT_BEAM
, T_DOOR_SUPPORT_BEAM
]) rotate([0, 90, 180]) rotate([0, 0, 180])
door_support_beam(R_EXTERNAL[0] - (D_DOOR_SUPPORT_BEAM - T_DOOR_SUPPORT_BEAM) * 2);
// import("./door_support_beam_on_x.stl");
// Bottom
/*
translate([
-D_DOOR_SUPPORT_BEAM / 2 -D_DOOR_SUPPORT_BEAM / 2
, -R_EXTERNAL[2] + D_DOOR_SUPPORT_BEAM , -R_EXTERNAL[2] + D_DOOR_SUPPORT_BEAM
, W_DOOR_SUPPORT_BEAM / 2 , W_DOOR_SUPPORT_BEAM / 2
]) rotate([0, 90, 180]) ]) rotate([0, 90, 180])
// door_support_beam(R_EXTERNAL[0] - D_DOOR_SUPPORT_BEAM); */
import("./door_support_beam_on_x.stl"); translate([
0
, -R_EXTERNAL[2] - T_DOOR_SUPPORT_BEAM
, T_DOOR_SUPPORT_BEAM
]) rotate([0, 90, 0])
door_support_beam(R_EXTERNAL[0] - (D_DOOR_SUPPORT_BEAM - T_DOOR_SUPPORT_BEAM) * 2);
// import("./door_support_beam_on_x.stl");
// Left // Left
/*
translate([ translate([
-(R_EXTERNAL[0] / 2 - W_DOOR_SUPPORT_BEAM / 2) -(R_EXTERNAL[0] / 2 - W_DOOR_SUPPORT_BEAM / 2)
, -(R_EXTERNAL[2] - D_DOOR_SUPPORT_BEAM) / 2 , -(R_EXTERNAL[2] - D_DOOR_SUPPORT_BEAM) / 2
, W_DOOR_SUPPORT_BEAM / 2 , W_DOOR_SUPPORT_BEAM / 2
]) rotate([90, -90, 0]) ]) rotate([90, -90, 0])
// door_support_beam(R_EXTERNAL[2] - D_DOOR_SUPPORT_BEAM); */
import("./door_support_beam_on_y.stl"); translate([
-R_EXTERNAL[0] / 2 - T_DOOR_SUPPORT_BEAM
, -R_EXTERNAL[2] / 2
, T_DOOR_SUPPORT_BEAM
]) rotate([0, 90, -90])
door_support_beam(R_EXTERNAL[2]);
// import("./door_support_beam_on_y.stl");
// Right // Right
/*
translate([ translate([
R_EXTERNAL[0] / 2 - W_DOOR_SUPPORT_BEAM / 2 R_EXTERNAL[0] / 2 - W_DOOR_SUPPORT_BEAM / 2
, -R_EXTERNAL[2] / 2 - D_DOOR_SUPPORT_BEAM / 2 , -R_EXTERNAL[2] / 2 - D_DOOR_SUPPORT_BEAM / 2
, W_DOOR_SUPPORT_BEAM / 2 , W_DOOR_SUPPORT_BEAM / 2
]) rotate([90, 90, 0]) ]) rotate([90, 90, 0])
// door_support_beam(R_EXTERNAL[2] - D_DOOR_SUPPORT_BEAM); */
import("./door_support_beam_on_y.stl"); translate([
R_EXTERNAL[0] / 2 + T_DOOR_SUPPORT_BEAM
, -R_EXTERNAL[2] / 2
, T_DOOR_SUPPORT_BEAM
]) rotate([0, 90, 90])
door_support_beam(R_EXTERNAL[2]);
// import("./door_support_beam_on_y.stl");
} }
} }
// Bolt holes // Bolt holes

View File

@@ -5,6 +5,7 @@ use <../common/washer.scad>;
use <../fixings/angle_bracket_20_20.scad>; use <../fixings/angle_bracket_20_20.scad>;
use <../fixings/door_hinge.scad>; use <../fixings/door_hinge.scad>;
use <../fixings/mitre_bracket.scad>; use <../fixings/mitre_bracket.scad>;
use <../glovebox_base/base_plate.scad>;
use <../glovebox_door/glovebox_door.scad>; use <../glovebox_door/glovebox_door.scad>;
use <../glovebox_rear_panel/glovebox_rear_panel.scad>; use <../glovebox_rear_panel/glovebox_rear_panel.scad>;
use <./skeleton_beam.scad>; use <./skeleton_beam.scad>;
@@ -27,7 +28,7 @@ module glovebox_shell(angle_door_from_closed) {
translate([ translate([
0 0
, R_SKELETON_BEAM_CENTRES[1] / 2 * (index_beam_on_y == 0 ? 1 : -1) , R_SKELETON_BEAM_CENTRES[1] / 2 * (index_beam_on_y == 0 ? 1 : -1)
, L_LEG + D_BEAM_SKELETON / 2 + (index_beam_on_z == 0 ? 0 : R_SKELETON_BEAM_CENTRES[2]) , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + D_BEAM_SKELETON / 2 + (index_beam_on_z == 0 ? 0 : R_SKELETON_BEAM_CENTRES[2])
]) ])
rotate([0, 90, 0]) rotate([0, 90, 0])
// skeleton_beam(length_beam_on_x); // skeleton_beam(length_beam_on_x);
@@ -43,7 +44,7 @@ module glovebox_shell(angle_door_from_closed) {
translate([ translate([
R_SKELETON_BEAM_CENTRES[0] / 2 * (index_beam_on_x == 0 ? 1 : -1) R_SKELETON_BEAM_CENTRES[0] / 2 * (index_beam_on_x == 0 ? 1 : -1)
, 0 , 0
, L_LEG + D_BEAM_SKELETON / 2 + (index_beam_on_z == 0 ? 0 : R_SKELETON_BEAM_CENTRES[2]) , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + D_BEAM_SKELETON / 2 + (index_beam_on_z == 0 ? 0 : R_SKELETON_BEAM_CENTRES[2])
]) ])
rotate([90, 0, 0]) rotate([90, 0, 0])
// skeleton_beam(length_beam_on_y); // skeleton_beam(length_beam_on_y);
@@ -51,12 +52,13 @@ module glovebox_shell(angle_door_from_closed) {
// Joints // Joints
} }
} }
/*
for (index_beam_on_x = [0 : 1 : COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1]) { for (index_beam_on_x = [0 : 1 : COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1]) {
// Beams // Beams
translate([ translate([
R_INTERNAL[0] / 2 - D_BEAM_SKELETON / 2 - OFFSET_X_BASE_BEAM_SUPPORTS - (index_beam_on_x) * (R_INTERNAL[0] - D_BEAM_SKELETON - OFFSET_X_BASE_BEAM_SUPPORTS * 2) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) R_INTERNAL[0] / 2 - D_BEAM_SKELETON / 2 - OFFSET_X_BASE_BEAM_SUPPORTS - (index_beam_on_x) * (R_INTERNAL[0] - D_BEAM_SKELETON - OFFSET_X_BASE_BEAM_SUPPORTS * 2) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1)
, 0 , 0
, L_LEG - D_BEAM_SKELETON / 2 , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER - D_BEAM_SKELETON / 2
]) ])
rotate([90, 0, 0]) rotate([90, 0, 0])
// skeleton_beam(R_EXTERNAL[1]); // skeleton_beam(R_EXTERNAL[1]);
@@ -65,48 +67,51 @@ module glovebox_shell(angle_door_from_closed) {
for (index_support_on_x = [0 : 1 : 1]) { for (index_support_on_x = [0 : 1 : 1]) {
for (index_support_on_y = [0 : 1 : 1]) { for (index_support_on_y = [0 : 1 : 1]) {
translate([ translate([
R_INTERNAL[0] / 2 - D_BEAM_SKELETON / 2 - OFFSET_X_BASE_BEAM_SUPPORTS - (index_beam_on_x) * (R_INTERNAL[0] - D_BEAM_SKELETON - OFFSET_X_BASE_BEAM_SUPPORTS * 2) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1) R_INTERNAL[0] / 2 - D_BEAM_SKELETON / 2 - OFFSET_X_BASE_BEAM_SUPPORTS - (index_beam_on_x) * (R_INTERNAL[0] - D_BEAM_SKELETON - OFFSET_X_BASE_BEAM_SUPPORTS * 2) / (COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1)
, 0 , 0
, 0 , 0
]) ])
mirror([index_support_on_x, 0, 0]) mirror([0, index_support_on_y, 0]) translate([D_BEAM_SKELETON / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG]) mirror([index_support_on_x, 0, 0]) mirror([0, index_support_on_y, 0]) translate([D_BEAM_SKELETON / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER])
rotate([180, 0, 0]) rotate([180, 0, 0])
// angle_bracket_20_20(); // angle_bracket_20_20();
import("../fixings/angle_bracket_20_20.stl"); import("../fixings/angle_bracket_20_20.stl");
} }
} }
} }
// translate([0, 0, L_LEG - D_BEAM_SKELETON / 2]) rotate([90, 0, 0]) skeleton_beam(R_EXTERNAL[1]); */
// translate([0, 0, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER - D_BEAM_SKELETON / 2]) rotate([90, 0, 0]) skeleton_beam(R_EXTERNAL[1]);
// Z // Z
for (index_beam_on_x = [0 : 1 : 1]) { for (index_beam_on_x = [0 : 1 : 1]) {
for (index_beam_on_y = [0 : 1 : 1]) { for (index_beam_on_y = [0 : 1 : 1]) {
mirror([index_beam_on_x, 0, 0]) mirror([0, index_beam_on_y, 0]) { mirror([index_beam_on_x, 0, 0]) mirror([0, index_beam_on_y, 0]) {
// Beams // Beams
// Main chamber section // Main chamber section
translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + D_BEAM_SKELETON + length_beam_on_z / 2]) translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + D_BEAM_SKELETON + length_beam_on_z / 2])
// skeleton_beam(length_beam_on_z); // skeleton_beam(length_beam_on_z);
color("silver") import("./skeleton_beam_for_shell_on_z.stl"); color("silver") import("./skeleton_beam_for_shell_on_z.stl");
/*
// Chamber legs // Chamber legs
translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG / 2]) translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER / 2])
// skeleton_beam(length_beam_on_z); // skeleton_beam(length_beam_on_z);
color("silver") import("./skeleton_beam_for_shell_leg.stl"); color("silver") import("./skeleton_beam_for_shell_leg.stl");
// Joints // Joints
// Base // Base
translate([R_INTERNAL[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG]) translate([R_INTERNAL[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER])
rotate([180, 0, 180]) rotate([180, 0, 180])
// angle_bracket_20_20(); // angle_bracket_20_20();
import("../fixings/angle_bracket_20_20.stl"); import("../fixings/angle_bracket_20_20.stl");
translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_INTERNAL[1] / 2, L_LEG]) translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_INTERNAL[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER])
rotate([180, 0, -90]) rotate([180, 0, -90])
// angle_bracket_20_20(); // angle_bracket_20_20();
import("../fixings/angle_bracket_20_20.stl"); import("../fixings/angle_bracket_20_20.stl");
*/
// Top - inline // Top - inline
/* /*
translate([R_EXTERNAL[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, R_EXTERNAL[2] - D_BEAM_SKELETON / 2 + L_LEG]) translate([R_EXTERNAL[0] / 2, R_SKELETON_BEAM_CENTRES[1] / 2, R_EXTERNAL[2] - D_BEAM_SKELETON / 2 + L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER])
rotate([-90, 0, 0]) rotate([0, 90, 0]) rotate([-90, 0, 0]) rotate([0, 90, 0])
// mitre_bracket(); // mitre_bracket();
import("../fixings/mitre_bracket.stl"); import("../fixings/mitre_bracket.stl");
translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_EXTERNAL[1] / 2, R_EXTERNAL[2] - D_BEAM_SKELETON / 2 + L_LEG]) translate([R_SKELETON_BEAM_CENTRES[0] / 2, R_EXTERNAL[1] / 2, R_EXTERNAL[2] - D_BEAM_SKELETON / 2 + L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER])
rotate([-90, 90, 0]) rotate([-90, 90, 0])
// mitre_bracket(); // mitre_bracket();
import("../fixings/mitre_bracket.stl"); import("../fixings/mitre_bracket.stl");
@@ -114,6 +119,7 @@ module glovebox_shell(angle_door_from_closed) {
} }
} }
} }
/*
// Support beam legs // Support beam legs
L_support_leg = L_LEG - D_BEAM_SKELETON; L_support_leg = L_LEG - D_BEAM_SKELETON;
for (index_beam_on_x = [0 : 1 : COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1]) { for (index_beam_on_x = [0 : 1 : COUNT_BASE_SUPPORT_BEAMS_ON_Y - 1]) {
@@ -137,16 +143,21 @@ module glovebox_shell(angle_door_from_closed) {
color("silver") import("../fixings/angle_bracket_20_20.stl"); color("silver") import("../fixings/angle_bracket_20_20.stl");
} }
} }
*/
// Base gasket
color("black") translate([0, 0, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER / 2]) import("../glovebox_base/base_gasket.stl");
// Base plate
translate([0, 0, L_LEG + R_BASE_PLATE[2] / 2]) base_plate();
// Rear panel // Rear panel
translate([0, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_EXTERNAL[2] / 2]) glovebox_rear_panel(); translate([0, R_SKELETON_BEAM_CENTRES[1] / 2, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + R_EXTERNAL[2] / 2]) glovebox_rear_panel();
// Door // Door
translate([0, -R_EXTERNAL[1] / 2 - T_DOOR, L_LEG + R_EXTERNAL[2] - T_DOOR]) rotate([90 - angle_door_from_closed, 0, 0]) glovebox_door(); translate([0, -R_EXTERNAL[1] / 2 - T_DOOR, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + R_EXTERNAL[2] - T_DOOR]) rotate([90 - angle_door_from_closed, 0, 0]) glovebox_door();
// Hinges // Hinges
for (index_hinge = [0 : 1 : COUNT_HINGES - 1]) { for (index_hinge = [0 : 1 : COUNT_HINGES - 1]) {
translate([ translate([
-R_INTERNAL[0] / 2 + (R_INTERNAL[0]) / (COUNT_HINGES + 1) * (index_hinge + 1) -R_INTERNAL[0] / 2 + (R_INTERNAL[0]) / (COUNT_HINGES + 1) * (index_hinge + 1)
, -R_EXTERNAL[1] / 2 , -R_EXTERNAL[1] / 2
, L_LEG + R_EXTERNAL[2] , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + R_EXTERNAL[2]
]) { ]) {
translate([0, D_BEAM_SKELETON / 2 - OFFSET_HINGE_HOLE_CENTRES_Y / 2, 0]) door_hinge(90 + angle_door_from_closed); translate([0, D_BEAM_SKELETON / 2 - OFFSET_HINGE_HOLE_CENTRES_Y / 2, 0]) door_hinge(90 + angle_door_from_closed);
@@ -175,12 +186,13 @@ module glovebox_shell(angle_door_from_closed) {
} }
// Latches // Latches
for (index_latch = [0 : 1 : 1]) { for (index_latch = [0 : 1 : 1]) {
/*
// Bottom // Bottom
mirror([index_latch, 0, 0]) mirror([index_latch, 0, 0]) {
translate([ translate([
R_EXTERNAL[0] / 2 - OFFSET_LATCH_FROM_SIDE R_EXTERNAL[0] / 2 - OFFSET_LATCH_FROM_SIDE
, -R_EXTERNAL[1] / 2 , -R_EXTERNAL[1] / 2
, L_LEG , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER
]) { ]) {
// Plate // Plate
translate([0, R_DOOR_LATCH_SUPPORT_PLATE[1] / 2, -R_DOOR_LATCH_SUPPORT_PLATE[2] / 2]) difference() { translate([0, R_DOOR_LATCH_SUPPORT_PLATE[1] / 2, -R_DOOR_LATCH_SUPPORT_PLATE[2] / 2]) difference() {
@@ -226,12 +238,22 @@ module glovebox_shell(angle_door_from_closed) {
} }
} }
} }
}
*/
// Sides // Sides
mirror([index_latch, 0, 0]) mirror([index_latch, 0, 0]) {
translate([
R_EXTERNAL[0] / 2
, -R_EXTERNAL[1] / 2
, L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + D_BEAM_SKELETON / 2
]) cube(1);
}
/*
mirror([index_latch, 0, 0]) {
translate([ translate([
R_EXTERNAL[0] / 2 + R_DOOR_LATCH_SUPPORT_PLATE[2] / 2 R_EXTERNAL[0] / 2 + R_DOOR_LATCH_SUPPORT_PLATE[2] / 2
, -R_EXTERNAL[1] / 2 + R_DOOR_LATCH_SUPPORT_PLATE[1] / 2 , -R_EXTERNAL[1] / 2 + R_DOOR_LATCH_SUPPORT_PLATE[1] / 2
, L_LEG + R_EXTERNAL[2] - OFFSET_LATCH_FROM_TOP , L_LEG + R_BASE_PLATE[2] + T_GASKET_RUBBER + R_EXTERNAL[2] - OFFSET_LATCH_FROM_TOP
]) { ]) {
rotate([0, 90, 0]) difference() { rotate([0, 90, 0]) difference() {
cube(R_DOOR_LATCH_SUPPORT_PLATE, center = true); cube(R_DOOR_LATCH_SUPPORT_PLATE, center = true);
@@ -283,6 +305,8 @@ module glovebox_shell(angle_door_from_closed) {
} }
} }
} }
}
*/
} }
} }
// Shopping // Shopping