1.1 --- a/cartridge.scad Sat Apr 23 16:36:03 2016 +0200
1.2 +++ b/cartridge.scad Thu May 12 00:57:48 2016 +0200
1.3 @@ -221,7 +221,7 @@
1.4 int_connector_width = 86.0; /* limited to the Plus 1 socket dimensions */
1.5 int_payload_depth = 14.0; /* maximum depth in the payload section */
1.6 int_connector_depth = 11.5; /* maximum depth in the connector section */
1.7 - int_payload_height = 50.8; /* space between the top and the floor */
1.8 + int_payload_height = 51.5; /* space between the top and the floor */
1.9 int_connector_height = 13.5; /* vertical offset of bottom/floor of payload area */
1.10
1.11 /* Side thicknesses. */
1.12 @@ -406,7 +406,7 @@
1.13 edge_connector_cutout_back_depth;
1.14 pcb_back_support_height = height - int_connector_height - top - bottom;
1.15
1.16 - pcb_front_support_width = 1.2;
1.17 + pcb_front_support_width = pcb_back_support_width;
1.18 pcb_front_support_depth = int_front_depth;
1.19 pcb_front_support_height = pcb_back_support_height;
1.20
1.21 @@ -421,9 +421,12 @@
1.22 pcb_back_support_right_bump_height = 10.7;
1.23 pcb_back_support_left_bump_offset_from_bottom = 15.1;
1.24 pcb_back_support_right_bump_offset_from_bottom = 17.6;
1.25 + pcb_back_support_break_from_bottom = 35.3; /* 36.45 from the above diagram */
1.26 + pcb_back_support_break_height = 13; /* 11.55 from the above diagram */
1.27
1.28 /* Configured by SHORT_PCB. */
1.29 - pcb_back_support_top_bump_height = 3.8;
1.30 + pcb_back_support_top_bump_height = int_payload_height
1.31 + - pcb_back_support_break_from_bottom - pcb_back_support_break_height;
1.32
1.33 /* Move the PCB support towards the centre. */
1.34 pcb_support_margin = 1.75;
1.35 @@ -537,7 +540,7 @@
1.36
1.37 /* Repeated constructs. */
1.38
1.39 - module pcb_support(xdir, bump_height, bump_offset) {
1.40 + module pcb_support(xdir, bump_height, bump_offset, break_offset, break_height) {
1.41
1.42 /*
1.43 Translate the support in the stated direction.
1.44 @@ -549,18 +552,35 @@
1.45 translate([xdir *
1.46 pcb_support_offset_from_centre,
1.47 edge_connector_cutout_back_depth,
1.48 - int_payload_lower_extent])
1.49 + int_payload_lower_extent]) {
1.50 +
1.51 + /*
1.52 + Convert the co-ordinates from being centred on the origin to being
1.53 + "justified" to have either positive or negative x values, and
1.54 + having positive y and z values.
1.55 + */
1.56 +
1.57 justify(pcb_back_support_width,
1.58 pcb_back_support_depth,
1.59 pcb_back_support_height,
1.60 - xdir, 1, 1)
1.61 + xdir, 1, 1) {
1.62 +
1.63 union() {
1.64
1.65 /* Underlying support strut. */
1.66
1.67 - cube([pcb_back_support_width,
1.68 - pcb_back_support_depth,
1.69 - pcb_back_support_height], center = true);
1.70 + difference() {
1.71 + cube([pcb_back_support_width,
1.72 + pcb_back_support_depth,
1.73 + pcb_back_support_height], center = true);
1.74 + cube_at(pcb_back_support_width,
1.75 + pcb_back_support_depth,
1.76 + break_height,
1.77 + 0, 1, 1,
1.78 + 0,
1.79 + -pcb_back_support_depth / 2,
1.80 + -pcb_back_support_height / 2 + break_offset);
1.81 + }
1.82
1.83 /* Middle bump. */
1.84
1.85 @@ -584,6 +604,8 @@
1.86 pcb_back_support_height / 2 -
1.87 pcb_back_support_top_bump_height);
1.88 }
1.89 + }
1.90 + }
1.91 }
1.92
1.93 /* Choose the kind of "lug" in the back piece. */
1.94 @@ -1193,9 +1215,13 @@
1.95
1.96 if (MODEL == ROM_CARTRIDGE) {
1.97 pcb_support(-1, pcb_back_support_left_bump_height,
1.98 - pcb_back_support_left_bump_offset_from_bottom);
1.99 + pcb_back_support_left_bump_offset_from_bottom,
1.100 + pcb_back_support_break_from_bottom,
1.101 + pcb_back_support_break_height);
1.102 pcb_support(1, pcb_back_support_right_bump_height,
1.103 - pcb_back_support_right_bump_offset_from_bottom);
1.104 + pcb_back_support_right_bump_offset_from_bottom,
1.105 + pcb_back_support_break_from_bottom,
1.106 + pcb_back_support_break_height);
1.107
1.108 /* Circular "lugs" to hold PCBs in place. */
1.109