From ead3dbefec52532ff2bb07b9399e2592d0136ad0 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 27 Jan 2018 01:17:18 +0000 Subject: [PATCH] fairphone-case: wip prop profile, fixes Signed-off-by: Ian Jackson --- fairphone-case.scad | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/fairphone-case.scad b/fairphone-case.scad index 3f47c9f..1d60ea0 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -119,6 +119,7 @@ prop_main_th = 3; prop_taper_len = 6; prop_main_width = 3; prop_side_gap = 0.75; // each side +prop_lidrecess_behind = 0.75; prop_caserecess_behind = 0.75; prop_caserecess_taper = 0.35; // one side only prop_prop_gap = 0.5; @@ -270,7 +271,9 @@ prcp1 = [ epp2o[0], prl_r10 = prop_end_dia/2; prl_r10o = prl_r10 + prop_recess_slop; -prlp10 = lpp10 + [1,1] * prl_r10o; +prlp10 = lpp10 + [1,1] * prl_r10o + + [1,0] * prop_lidrecess_behind + + [0,1] * prop_recess_under; // prop @@ -634,6 +637,9 @@ module PropProfile(gamma, cut=0){ ////toplevel theta = 90 - alpha; beta = 180 - alpha - gamma; psi = 90 - beta + atan(prop_caserecess_taper); + + echo("abc", a,b,c); + prpv1 = [ sin(psi), cos(psi) ]; prpp7 = [0, c + (lpp13[1] - prpp10[1]) ]; @@ -643,18 +649,21 @@ module PropProfile(gamma, cut=0){ ////toplevel prpp1 = prpp7 + [1,0] * // this is approximate, but will do - (prop_main_th/2 + prop_prop_gap + prcp1[0] - prcp1[1]); + (prop_main_th/2 + prop_prop_gap + prcp1[0] - epp4[0]); prpp3 = prpp1 + [ -prp_r1, (prcp2[1] - prcp1[1]) - prop_prop_gap ]; + prp_r8 = prop_main_th; prpp4 = [ prop_main_th/2, prpp3[1] ]; - prp_r5 = prop_end_dia/2; - prpp5 = [ prpp1[0], prpp3[1] - prop_prong_h + prp_r5 ]; + prp_r5 = prp_r8; + prpp5 = [ prpp1[0] + prp_r1 - prp_r5, + prpp3[1] - prop_prong_h + prp_r5 ]; prpp6 = prpp4 + [0,-1] * (prop_prong_h + prop_prong_heel_slope * (prpp5[0] - prpp4[0])); - prp_r8 = prop_main_th/2; prpp8 = prpp4 + [0,-1] * prp_r8; prpp9 = prpp8 + [-1,0] * prp_r8; - prpp12 = prpp3 + [0,1] * prop_end_dia; + prpp12 = prpp3 + [1,0] * prop_end_dia; + + //#circleat(prpp5,1); if (!cut) { hull(){ @@ -664,14 +673,18 @@ module PropProfile(gamma, cut=0){ ////toplevel rectfromto([-20,-0], [20,20]); } rectfromto(prpp6, prpp9); - circleat(prpp5, prp_r5); + translate(prpp5) intersection(){ + circle(prp_r5); + rectfromto([-10,-10], [10,0]); + } rectfromto(prpp12 + [0,-0.1], prpp3); } - hull(){ + %hull(){ circleat(prpp1, prp_r1); rectfromto(prpp12 + [0,-0.1], prpp3); } } + // main shaft rotate([0,0, cut ? -theta : 0]){ hull(){ extra = cut ? prop_recess_slop : 0; @@ -1091,8 +1104,13 @@ module DemoProfiles(){ ////toplevel } translate([40,-30]) { - %LidEdgeProfile(); - PropProfile(10, 0); + difference(){ + %LidEdgeProfile(); + //translate(prlp10) + //PropProfile(10, 1); + } + translate(prlp10) + PropProfile(10, 0); } } -- 2.30.2