X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=fairphone-case.scad;h=99966fda871607327c1d59bc7a28102285d70396;hb=397e9da78351039e73080d875b4a52fe9ae90591;hp=d77e7b9976fc178175df07ef31b1db2bb3d441f7;hpb=147a75d9b19067fbe4b595a5d4fb278c06a9c29d;p=reprap-play.git diff --git a/fairphone-case.scad b/fairphone-case.scad index d77e7b9..99966fd 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -521,6 +521,15 @@ module LidEdgeProfile(){ } } +module LidEdgeFoldClearanceProfile(){ + polygon([ lpp10, + lpp11, + lpp11 + [-20, 0], + lpp11 + [-20, 20], + lpp11 + [+20, 20], + lpp10 + [+20, 0] ]); +} + module ButtonCoverProfile(){ intersection(){ polygon(concat([ bppM, bppP, bppO, bppJ ], @@ -824,7 +833,7 @@ module HingePortion(x0,x1){ mirror([1,0,0]) rotate([90,0,-90]) linear_extrude(height=x1-x0) - children(0); + children(); } module CatchPortion(width){ @@ -1055,19 +1064,27 @@ module LidAdhocMultiprintFrame(phase){ } } +module LidAroundEdges(){ + AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0) + children(); +} + module Lid(){ ////toplevel skew_centre = [0, lpp11[0], lpp11[1]]; difference(){ union(){ - intersection_for(skew=[0,1]){ + intersection(){ + LidAroundEdges() + LidEdgeProfile(); + translate(skew_centre) multmatrix([[ 1, 0, 0, 0 ], - [ 0, 1, 0, 0 ], + [ 0, 1, -2, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ]]) translate(-skew_centre) - AroundEdges(lpp10[1], lpp13[1] - lpp10[1], 0) - LidEdgeProfile(); + LidAroundEdges() + LidEdgeFoldClearanceProfile(); } // button covers @@ -1085,7 +1102,10 @@ module Lid(){ ////toplevel } // hinge arms - HingePortion(hex20, hex21) HingeLidProfile(); + HingePortion(hex20, hex21) { + LidEdgeProfile(); + HingeLidProfile(); + } // catch CatchPortion(catch_width)