X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=fairphone4-case.scad;h=dd36f74e7dc948d9495be1282c50716144fea94d;hb=8ac811b86d895c42b12fabe33b87da6272e6bb6a;hp=49c2bf3a350f3085e946064f48043d8cebc3ace7;hpb=07d24ee7893a9f17bf2d9b749cb94e88ee430ccd;p=reprap-play.git diff --git a/fairphone4-case.scad b/fairphone4-case.scad index 49c2bf3..dd36f74 100644 --- a/fairphone4-case.scad +++ b/fairphone4-case.scad @@ -165,10 +165,10 @@ led_window_ledge = 0.75; // each side noisecancelmic_pos = [ 15.08 + .720, 4.35 ]; // from rhs, from top edge noisecancelmic_dia = 4.00; -mainmic_pos = [ 21.0, 4.35 ]; // from lhs, from top edge +mainmic_pos = [ 20.5, 4.65 ]; // from lhs, from top edge mainmic_dia = 4.00; -lhshole_pos = [ phone[1]/2, 4.35 ]; +lhshole_pos = [ phone[1]/2 - 0.80, 4.35 ]; // fingerpushhole_dias = []; fingerpushhole_dias = [ 15, 18 ]; // this is for testing @@ -179,8 +179,8 @@ lanyard_channel_len = 8; //rearspeaker_pos_bl = [ 12.64, 18.72 ]; //rearspeaker_size = [ 3.76, 7.36 ]; -bottomspeaker_size = [ 11.35, 1.40 ] + [1,1] * 0.5; -bottomspeaker_pos = [ 19.45, 4.82 ]; // from rhs, from top +bottomspeaker_size = [ 12.35, 1.40 ] + [1,1] * 0.5; +bottomspeaker_pos = [ 18.05, 5.52 ]; // from rhs, from top microusb_above = 1.64 - 0.25; microusb_below = 2.42; @@ -208,6 +208,8 @@ keeper_gap_z_top = 0.25; keeper_gap_z_bot = 0.75; keeper_gap_x = 0.25; keeper_gap_x_holes = 0.75; +keeper_fatter = 0.30; +keeper_fatter_hole = 1.20; keeper_side = 0; // 0 = lhs; 1 = rhs @@ -224,8 +226,8 @@ foldover_gap = 0.50; foldover_lever_gap = 0.50; // properties of the hinge fasteners -hingescrew_shaft_dia = 2.0 + 0.25; // M2 x 12mm machine screw -hingescrew_shaft_len = 12; +hingescrew_shaft_dia = 1.600 + 0.45; // beading wire +hingescrew_shaft_len = 10; hingescrew_fasteners_extra_thick = 0.40; // ^ amount of thread protruding if everything was completely nominal // and we are using two nuts @@ -257,7 +259,7 @@ hinge_x_gap = 0.125; hinge_x_postscrew_gap = 0.75; hinge_x_arms_gap = 0.35; hinge_r_arms_gap = 0.55; -hinge_over_nut_plate = 1.0; +hinge_over_nut_plate = -0.50; // bodge apropos slope // there isn't one of these, speaker is by hinge // rearspeaker_gap = [ 2.0, 2.0 ]; // each side @@ -503,9 +505,15 @@ module AdhocMultiprintFrame(phase, z0, zs) { } } -module KeeperProfile(slant=0){ +module KeeperProfile(fatter, slant=0){ use_e = kppe + [0,-1] * slant * keeper_inner_width / keeper_slant_slope; - polygon([use_e, kppd, kppc, kppb, kppa, kppf]); + polygon([use_e + [+1,-1] * fatter, + kppd + [ 0,-1] * fatter, + kppc, + kppb, + kppa, + kppf + [+1, 0] * fatter + ]); } module EdgeProfile(){ @@ -829,7 +837,7 @@ module Buttons(){ Flip_rhs(1) SideButton(64.220, +1, 14.500 ) children(); // power Flip_rhs(1) LidButtonishLeg(14, -1) children(); Flip_rhs(0) LidButtonishLeg(21, -1) children(); - Flip_rhs(0) LidButtonishLeg(14, +1) children(); + Flip_rhs(0) LidButtonishLeg(21, +1) children(); } module Struts(x_start, z_min, th){ @@ -1122,7 +1130,7 @@ module Case(){ ////toplevel Flip_rhs(1-keeper_side) intersection(){ rotate([90, 0, 0]) linear_extrude(height = phone_height + phone_cnr_rad * 2) - KeeperProfile(1); + KeeperProfile(fatter=0, slant=1); // outline of the whole case, to stop it protruding translate([0,0, -25]) @@ -1152,7 +1160,7 @@ module Case(){ ////toplevel rotate([90, 0, 0]) linear_extrude(height = phone_height + phone_cnr_rad * 2) minkowski(){ - KeeperProfile(); + KeeperProfile(fatter=keeper_fatter_hole); rectfromto([ -keeper_gap_x, -keeper_gap_z_bot ], [ keeper_gap_x_holes, +keeper_gap_z_top ]); } @@ -1332,12 +1340,12 @@ module HingeLever(){ ////toplevel HingeLeverOuterProfile(); // space for the screws - HingePortion(hex26, hex24) - HingeLeverInnerProfile(); +// HingePortion(hex26, hex24) +// HingeLeverInnerProfile(); // recesses for the nuts - HingePortion(hex23, hex26+1) - HingeLeverNutProfile(); +// HingePortion(hex23, hex26+1) +// HingeLeverNutProfile(); // bores for the screws HingeScrews(); @@ -1491,7 +1499,7 @@ module OneKeeper(){ ////toplevel translate([0, -phone_cnr_rad, 0]) rotate([90, 0, 0]) linear_extrude(height = phone_height - phone_cnr_rad * 2) - KeeperProfile(); + KeeperProfile(fatter=keeper_fatter); } module OneKeeperPrint(){ ////toplevel @@ -1513,6 +1521,11 @@ module TestSelectFrame(){ linear_extrude(height=200) rectfromto(include, inside_br - include); } + + for (i= [1,2]) { + translate([ 0, -phone[1] * i/3, 0 ]) + cube(center=true, [1000, 4, 100]); + } } module TestSelectLidFrame(){