# HG changeset patch # User Paul Boddie # Date 1412951084 -7200 # Node ID 8334ce389108c2bc0137862d4d227773636749bd # Parent 5dda66a506fa17812cf3d5b05599ff19e20ae1c9 Fixed the edge connector tab alignment. Separated the back payload and connector sections of the cartridge, providing more internal depth in the payload section. diff -r 5dda66a506fa -r 8334ce389108 cartridge.scad --- a/cartridge.scad Wed Oct 08 13:54:46 2014 +0200 +++ b/cartridge.scad Fri Oct 10 16:24:44 2014 +0200 @@ -128,14 +128,16 @@ /* Internal dimensions. */ int_width = 86.0; - int_depth = 11.0; + int_payload_depth = 12.5; /* maximum depth in the payload section */ + int_connector_depth = 11.0; /* maximum depth in the connector section */ int_payload_height = 50.8; /* space between the top and the floor */ int_connector_height = 13.5; /* vertical offset of bottom/floor of payload area */ /* Side thicknesses. */ front = 2; - back = 3.5; + payload_back = 2; /* in the payload area the thickness is reduced */ + connector_back = 3.5; /* the back cavity requires a thicker back wall */ top = 3; side = 2; /* increased from 1.5 for 3D printing reliability */ bottom = 1; /* thickness of floor of payload area */ @@ -150,14 +152,17 @@ int_front_depth = 4.5; front_depth = int_front_depth + front; - int_back_depth = int_depth - int_front_depth + front_back_overlap; - back_depth = int_back_depth + back; + int_payload_back_depth = int_payload_depth - int_front_depth + front_back_overlap; + int_connector_back_depth = int_connector_depth - int_front_depth + front_back_overlap; + back_depth = int_payload_back_depth + payload_back; /* Cartridge dimensions. */ width = int_width + side + side; - height = top + int_payload_height + bottom + int_connector_height; - depth = int_depth + front + back; + payload_height = top + int_payload_height; + connector_height = bottom + int_connector_height; + height = payload_height + bottom + int_connector_height; + depth = int_payload_depth + front + payload_back; int_payload_upper_extent = height / 2 - top; int_payload_lower_extent = -height / 2 + int_connector_height + bottom; @@ -249,15 +254,6 @@ inner_front_edge_depth = 1.5; /* - The cutouts in the floor of the front of the cartridge that produce a - kind of tab that guides the edge connector into place in the back cutout. - */ - - edge_connector_cutout_front_offset = 1.0; - edge_connector_cutout_front_depth = front_back_overlap; - edge_connector_cutout_front_width = 15.0; - - /* The cutout in the floor of the back of the cartridge that accommodates the edge connector. */ @@ -266,6 +262,14 @@ edge_connector_cutout_back_width = 57.5; /* + The cutouts in the floor of the front of the cartridge that produce a + kind of tab that guides the edge connector into place in the back cutout. + */ + + edge_connector_cutout_front_depth = front_back_overlap; + edge_connector_cutout_front_width = (int_width - edge_connector_cutout_back_width) / 2; + + /* Edge connectors are themselves 0.05" or approximately 1.27mm in thickness according to the Acorn Electron Cartridge Interface Specification (Acorn Support Application Group Note 014). @@ -452,7 +456,7 @@ edge_connector_cutout_front_depth, bottom, 1, -1, 1, - -width / 2 + edge_connector_cutout_front_offset, + -int_width / 2, 0, -height / 2 + int_connector_height); @@ -462,7 +466,7 @@ edge_connector_cutout_front_depth, bottom, -1, -1, 1, - width / 2 - edge_connector_cutout_front_offset, + int_width / 2, 0, -height / 2 + int_connector_height); } @@ -597,9 +601,20 @@ /* Back portion. */ if (BACK_SURFACE) { - cube_at(width, back, height, - 0, 1, 0, - 0, int_back_depth, 0); + + /* Payload section of back surface. */ + + cube_at(width, payload_back, payload_height, + 0, 1, 1, + 0, int_payload_back_depth, int_payload_lower_extent); + + /* Connector section of back surface overlapping the floor. */ + + cube_at(width, connector_back, connector_height, + 0, 1, 1, + 0, int_connector_back_depth, -height / 2); + + /* Sides of back piece. */ cube_at(back_left, back_depth, height, -1, 1, 0, @@ -609,6 +624,8 @@ 1, 1, 0, int_width / 2, 0, 0); + /* Top of back piece. */ + cube_at(width, back_depth, top, 0, 1, 1, 0, 0, int_payload_upper_extent); @@ -651,7 +668,7 @@ /* Floor of cartridge. */ - cube_at(int_width, int_back_depth, bottom, + cube_at(int_width, int_connector_back_depth, bottom, 0, 1, 1, 0, 0, -height / 2 + int_connector_height); @@ -755,7 +772,7 @@ /* Inner back cavities. */ - translate([0, int_back_depth, -height / 2]) + translate([0, int_connector_back_depth, -height / 2]) linear_extrude(height = int_connector_height) translate([-int_width / 2, 0, 0]) polygon([ @@ -766,7 +783,7 @@ [0, inner_back_slope_depth] ]); - translate([0, int_back_depth, -height / 2]) + translate([0, int_connector_back_depth, -height / 2]) linear_extrude(height = int_connector_height) translate([int_width / 2, 0, 0]) polygon([ @@ -780,7 +797,7 @@ /* Inner back edge cavity. */ translate([inner_back_edge_width / 2, - int_back_depth + inner_back_edge_depth, -height / 2]) + int_connector_back_depth + inner_back_edge_depth, -height / 2]) rotate([0, -90, 0]) linear_extrude(height = inner_back_edge_width) polygon([