summaryrefslogtreecommitdiff
path: root/mech
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2023-12-23 22:24:55 +0100
committerxengineering <me@xengineering.eu>2024-01-02 14:24:58 +0100
commit432589acd8b56f881bd5006497a1dbb722a502a8 (patch)
tree7e2d805dad456eb7d521b27eb788baa5e1dba494 /mech
parentdb04f4ee722a6de068b7b77b9464fcc10470a468 (diff)
downloadsoundbox-432589acd8b56f881bd5006497a1dbb722a502a8.tar
soundbox-432589acd8b56f881bd5006497a1dbb722a502a8.tar.zst
soundbox-432589acd8b56f881bd5006497a1dbb722a502a8.zip
mech: pcb_case: Specify bolt as ISO 4762 M3x10
This bolt is a good starting point for most PCB cases.
Diffstat (limited to 'mech')
-rw-r--r--mech/pcb_case/bolt.scad13
-rw-r--r--mech/pcb_case/nut_tolerance_test.scad2
-rw-r--r--mech/pcb_case/shell.scad14
3 files changed, 18 insertions, 11 deletions
diff --git a/mech/pcb_case/bolt.scad b/mech/pcb_case/bolt.scad
index 4fbd349..2ad348a 100644
--- a/mech/pcb_case/bolt.scad
+++ b/mech/pcb_case/bolt.scad
@@ -1,6 +1,13 @@
-bolt_d = 3;
-bolt_r = bolt_d / 2;
+// bolt based on ISO 4762 (https://www.fasteners.eu/us/standards/ISO/4762)
+bolt_k = 3;
+bolt_l = 10;
+bolt_dk = 5.5;
+bolt_ds = 3;
+bolt_ds_tol = 0.3;
module bolt() {
- cylinder(d=bolt_d,h=5); // TODO height is not considered at the moment
+ union() {
+ cylinder(d=bolt_ds, h=bolt_l, $fn=30);
+ translate([0, 0, -bolt_ds]) cylinder(d=bolt_dk, h=bolt_ds, $fn=30);
+ }
}
diff --git a/mech/pcb_case/nut_tolerance_test.scad b/mech/pcb_case/nut_tolerance_test.scad
index 8d08d32..e1df2b4 100644
--- a/mech/pcb_case/nut_tolerance_test.scad
+++ b/mech/pcb_case/nut_tolerance_test.scad
@@ -13,7 +13,7 @@ module nut_tolerance_test() {
cube([5*nut_d, 5*nut_d, 2*nut_h]);
translate([2.5*nut_d,2.5*nut_d,0]) {
union() {
- cylinder(d=bolt_d,h=2*nut_h,$fn=50);
+ cylinder(d=bolt_ds,h=2*nut_h,$fn=50);
translate([0,0,nut_h])
cylinder(d=tol+nut_d,h=nut_h,$fn=50);
}
diff --git a/mech/pcb_case/shell.scad b/mech/pcb_case/shell.scad
index e7fe345..2599584 100644
--- a/mech/pcb_case/shell.scad
+++ b/mech/pcb_case/shell.scad
@@ -18,9 +18,9 @@ module shell_base(dim, t) {
rounded_cube([t, dim[1]-2*t, dim[2]-2*t], radius);
}
for (x = [dim[0]/4, dim[0]-dim[0]/4]) {
- translate([x,0,dim[2]/2-1.5*bolt_d])
+ translate([x,0,dim[2]/2-1.5*bolt_ds])
rotate([-90,0,0])
- cylinder(r=bolt_r, h=1.1*t, $fn=30);
+ cylinder(d=bolt_ds, h=1.1*t, $fn=30);
}
}
}
@@ -28,7 +28,7 @@ module shell_base(dim, t) {
module shell_connector(dim, t) {
size_x = dim[0]-6*t;
size_y = 2*nut_h;
- size_z = dim[2]/2+3*bolt_d;
+ size_z = dim[2]/2+3*bolt_ds;
difference () {
// base body
@@ -37,14 +37,14 @@ module shell_connector(dim, t) {
// bolt holes
for (x = [dim[0]/4, dim[0]-dim[0]/4]) {
- translate([x,dim[1]-t,dim[2]/2+1.5*bolt_d])
+ translate([x,dim[1]-t,dim[2]/2+1.5*bolt_ds])
rotate([90,0,0])
- cylinder(r=bolt_r, h=size_y, $fn=30);
+ cylinder(d=bolt_ds, h=size_y, $fn=30);
}
// nut holes
for (x = [dim[0]/4, dim[0]-dim[0]/4]) {
- translate([x,dim[1]-t-size_y,dim[2]/2+1.5*bolt_d])
+ translate([x,dim[1]-t-size_y,dim[2]/2+1.5*bolt_ds])
rotate([-90,0,0])
cylinder(r=nut_r, h=nut_h, $fn=30);
}
@@ -66,7 +66,7 @@ module pcb_case_shell(dim, t, h, sockets) {
}
for (socket = sockets) {
translate([socket[0], socket[1], 0]) {
- cylinder(d=bolt_d, h=h, $fn=30);
+ cylinder(d=bolt_ds, h=h, $fn=30);
cylinder(d=0.9*nut_d, h=nut_h, $fn=30);
}
}