# HG changeset patch # User Paul Boddie # Date 1463007468 -7200 # Node ID c55f2c2b6ce4fe6977492e6ea1dd64609e36a93b # Parent 3e2724bdfc7e5b597afd6d592757c181e46d9498 Adjusted the height and introduced the missing break in the PCB support. diff -r 3e2724bdfc7e -r c55f2c2b6ce4 cartridge.scad --- a/cartridge.scad Sat Apr 23 16:36:03 2016 +0200 +++ b/cartridge.scad Thu May 12 00:57:48 2016 +0200 @@ -221,7 +221,7 @@ int_connector_width = 86.0; /* limited to the Plus 1 socket dimensions */ int_payload_depth = 14.0; /* maximum depth in the payload section */ int_connector_depth = 11.5; /* maximum depth in the connector section */ - int_payload_height = 50.8; /* space between the top and the floor */ + int_payload_height = 51.5; /* space between the top and the floor */ int_connector_height = 13.5; /* vertical offset of bottom/floor of payload area */ /* Side thicknesses. */ @@ -406,7 +406,7 @@ edge_connector_cutout_back_depth; pcb_back_support_height = height - int_connector_height - top - bottom; - pcb_front_support_width = 1.2; + pcb_front_support_width = pcb_back_support_width; pcb_front_support_depth = int_front_depth; pcb_front_support_height = pcb_back_support_height; @@ -421,9 +421,12 @@ pcb_back_support_right_bump_height = 10.7; pcb_back_support_left_bump_offset_from_bottom = 15.1; pcb_back_support_right_bump_offset_from_bottom = 17.6; + pcb_back_support_break_from_bottom = 35.3; /* 36.45 from the above diagram */ + pcb_back_support_break_height = 13; /* 11.55 from the above diagram */ /* Configured by SHORT_PCB. */ - pcb_back_support_top_bump_height = 3.8; + pcb_back_support_top_bump_height = int_payload_height + - pcb_back_support_break_from_bottom - pcb_back_support_break_height; /* Move the PCB support towards the centre. */ pcb_support_margin = 1.75; @@ -537,7 +540,7 @@ /* Repeated constructs. */ - module pcb_support(xdir, bump_height, bump_offset) { + module pcb_support(xdir, bump_height, bump_offset, break_offset, break_height) { /* Translate the support in the stated direction. @@ -549,18 +552,35 @@ translate([xdir * pcb_support_offset_from_centre, edge_connector_cutout_back_depth, - int_payload_lower_extent]) + int_payload_lower_extent]) { + + /* + Convert the co-ordinates from being centred on the origin to being + "justified" to have either positive or negative x values, and + having positive y and z values. + */ + justify(pcb_back_support_width, pcb_back_support_depth, pcb_back_support_height, - xdir, 1, 1) + xdir, 1, 1) { + union() { /* Underlying support strut. */ - cube([pcb_back_support_width, - pcb_back_support_depth, - pcb_back_support_height], center = true); + difference() { + cube([pcb_back_support_width, + pcb_back_support_depth, + pcb_back_support_height], center = true); + cube_at(pcb_back_support_width, + pcb_back_support_depth, + break_height, + 0, 1, 1, + 0, + -pcb_back_support_depth / 2, + -pcb_back_support_height / 2 + break_offset); + } /* Middle bump. */ @@ -584,6 +604,8 @@ pcb_back_support_height / 2 - pcb_back_support_top_bump_height); } + } + } } /* Choose the kind of "lug" in the back piece. */ @@ -1193,9 +1215,13 @@ if (MODEL == ROM_CARTRIDGE) { pcb_support(-1, pcb_back_support_left_bump_height, - pcb_back_support_left_bump_offset_from_bottom); + pcb_back_support_left_bump_offset_from_bottom, + pcb_back_support_break_from_bottom, + pcb_back_support_break_height); pcb_support(1, pcb_back_support_right_bump_height, - pcb_back_support_right_bump_offset_from_bottom); + pcb_back_support_right_bump_offset_from_bottom, + pcb_back_support_break_from_bottom, + pcb_back_support_break_height); /* Circular "lugs" to hold PCBs in place. */