summaryrefslogtreecommitdiff
path: root/mech/pcb_case
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-12-24 12:39:34 +0100
committerxengineering <me@xengineering.eu>2024-12-26 12:06:36 +0100
commitdb966c966929dd3abc29ebab7ce47d638ba4a94f (patch)
treeaf2b844a2938de1698712642261bc2f8aa52732a /mech/pcb_case
parent03d41e8069623b5d627dfb298c471a16c380c91d (diff)
downloadsoundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.tar
soundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.tar.zst
soundbox-db966c966929dd3abc29ebab7ce47d638ba4a94f.zip
WIP: Move `mech` directory to `case`
TODO: There are outdated references (see grep -R mech .) The directory name should reflect what is inside, not the field of engineering it belongs to.
Diffstat (limited to 'mech/pcb_case')
-rw-r--r--mech/pcb_case/bolt.scad13
-rw-r--r--mech/pcb_case/conversion.scad8
-rw-r--r--mech/pcb_case/nut.scad7
-rw-r--r--mech/pcb_case/panel.scad28
-rw-r--r--mech/pcb_case/pcb.scad14
-rw-r--r--mech/pcb_case/rounded_cube.scad12
-rw-r--r--mech/pcb_case/shell.scad116
-rw-r--r--mech/pcb_case/spacer.scad10
-rw-r--r--mech/pcb_case/tolerance_tests.scad86
9 files changed, 0 insertions, 294 deletions
diff --git a/mech/pcb_case/bolt.scad b/mech/pcb_case/bolt.scad
deleted file mode 100644
index 4c26c30..0000000
--- a/mech/pcb_case/bolt.scad
+++ /dev/null
@@ -1,13 +0,0 @@
-// 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.45;
-
-module bolt() {
- 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/conversion.scad b/mech/pcb_case/conversion.scad
deleted file mode 100644
index 69c3c3b..0000000
--- a/mech/pcb_case/conversion.scad
+++ /dev/null
@@ -1,8 +0,0 @@
-include <bolt.scad>
-include <nut.scad>
-
-function dim_pcb_to_case(pcb_dim, margins, t) = [
- pcb_dim[0]+margins[0][0]+margins[0][1]+4*t,
- pcb_dim[1]+margins[1][0]+margins[1][1]+2*t+2*(bolt_l-t),
- pcb_dim[2]+margins[2][0]+margins[2][1]+4*t
-];
diff --git a/mech/pcb_case/nut.scad b/mech/pcb_case/nut.scad
deleted file mode 100644
index 0768b6a..0000000
--- a/mech/pcb_case/nut.scad
+++ /dev/null
@@ -1,7 +0,0 @@
-nut_h = 3;
-nut_d = 4.15;
-nut_d_tol = 0.2;
-
-module nut() {
- cylinder(d=nut_d,h=nut_h);
-}
diff --git a/mech/pcb_case/panel.scad b/mech/pcb_case/panel.scad
deleted file mode 100644
index eef0b28..0000000
--- a/mech/pcb_case/panel.scad
+++ /dev/null
@@ -1,28 +0,0 @@
-include <nut.scad>
-
-use <conversion.scad>
-use <rounded_cube.scad>
-
-panel_dim_0_tol = 0.3;
-panel_dim_1_2_tol = 0.45;
-
-module pcb_case_panel(pcb_dim, margins, t) {
- dim = dim_pcb_to_case(pcb_dim, margins, t);
-
- rounded_cube(
- dim=[t, dim[1]-2*t, dim[2]-2*t],
- radius=t
- );
-}
-
-module pcb_case_panel_back(pcb_dim, margins, t) {
- translate([t, t, t])
- pcb_case_panel(pcb_dim, margins, t);
-}
-
-module pcb_case_panel_front(pcb_dim, margins, t) {
- dim = dim_pcb_to_case(pcb_dim, margins, t);
-
- translate([dim[0]-2*t, t, t])
- pcb_case_panel(pcb_dim, margins, t);
-}
diff --git a/mech/pcb_case/pcb.scad b/mech/pcb_case/pcb.scad
deleted file mode 100644
index 7b24131..0000000
--- a/mech/pcb_case/pcb.scad
+++ /dev/null
@@ -1,14 +0,0 @@
-include <bolt.scad>
-include <nut.scad>
-
-module pcb(dim, drillings, margins, t) {
- translate([2*t+margins[0][0], bolt_l+margins[1][0], t+margins[2][0]]) {
- difference() {
- cube([dim[0], dim[1], dim[2]]);
- for (drilling = drillings) {
- translate([drilling[0], drilling[1], 0])
- cylinder(d=3, h=dim[2], $fn=30);
- }
- }
- }
-}
diff --git a/mech/pcb_case/rounded_cube.scad b/mech/pcb_case/rounded_cube.scad
deleted file mode 100644
index acd50e7..0000000
--- a/mech/pcb_case/rounded_cube.scad
+++ /dev/null
@@ -1,12 +0,0 @@
-module rounded_cube(dim, radius) {
- range_y = [radius, dim[1]-radius];
- range_z = [radius, dim[2]-radius];
- height = dim[0];
-
- hull() {
- for (y=range_y, z=range_z) {
- translate([0,y,z]) rotate([0,90,0])
- cylinder(r=radius, h=height, $fn=30);
- }
- }
-}
diff --git a/mech/pcb_case/shell.scad b/mech/pcb_case/shell.scad
deleted file mode 100644
index 18139f6..0000000
--- a/mech/pcb_case/shell.scad
+++ /dev/null
@@ -1,116 +0,0 @@
-include <bolt.scad>
-include <nut.scad>
-include <panel.scad>
-
-use <conversion.scad>
-use <rounded_cube.scad>
-
-module shell_base(pcb_dim, margins, t) {
- dim = dim_pcb_to_case(pcb_dim, margins, t);
-
- difference() {
- // full body
- rounded_cube(dim=dim, radius=t);
-
- // cut away upper half
- translate([0,0,dim[2]/2])
- cube([dim[0], dim[1], dim[2]/2]);
-
- // main PCB space
- translate([3*t, t, t])
- rounded_cube([dim[0]-6*t, dim[1]-2*t, dim[2]-2*t], t);
-
- // remove front and back
- translate([0, 2*t, 2*t])
- rounded_cube([dim[0], dim[1]-4*t, dim[2]-4*t], t);
-
- // panel holder
- for (x_off = [t-panel_dim_0_tol/2, dim[0]-2*t-panel_dim_0_tol/2]) {
- translate([x_off, t-panel_dim_0_tol/2, t-panel_dim_0_tol/2]) {
- rounded_cube(
- [
- t+panel_dim_0_tol,
- dim[1]-2*t+panel_dim_1_2_tol,
- dim[2]-2*t+panel_dim_1_2_tol
- ],
- t
- );
- }
- }
-
- // bolt drillings
- for (x = [dim[0]/4, dim[0]-dim[0]/4]) {
- translate([x,0,dim[2]/2-1.5*bolt_ds])
- rotate([-90,0,0])
- cylinder(d=bolt_ds+bolt_ds_tol, h=1.1*t, $fn=30);
- }
- }
-}
-
-module shell_connector(pcb_dim, margins, t) {
- dim = dim_pcb_to_case(pcb_dim, margins, t);
-
- size_x = dim[0]-6*t;
- size_y = bolt_l-t;
- size_z = dim[2]/2+3*bolt_ds;
-
- difference () {
- // base body
- translate([3*t,dim[1]-t-size_y,0])
- cube([size_x,size_y,size_z]);
-
- // bolt holes
- for (x = [dim[0]/4, dim[0]-dim[0]/4]) {
- translate([x,dim[1]-t,dim[2]/2+1.5*bolt_ds])
- rotate([90,0,0])
- cylinder(d=bolt_ds+bolt_ds_tol, 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_ds])
- rotate([-90,0,0])
- cylinder(d=nut_d+nut_d_tol, h=nut_h, $fn=30);
- }
- }
-
- echo(min_shell_bolt_length=t+size_y);
-}
-
-module pcb_case_shell(pcb_dim, drillings, margins, t) {
- difference () {
- union() {
- shell_base(pcb_dim, margins, t);
- shell_connector(pcb_dim, margins, t);
- for (drilling = drillings) {
- translate([
- 2*t+margins[0][0]+drilling[0],
- bolt_l+margins[1][0]+drilling[1],
- 0
- ]) cylinder(d=nut_d+2, h=t+margins[2][0], $fn=30);
- }
- }
- for (drilling = drillings) {
- translate([
- 2*t+margins[0][0]+drilling[0],
- bolt_l+margins[1][0]+drilling[1],
- 0
- ]) {
- cylinder(d=bolt_ds+bolt_ds_tol, h=t+margins[2][0], $fn=30);
- cylinder(d=nut_d+nut_d_tol, h=nut_h, $fn=30);
- }
- }
- }
-}
-
-module pcb_case_shell_bottom(pcb_dim, drillings, margins, t) {
- pcb_case_shell(pcb_dim, drillings, margins, t);
-}
-
-module pcb_case_shell_top(pcb_dim, margins, t) {
- dim = dim_pcb_to_case(pcb_dim, margins, t);
-
- translate([0, dim[1], dim[2]])
- rotate([180,0,0])
- pcb_case_shell(pcb_dim, [], margins, t);
-}
diff --git a/mech/pcb_case/spacer.scad b/mech/pcb_case/spacer.scad
deleted file mode 100644
index e7eba3a..0000000
--- a/mech/pcb_case/spacer.scad
+++ /dev/null
@@ -1,10 +0,0 @@
-include <bolt.scad>
-
-spacer_h = 11;
-
-module spacer() {
- difference() {
- cylinder(d=bolt_dk, h=spacer_h, $fn=30);
- cylinder(d=bolt_ds+bolt_ds_tol, h=spacer_h, $fn=30);
- }
-}
diff --git a/mech/pcb_case/tolerance_tests.scad b/mech/pcb_case/tolerance_tests.scad
deleted file mode 100644
index 94911cd..0000000
--- a/mech/pcb_case/tolerance_tests.scad
+++ /dev/null
@@ -1,86 +0,0 @@
-include <bolt.scad>
-include <nut.scad>
-include <panel.scad>
-
-use <rounded_cube.scad>
-
-t = 2;
-step_width = 0.15;
-
-module bolt_drilling() {
- steps = 2;
-
- for(i = [-steps : steps]) {
- tol = bolt_ds_tol + i * step_width;
- echo(bolt_ds_tol=tol);
- translate([i*5*bolt_ds,0,0])
- difference() {
- cube([5*bolt_ds, 5*bolt_ds, t]);
- translate([2.5*bolt_ds,2.5*bolt_ds,0]) {
- cylinder(d=bolt_ds+tol,h=t,$fn=50);
- }
- }
- }
-}
-
-module nut_drilling() {
- steps = 2;
-
- for(i = [-steps : steps]) {
- tol = nut_d_tol + i * step_width;
- echo(nut_d_tol=tol);
- translate([i*5*nut_d,0,0])
- difference() {
- cube([5*nut_d, 5*nut_d, 2*nut_h]);
- translate([2.5*nut_d,2.5*nut_d,0]) {
- union() {
- cylinder(d=bolt_ds+bolt_ds_tol,h=2*nut_h,$fn=50);
- translate([0,0,nut_h])
- cylinder(d=tol+nut_d,h=nut_h,$fn=50);
- }
- }
- }
- }
-}
-
-module panel_thickness() {
- steps = 2;
-
- height = 2*t;
-
- for(i = [-steps : steps]) {
- tol = panel_dim_0_tol + i * step_width;
- echo(panel_dim_0_tol=tol);
- translate([i*5*t,0,0])
- difference() {
- cube([5*t, 5*t, height]);
- translate([2*t, 0, t]) {
- cube([t+tol, 5*t, t]);
- }
- }
- }
-}
-
-module panel_width_height() {
- steps = 2;
-
- height = 3*t;
-
- for(i = [-steps : steps]) {
- tol = panel_dim_1_2_tol + i * step_width;
- echo(panel_dim_1_2_tol=tol);
- translate([i*3*t,0,0])
- difference() {
- cube([3*t, 8*t, height]);
- translate([t, t-tol/2, t]) {
- rounded_cube([t+panel_dim_0_tol, 6*t+tol, 6*t+tol], t);
- }
- }
- }
-}
-
-bolt_drilling();
-translate([0, 20, 0]) nut_drilling();
-translate([0, 70, 0]) panel_thickness();
-translate([0, 50, 0]) panel_width_height();
-translate([0, 85, 0]) rotate([0, -90, 0]) rounded_cube([t, 6*t, 6*t], t);