diff --git a/Mechanical/OpenSCAD/ExpansionCard.scad b/Mechanical/OpenSCAD/ExpansionCard.scad index 0064fe9..82c432d 100644 --- a/Mechanical/OpenSCAD/ExpansionCard.scad +++ b/Mechanical/OpenSCAD/ExpansionCard.scad @@ -32,7 +32,8 @@ rail_h = 4.25; // to top of rail // Boss locations matching the other Framework Expansion Cards boss_y = 10.5; -boss_x = 3.7; +boss_x = 4.2; +boss_r = 2.95; // The rail cutout in the sides of the card module rail(make_printable) { @@ -120,12 +121,7 @@ module qsphere(radius = 1) { module boss(radius, use_insert, make_printable) { difference() { cylinder(r = radius, h = pcb_h, $fn = 64); - if (use_insert) { - // Use threaded insert - translate([0, 0, side_wall]) cylinder(r = 1.5, h = pcb_h, $fn = 64); - } else { - translate([0, 0, side_wall]) cylinder(r = 0.75, h = pcb_h, $fn = 64); - } + translate([0, 0, side_wall]) cylinder(r = 1.25, h = pcb_h, $fn = 64); } } @@ -159,12 +155,10 @@ module expansion_card_lid() { // "boss_insert" for fastener with a threaded insert, // "clip" for a fastener-less clip, or // "" for no PCB mounting structure -module expansion_card_base(open_end, make_printable, pcb_mount="boss") { +module expansion_card_base(open_end, make_printable, pcb_mount="boss_insert") { // Hollowing of the inside extra = 0.1; inner = [base[0]-side_wall*2, base[1]-side_wall*2, base[2]-side_wall+extra]; - boss_radius = 2.3; - difference() { cube(base); @@ -203,22 +197,22 @@ module expansion_card_base(open_end, make_printable, pcb_mount="boss") { if (pcb_mount == "boss" || pcb_mount == "boss_insert") { // Add the screw bosses - translate([boss_x, boss_y, 0]) boss(boss_radius, pcb_mount == "boss_insert", make_printable); - translate([base[0]-boss_x, boss_y, 0]) boss(boss_radius, pcb_mount == "boss_insert", make_printable); + translate([boss_x, boss_y, 0]) boss(boss_r, pcb_mount == "boss_insert", make_printable); + translate([base[0]-boss_x, boss_y, 0]) boss(boss_r, pcb_mount == "boss_insert", make_printable); } else if (pcb_mount == "clip") { clip_w = 1.5; clip_gap = 0.5; - translate([boss_x-boss_radius, boss_y-boss_radius, 0]) { - cube([boss_radius*2, boss_radius*2, pcb_h]); + translate([boss_x-boss_r, boss_y-boss_r, 0]) { + cube([boss_r*2, boss_r*2, pcb_h]); if (make_printable) - translate([boss_radius, boss_radius*2, 0]) rib(boss_radius*2, pcb_h); - translate([0, boss_radius-clip_w, pcb_h+pcb[2]+clip_gap]) rotate([0, 0, 180]) qsphere(clip_w); + translate([boss_r, boss_r*2, 0]) rib(boss_r*2, pcb_h); + translate([0, boss_r-clip_w, pcb_h+pcb[2]+clip_gap]) rotate([0, 0, 180]) qsphere(clip_w); } - translate([base[0]-boss_x-boss_radius, boss_y-boss_radius, 0]) { - cube([boss_radius*2, boss_radius*2, pcb_h]); + translate([base[0]-boss_x-boss_r, boss_y-boss_r, 0]) { + cube([boss_r*2, boss_r*2, pcb_h]); if (make_printable) - translate([boss_radius, boss_radius*2, 0]) rib(boss_radius*2, pcb_h); - translate([boss_radius*2, boss_radius-clip_w, pcb_h+pcb[2]+clip_gap]) qsphere(clip_w); + translate([boss_r, boss_r*2, 0]) rib(boss_r*2, pcb_h); + translate([boss_r*2, boss_r-clip_w, pcb_h+pcb[2]+clip_gap]) qsphere(clip_w); } } } @@ -229,7 +223,7 @@ module expansion_card_ext() { extra = 0.1; inner = [base_ext[0]-side_wall*2, base_ext[1]-side_wall*2, base_ext[2]-side_wall+extra]; cutout = [base[0]-side_wall*2, base_ext[1]-side_wall*2, base_ext[2]-side_wall+extra]; - boss_radius = 2.3; + boss_r = 2.3; difference() { cube(base_ext);