diff options
author | xengineering <me@xengineering.eu> | 2024-12-24 12:39:34 +0100 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-12-26 12:06:36 +0100 |
commit | db966c966929dd3abc29ebab7ce47d638ba4a94f (patch) | |
tree | af2b844a2938de1698712642261bc2f8aa52732a /mech/pcb_case | |
parent | 03d41e8069623b5d627dfb298c471a16c380c91d (diff) | |
download | soundbox-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.scad | 13 | ||||
-rw-r--r-- | mech/pcb_case/conversion.scad | 8 | ||||
-rw-r--r-- | mech/pcb_case/nut.scad | 7 | ||||
-rw-r--r-- | mech/pcb_case/panel.scad | 28 | ||||
-rw-r--r-- | mech/pcb_case/pcb.scad | 14 | ||||
-rw-r--r-- | mech/pcb_case/rounded_cube.scad | 12 | ||||
-rw-r--r-- | mech/pcb_case/shell.scad | 116 | ||||
-rw-r--r-- | mech/pcb_case/spacer.scad | 10 | ||||
-rw-r--r-- | mech/pcb_case/tolerance_tests.scad | 86 |
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); |