1.1 --- a/cartridge.scad Wed Apr 23 23:45:56 2014 +0200
1.2 +++ b/cartridge.scad Tue Apr 29 23:20:37 2014 +0200
1.3 @@ -167,7 +167,7 @@
1.4 (Acorn Support Application Group Note 014).
1.5 */
1.6
1.7 - /* Extra internal features. */
1.8 + /* Extra internal features. Depths include front and back surfaces. */
1.9
1.10 pcb_back_support_width = 1.2;
1.11 pcb_back_support_depth = back_depth -
1.12 @@ -202,9 +202,17 @@
1.13 pcb_lug_offset_from_outside = 7.55;
1.14
1.15 pcb_lug_cross_width = 6.7;
1.16 - pcb_lug_cross_depth = pcb_lug_depth;
1.17 + pcb_lug_cross_depth = pcb_back_support_depth;
1.18 pcb_lug_cross_height = 1.4;
1.19
1.20 + pcb_front_lug_depth = pcb_back_support_bump_depth +
1.21 + pcb_front_support_depth - front;
1.22 + pcb_front_lug_inner_radius = pcb_lug_outer_radius;
1.23 + pcb_front_lug_outer_radius = pow(
1.24 + pow(pcb_lug_cross_width / 2, 2) +
1.25 + pow(pcb_lug_cross_height / 2, 2),
1.26 + 0.5);
1.27 +
1.28 /* Repeated constructs. */
1.29
1.30 module pcb_support(xdir, bump_height, bump_offset) {
1.31 @@ -271,6 +279,22 @@
1.32 }
1.33 }
1.34
1.35 + module pcb_front_lug(xdir) {
1.36 + translate([xdir *
1.37 + (width/2 - pcb_lug_offset_from_outside),
1.38 + -front_depth + front + pcb_front_lug_depth,
1.39 + -height / 2 + bottom + bottom_from_base +
1.40 + pcb_lug_offset_from_bottom
1.41 + ])
1.42 + rotate([90, 0, 0])
1.43 + difference() {
1.44 + cylinder(h=pcb_front_lug_depth,
1.45 + r=pcb_front_lug_outer_radius);
1.46 + cylinder(h=pcb_front_lug_depth,
1.47 + r=pcb_front_lug_inner_radius);
1.48 + }
1.49 + }
1.50 +
1.51 /* The actual shapes. */
1.52
1.53 translate([-width * 0.6, 0, 0])
1.54 @@ -338,6 +362,11 @@
1.55 pcb_support_margin,
1.56 0,
1.57 -height / 2 + bottom + bottom_from_base);
1.58 +
1.59 + /* Circular "lugs" to hold PCBs in place. */
1.60 +
1.61 + pcb_front_lug(-1);
1.62 + pcb_front_lug(1);
1.63 }
1.64
1.65 /* Label insets. */