From dace0300ef11fd9ef6e35aec3526c246124e905a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 21 Jan 2018 23:36:38 +0000 Subject: [PATCH] fairphone-case: wip catch Signed-off-by: Ian Jackson --- fairphone-case.scad | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/fairphone-case.scad b/fairphone-case.scad index 67218c7..3d73027 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -62,6 +62,8 @@ lid_gap_x = 0.25; lid_gap_z = 0.25; lid_lip = 1.75; +catch_slop = 0.25; + foldover_gap = 0.50; foldover_lever_gap = 0.50; @@ -91,6 +93,13 @@ hinge_r_arms_gap = 0.55; rearspeaker_gap = [ 1.0, 1.0 ]; // each side +catch_len = 9; + +catch_depth = 0.75; +catch_height = 0.35; +catch_finger_height = 1.5; +catch_finger_depth = 5.5; + // ---------- calculated ---------- phone_width = (phone + bumper*2)[0]; @@ -182,6 +191,27 @@ hex24 = hex20 + hingescrew_shaft_len + hinge_x_postscrew_gap; echo(hex20, hex21, hex22, hex23, hex24); echo(hingescrew_portion_len); +// catch + +cppJ = bppJ; +cppA = cppJ + [lid_gap_x, -lid_gap_z]; +cppB = [ epp0[0], cppA[1] ]; +cppP = [ epp4[0], cppJ[1] ]; + +cppS = cppJ + [0,-1] * catch_len; +cppD = [ cppA[0], cppS[1] + catch_slop ]; +cppC = [ cppB[0], cppD[1] ]; +cppT = cppS + [1,0] * catch_depth; +cppU = cppT + [0,-1] * catch_height; +cppV = [ cppS[0], cppU[1] - catch_height ]; + +cppR = 0.5*(cppP + cppJ); + +cp_rQ = 0.5 * (cppJ[0] - cppP[0]); +cppQ = [ cppR[0], + cppV[1] - (catch_finger_height - cp_rQ) ]; +cppF = [ cppV[0] + catch_finger_depth, cppC[1] ]; + // ---------- modules ---------- module KeeperProfile(slant=0){ @@ -275,6 +305,19 @@ module ButtonPlan(l, deep, cut){ } } +module CatchCatchProfile(){ + hull(){ + for (c=[ cppR, cppQ ]) + circleat(c, cp_rQ); + } + hull(){ + circleat(lpp12, lp_r12); + circleat(lpp12 + [5,0], lp_r12); + rectfromto(cppP, cppP + [5,0.1]); + } + polygon([cppJ, cppS, cppT, cppU, cppV, cppQ, cppR]); +} + module Flip_rhs(yn=[0,1]) { for ($rhsflip=yn) { translate([phone_width/2, 0, 0]) @@ -838,6 +881,12 @@ module DemoProfiles(){ ////toplevel color("black") translate([0,0,-2]) HingeLeverOuterProfile(); color("orange") translate([0,0,-1]) HingeLeverInnerProfile(); } + + translate([20,-30]) { + %EdgeProfile(); + %LidEdgeProfile(); + color("blue") CatchCatchProfile(); + } } //EdgeProfile(); -- 2.30.2