1.1 --- a/cartridge.scad Wed Oct 08 13:54:46 2014 +0200
1.2 +++ b/cartridge.scad Fri Oct 10 16:24:44 2014 +0200
1.3 @@ -128,14 +128,16 @@
1.4 /* Internal dimensions. */
1.5
1.6 int_width = 86.0;
1.7 - int_depth = 11.0;
1.8 + int_payload_depth = 12.5; /* maximum depth in the payload section */
1.9 + int_connector_depth = 11.0; /* maximum depth in the connector section */
1.10 int_payload_height = 50.8; /* space between the top and the floor */
1.11 int_connector_height = 13.5; /* vertical offset of bottom/floor of payload area */
1.12
1.13 /* Side thicknesses. */
1.14
1.15 front = 2;
1.16 - back = 3.5;
1.17 + payload_back = 2; /* in the payload area the thickness is reduced */
1.18 + connector_back = 3.5; /* the back cavity requires a thicker back wall */
1.19 top = 3;
1.20 side = 2; /* increased from 1.5 for 3D printing reliability */
1.21 bottom = 1; /* thickness of floor of payload area */
1.22 @@ -150,14 +152,17 @@
1.23
1.24 int_front_depth = 4.5;
1.25 front_depth = int_front_depth + front;
1.26 - int_back_depth = int_depth - int_front_depth + front_back_overlap;
1.27 - back_depth = int_back_depth + back;
1.28 + int_payload_back_depth = int_payload_depth - int_front_depth + front_back_overlap;
1.29 + int_connector_back_depth = int_connector_depth - int_front_depth + front_back_overlap;
1.30 + back_depth = int_payload_back_depth + payload_back;
1.31
1.32 /* Cartridge dimensions. */
1.33
1.34 width = int_width + side + side;
1.35 - height = top + int_payload_height + bottom + int_connector_height;
1.36 - depth = int_depth + front + back;
1.37 + payload_height = top + int_payload_height;
1.38 + connector_height = bottom + int_connector_height;
1.39 + height = payload_height + bottom + int_connector_height;
1.40 + depth = int_payload_depth + front + payload_back;
1.41 int_payload_upper_extent = height / 2 - top;
1.42 int_payload_lower_extent = -height / 2 + int_connector_height + bottom;
1.43
1.44 @@ -249,15 +254,6 @@
1.45 inner_front_edge_depth = 1.5;
1.46
1.47 /*
1.48 - The cutouts in the floor of the front of the cartridge that produce a
1.49 - kind of tab that guides the edge connector into place in the back cutout.
1.50 - */
1.51 -
1.52 - edge_connector_cutout_front_offset = 1.0;
1.53 - edge_connector_cutout_front_depth = front_back_overlap;
1.54 - edge_connector_cutout_front_width = 15.0;
1.55 -
1.56 - /*
1.57 The cutout in the floor of the back of the cartridge that accommodates
1.58 the edge connector.
1.59 */
1.60 @@ -266,6 +262,14 @@
1.61 edge_connector_cutout_back_width = 57.5;
1.62
1.63 /*
1.64 + The cutouts in the floor of the front of the cartridge that produce a
1.65 + kind of tab that guides the edge connector into place in the back cutout.
1.66 + */
1.67 +
1.68 + edge_connector_cutout_front_depth = front_back_overlap;
1.69 + edge_connector_cutout_front_width = (int_width - edge_connector_cutout_back_width) / 2;
1.70 +
1.71 + /*
1.72 Edge connectors are themselves 0.05" or approximately 1.27mm in
1.73 thickness according to the Acorn Electron Cartridge Interface Specification
1.74 (Acorn Support Application Group Note 014).
1.75 @@ -452,7 +456,7 @@
1.76 edge_connector_cutout_front_depth,
1.77 bottom,
1.78 1, -1, 1,
1.79 - -width / 2 + edge_connector_cutout_front_offset,
1.80 + -int_width / 2,
1.81 0,
1.82 -height / 2 + int_connector_height);
1.83
1.84 @@ -462,7 +466,7 @@
1.85 edge_connector_cutout_front_depth,
1.86 bottom,
1.87 -1, -1, 1,
1.88 - width / 2 - edge_connector_cutout_front_offset,
1.89 + int_width / 2,
1.90 0,
1.91 -height / 2 + int_connector_height);
1.92 }
1.93 @@ -597,9 +601,20 @@
1.94 /* Back portion. */
1.95
1.96 if (BACK_SURFACE) {
1.97 - cube_at(width, back, height,
1.98 - 0, 1, 0,
1.99 - 0, int_back_depth, 0);
1.100 +
1.101 + /* Payload section of back surface. */
1.102 +
1.103 + cube_at(width, payload_back, payload_height,
1.104 + 0, 1, 1,
1.105 + 0, int_payload_back_depth, int_payload_lower_extent);
1.106 +
1.107 + /* Connector section of back surface overlapping the floor. */
1.108 +
1.109 + cube_at(width, connector_back, connector_height,
1.110 + 0, 1, 1,
1.111 + 0, int_connector_back_depth, -height / 2);
1.112 +
1.113 + /* Sides of back piece. */
1.114
1.115 cube_at(back_left, back_depth, height,
1.116 -1, 1, 0,
1.117 @@ -609,6 +624,8 @@
1.118 1, 1, 0,
1.119 int_width / 2, 0, 0);
1.120
1.121 + /* Top of back piece. */
1.122 +
1.123 cube_at(width, back_depth, top,
1.124 0, 1, 1,
1.125 0, 0, int_payload_upper_extent);
1.126 @@ -651,7 +668,7 @@
1.127
1.128 /* Floor of cartridge. */
1.129
1.130 - cube_at(int_width, int_back_depth, bottom,
1.131 + cube_at(int_width, int_connector_back_depth, bottom,
1.132 0, 1, 1,
1.133 0, 0, -height / 2 + int_connector_height);
1.134
1.135 @@ -755,7 +772,7 @@
1.136
1.137 /* Inner back cavities. */
1.138
1.139 - translate([0, int_back_depth, -height / 2])
1.140 + translate([0, int_connector_back_depth, -height / 2])
1.141 linear_extrude(height = int_connector_height)
1.142 translate([-int_width / 2, 0, 0])
1.143 polygon([
1.144 @@ -766,7 +783,7 @@
1.145 [0, inner_back_slope_depth]
1.146 ]);
1.147
1.148 - translate([0, int_back_depth, -height / 2])
1.149 + translate([0, int_connector_back_depth, -height / 2])
1.150 linear_extrude(height = int_connector_height)
1.151 translate([int_width / 2, 0, 0])
1.152 polygon([
1.153 @@ -780,7 +797,7 @@
1.154 /* Inner back edge cavity. */
1.155
1.156 translate([inner_back_edge_width / 2,
1.157 - int_back_depth + inner_back_edge_depth, -height / 2])
1.158 + int_connector_back_depth + inner_back_edge_depth, -height / 2])
1.159 rotate([0, -90, 0])
1.160 linear_extrude(height = inner_back_edge_width)
1.161 polygon([