From: Ian Jackson Date: Sat, 27 Jan 2018 02:29:02 +0000 (+0000) Subject: fairphone-case: prop: wip debugging, before move case instead X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=reprap-play.git;a=commitdiff_plain;h=0391eb5230c5b4a7710a5ebd4a108e21734da934 fairphone-case: prop: wip debugging, before move case instead Signed-off-by: Ian Jackson --- diff --git a/fairphone-case.scad b/fairphone-case.scad index 56ab5fc..600b18f 100644 --- a/fairphone-case.scad +++ b/fairphone-case.scad @@ -622,11 +622,12 @@ module CaseBase(){ EdgeProfile(); } +function prop_x(gamma) = hp_k / (2 * sin(gamma/2)) - hppT[0]; + module PropProfile(gamma, cut=0, rot=0){ ////toplevel // https://en.wikipedia.org/wiki/Solution_of_triangles#Two_sides_and_the_included_angle_given_(SAS) - k = hp_k; + x = prop_x(gamma); p = phone_height - prlp10[0] - hppB[0]; - x = k / (2 * sin(gamma/2)) - hppT[0]; b = p + x; q = phone_height - hppT[0]; // prpp7[0] is 0 by definition @@ -704,6 +705,12 @@ module PropAggregateProfile(){ PropProfile(angle, 0,0); } +module Prop(){ ////toplevel + hw = prop_main_width/2; + linextr(-hw, +hw) + PropAggregateProfile(); +} + module Case(){ ////toplevel difference(){ union(){ @@ -1041,16 +1048,33 @@ module HingeScrews(){ } } -module DemoPropAngleProjection(){ - rotate([0,0,90]) - projection(cut=true) - rotate([0,90,0]) - translate([-prop_x_pos, 0,0]) - children(); +module DemoPropAngleSelect(c){ + color(c) difference(){ + union(){ children(); } + translate([ prop_x_pos, -400, -200 ]) + cube([ 400,800,400 ]); + } } module DemoPropAngle(ang){ - DemoPropAngleProjection() Case(); + hL = [0, -(phone_height - hppT[0]), hppT[1]]; + hC = [0, -(phone_height - hppB[0]), hppB[1] + hp_k*2]; + + DemoPropAngleSelect("red") Case(); + + translate([0,0, -hp_k*2]) + translate(hC) + rotate([-ang/2,0,0]) + translate(-hC) + translate(hL) + rotate([-ang/2,0,0]) + translate(-hL) + DemoPropAngleSelect("blue") Lid(); + + color("orange") + translate([prop_x_pos, -prlp10[0], prlp10[1]]) + rotate([90,0,90]) + Prop(); } module DemoPropAngles(){ ////toplevel