Skip to content

Commit 82d0b00

Browse files
author
Felix "xq" Queißner
committed
Improves the PCB slider by adding a tiny chamfer and widening at the ends, so insertion of the PCB is easier. Also increased the margins as the pcb fit pretty tight.
1 parent 5ef3b4c commit 82d0b00

4 files changed

Lines changed: 99 additions & 65 deletions

File tree

Hardware/Case/case.scad

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ translate([0,169/2,0])
4141

4242
translate([0,(slot_plate_thickness+frontpanel_thickness)/2,0]) foreach_slot()
4343
{
44-
// translate([0,-0.8,0]) yrotate(180) xrotate(-90)
45-
translate([slot_pcb_offset-slot_pcb_thickness/2,-slot_plate_thickness/2,0])
46-
color("green") zrotate(-90) xrotate(-90) import("../Mechanical Prototype/Expansion Board/Expansion Board.stl");
44+
translate([slot_pcb_offset-slot_pcb_thickness/2,-slot_plate_thickness/2,0]) color("green") zrotate(-90) xrotate(-90) import("../Mechanical Prototype/Expansion Board/Expansion Board.stl");
45+
46+
// translate([slot_pcb_offset,-slot_pcb_length/2-slot_plate_thickness/2,0]) mat_pcb() slot_pcb();
4747

4848
xcon_slot_plate() xcon_expansion_dummy($i);
49+
4950

5051
color("gray") zmirror() translate([slot_pcb_offset,-slot_pcb_length/2-slot_plate_thickness/2,-baseplate_spread + baseplate_thickness/2]) pcb_slider();
5152

52-
// translate([slot_pcb_offset,-slot_pcb_length/2-slot_plate_thickness/2,0]) mat_pcb() slot_pcb();
5353

54-
zmirror() translate([0,slot_plate_thickness/2,slot_screw_offset]) xrotate(90) screw_m2_5_4mm(); // screw_model(slot_screw_type, slot_screw_length );
54+
zmirror() translate([0,slot_plate_thickness/2,slot_screw_offset]) xrotate(90) screw_m2_5_4mm();
5555
}
5656
}
5757

Hardware/Case/parts/parameters.scad

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,17 @@ frontpanel_thickness = 2.0;
6767

6868
// PCB Sliders
6969

70-
pcb_slider_pcb_margin = 0.15;
70+
pcb_slider_pcb_vmargin = 0.4;
71+
pcb_slider_pcb_hmargin = 0.2;
7172
pcb_slider_height = 6.6; // mm
72-
pcb_slider_width_top = 4; // mm
73-
pcb_slider_width_bot = 5; // mm
73+
pcb_slider_width_top = 4.5; // mm
74+
pcb_slider_width_bot = 5.5; // mm
7475
pcb_slider_holes = 3;
7576
pcb_slider_hole_margin = 10; // mm
7677
pcb_slider_case_margin = 5; // mm
7778
pcb_slider_hole_screw = M2_5;
79+
pcb_slider_bevel_len = 10; // mm
80+
pcb_slider_bevel_angle = 7.5; // deg
7881

7982
// Automation Variables:
8083
RENDER_PART_2D = false;
@@ -84,9 +87,9 @@ RENDER_PART_3D = false;
8487

8588
slot_screw_offset = slot_plate_height/2-slot_screw_inset;
8689

87-
pcb_slider_depth = baseplate_spread - baseplate_thickness/2 - slot_pcb_height / 2 - pcb_slider_pcb_margin; // mm
88-
pcb_slider_notch_width_top = slot_pcb_thickness + 4 * pcb_slider_pcb_margin; // mm
89-
pcb_slider_notch_width_bot = slot_pcb_thickness + 2 * pcb_slider_pcb_margin; // mm
90+
pcb_slider_depth = baseplate_spread - baseplate_thickness/2 - slot_pcb_height / 2 - pcb_slider_pcb_vmargin; // mm
91+
pcb_slider_notch_width_top = slot_pcb_thickness + 4 * pcb_slider_pcb_hmargin; // mm
92+
pcb_slider_notch_width_bot = slot_pcb_thickness + 2 * pcb_slider_pcb_hmargin; // mm
9093
pcb_slider_length = slot_pcb_length - 2 * pcb_slider_case_margin; // mm
9194

9295
echo(pcb_slider_depth, pcb_slider_height);
Lines changed: 64 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,77 @@
11
include <parameters.scad>
22
use <../lib/common.scad>
33

4-
module pcb_slider_2d()
5-
{
6-
size = [ slot_pcb_height, slot_pcb_length ];
7-
8-
h = pcb_slider_height;
9-
hi = pcb_slider_depth; // TODO
10-
wot = pcb_slider_width_top / 2;
11-
wob = pcb_slider_width_bot / 2;
12-
wit = pcb_slider_notch_width_top / 2;
13-
wib = pcb_slider_notch_width_bot / 2;
14-
15-
polygon(points=[
16-
[-wob,0],
17-
[-wot,h],
18-
[-wit,h],
19-
[-wib,hi],
20-
[wib,hi],
21-
[wit,h],
22-
[wot,h],
23-
[wob,0],
24-
]);
4+
module pcb_slider_body_2d() {
5+
size = [slot_pcb_height, slot_pcb_length];
6+
7+
h = pcb_slider_height;
8+
hi = pcb_slider_depth; // TODO
9+
wot = pcb_slider_width_top / 2;
10+
wob = pcb_slider_width_bot / 2;
11+
wit = pcb_slider_notch_width_top / 2;
12+
wib = pcb_slider_notch_width_bot / 2;
13+
14+
polygon(
15+
points=[
16+
[-wob, 0],
17+
[-wot, h],
18+
[wot, h],
19+
[wob, 0],
20+
]
21+
);
22+
}
23+
24+
module pcb_slider_notch_2d() {
25+
size = [slot_pcb_height, slot_pcb_length];
26+
27+
h = pcb_slider_height;
28+
hi = pcb_slider_depth; // TODO
29+
wot = pcb_slider_width_top / 2;
30+
wob = pcb_slider_width_bot / 2;
31+
wit = pcb_slider_notch_width_top / 2;
32+
wib = pcb_slider_notch_width_bot / 2;
33+
34+
polygon(
35+
points=[
36+
[-2 * wit, 2 * h],
37+
[-wib, hi],
38+
[wib, hi],
39+
[2 * wit, 2 * h],
40+
]
41+
);
2542
}
2643

27-
module pcb_slider()
28-
{
29-
tdist = pcb_slider_length - 2 * pcb_slider_hole_margin;
30-
hdist = tdist / (pcb_slider_holes-1);
31-
32-
render() difference()
33-
{
34-
xrotate(90) linear_extrude(height = pcb_slider_length, center=true) pcb_slider_2d();
35-
union() for($i = [0: pcb_slider_holes-1]) {
36-
off = hdist * $i -(pcb_slider_length/2 - pcb_slider_hole_margin);
44+
module pcb_slider() {
45+
tdist = pcb_slider_length - 2 * pcb_slider_hole_margin;
46+
hdist = tdist / (pcb_slider_holes - 1);
47+
48+
render() difference() {
49+
xrotate(90) linear_extrude(height=pcb_slider_length, center=true) pcb_slider_body_2d();
50+
51+
union() {
52+
xrotate(90) linear_extrude(height=2 * pcb_slider_length, center=true) pcb_slider_notch_2d();
3753

38-
translate([0,off,-1]) linear_extrude(height=pcb_slider_depth) screw_shaft_2d(pcb_slider_hole_screw);
39-
}
54+
for ($i = [0:pcb_slider_holes - 1]) {
55+
off = hdist * $i - (pcb_slider_length / 2 - pcb_slider_hole_margin);
4056

57+
translate([0, off, -1]) linear_extrude(height=pcb_slider_depth) screw_shaft_2d(pcb_slider_hole_screw);
58+
}
59+
60+
ymirror() {
61+
translate([0, pcb_slider_length / 2 - pcb_slider_bevel_len, 0]) xrotate(-pcb_slider_bevel_angle)
62+
xrotate(90) yrotate(180) linear_extrude(height=3 * pcb_slider_bevel_len, center=true) pcb_slider_notch_2d();
63+
}
64+
}
4165
}
4266
}
4367

44-
if (RENDER_PART_2D)
45-
{
46-
pcb_slider_2d();
68+
if (RENDER_PART_2D) {
69+
difference() {
70+
pcb_slider_body_2d();
71+
pcb_slider_notch_2d();
72+
}
4773
}
4874

49-
if (RENDER_PART_3D)
50-
{
51-
pcb_slider();
75+
if (RENDER_PART_3D) {
76+
pcb_slider();
5277
}

Hardware/Case/workspace.scad

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,25 @@ include <parts/frontpanel.scad>
1212
include <parts/slot_plate.scad>
1313
include <parts/slot_pcb.scad>
1414

15-
xcon_slot_plate()
16-
{
17-
// xcon_rs232();
18-
// xcon_vga();
19-
// xcon_cinch();
20-
// xcon_usb_c();
21-
// xcon_usb_a();
22-
// xcon_usb_av();
23-
// xcon_pinheader_12x2();
24-
// xcon_din6();
25-
// xcon_ms_x2();
26-
// xcon_pi4();
27-
// xcon_rj45();
28-
// xcon_hdmi();
29-
}
15+
// xcon_slot_plate()
16+
// {
17+
// // xcon_rs232();
18+
// // xcon_vga();
19+
// // xcon_cinch();
20+
// // xcon_usb_c();
21+
// // xcon_usb_a();
22+
// // xcon_usb_av();
23+
// // xcon_pinheader_12x2();
24+
// // xcon_din6();
25+
// // xcon_ms_x2();
26+
// // xcon_pi4();
27+
// // xcon_rj45();
28+
// // xcon_hdmi();
29+
// }
3030

31+
pcb_slider();
32+
// difference() {
33+
// pcb_slider_body_2d();
34+
35+
// # pcb_slider_notch_2d();
36+
// }

0 commit comments

Comments
 (0)