X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=fairphone-battery-case.scad;h=557271d3e98d329d9982c19b574658fe7599ada0;hb=6a319b7ceeca0d02fbeac92c0737e976919d87a1;hp=02e8d685ca9dd94a7c04b87761b94ba80d0425c2;hpb=8e68054b625cf395a67b31d8e16fd74009418a23;p=reprap-play.git diff --git a/fairphone-battery-case.scad b/fairphone-battery-case.scad index 02e8d68..557271d 100644 --- a/fairphone-battery-case.scad +++ b/fairphone-battery-case.scad @@ -1,18 +1,37 @@ // -*- C -*- -mainwall_th = 2.5; -smallwall_th = 1.5; +include -seal_th = 0.3 + 0.6; // total gap for seal etc. -behind_recess = 1.0; +mainwall_th = 3.0; +smallwall_th = 2.0; -recess_gap_end = 0.2; +seal_th = 0.3 + 0.6 + 0.6 - 0.4 - 0.4 + 0.2; // total gap for seal etc. +behind_recess = 1.5; + +recess_gap_end = 0.4; lid_edge_th = 0.5; -battery_len = 66.55 + 0.75; -battery_th = 6.55 + 0.75; -battery_wdth = 44.38 + 0.75; +battery_len = 66.55 + 1.25 -.55; +battery_th = 6.55 + 0.75 - .60; +battery_wdth = 44.38 + 0.75 -.55; + +battery_base_indent = 0.94 + 0.50; +battery_base_indent_fromside_outside = 4; +battery_base_indent_fromside_inside = 10; + +handle_height = 3.5; +handle_inward = 10; +handle_len = 5; + +pushhole_ell_sz = 4.75; +pushhole_ell_th = 1.75; +pushhole_circle_dia = 4.0; + +// for testing: +//battery_len = 3; +//battery_wdth = 15; +//battery_base_indent_fromside_inside = 6; // calculated @@ -25,6 +44,15 @@ bpp3 = [ bpp2[0] + (bpp1 - bpp0)[1], bpp0[1] ]; bpp4 = [ bpp3[0], bpp0[1] + mainwall_th ]; lppC = bpp3 + [ 0, -recess_gap_end ]; +lppF = lppC + [ handle_height, 0 ]; + +s0 = battery_wdth/2; +s0i = s0 - battery_th/2; +s1 = s0 + smallwall_th; + +l1 = s1 - handle_inward; +l0 = l1 - handle_len; + echo( bpp0, bpp1, @@ -46,14 +74,14 @@ echo( ); bpp8 = bpp0 + [ -battery_len,0 ]; -bpp5 = [ bpp8[0] - smallwall_th, bpp4[0] ]; -bpp9 = [ bpp0[0], bpp0[1] - battery_wdth/2 - 1.0 ]; +bpp5 = [ bpp8[0] - smallwall_th, bpp4[1] ]; +bpp9 = [ bpp0[0], bpp0[1] - battery_th/2 - 1.0 ]; bpp7 = [ bpp8[0], bpp9[1] ]; bpp6 = [ bpp5[0], bpp9[1] ]; lppE = [ lppA[0], bpp9[1] ]; lppD = [ lppC[0], bpp9[1] ]; -module BaseHalfPlan(){ +module BaseHalfPlan(indent=0){ polygon([ bpp0, bpp1, bpp2, @@ -61,8 +89,16 @@ module BaseHalfPlan(){ bpp4, bpp5, bpp6, - bpp7, - bpp8 + bpp7 + indent * [1,0], + bpp8 + indent * [1,0] + ]); +} + +module SideHalfPlan(){ + polygon([ bpp5, + bpp6, + bpp9, + bpp1 ]); } @@ -75,9 +111,80 @@ module LidHalfPlan(){ ]); } -module PlanDemo(){ +module HandleHalfPlan(){ + translate(lppE) + square(lppF - lppE); +} + +module ExtrudePlan(from,to){ + rotate([0,-90,0]) + for (mj=[0,1]) { + mirror([0,0,mj]) translate([0,0,from]){ + linear_extrude(height= to-from, convexity=5){ + for (mi=[0,1]) { + mirror([0,mi]) + translate([0, battery_th/2]) + children(0); + } + } + } + } +} + +module PushHolePlan(){ ////toplevel + translate(-(pushhole_ell_th * 0.10 + + pushhole_ell_sz * 0.10) * [1,1]) { + for (r=[0,90]) + rotate(r) + translate(-pushhole_ell_th * 0.5 * [1,1]) + square([ pushhole_ell_sz, pushhole_ell_th ]); + } + circle(pushhole_circle_dia/2, $fn=40); +} + +module PlanDemo(){ ////toplevel color("blue") BaseHalfPlan(); color("red") LidHalfPlan(); + translate([0,0,-1]) color("lightblue") SideHalfPlan(); +} + +module Base(){ ////toplevel + difference(){ + ExtrudePlan(0,s1) BaseHalfPlan(); + linextr(-(10+battery_len), battery_len+10, convexity=5) PushHolePlan(); + } + difference(){ + union(){ + ExtrudePlan(s0i, s1) SideHalfPlan(); + ExtrudePlan(s0 - battery_base_indent_fromside_inside, + s0 - battery_base_indent_fromside_outside + ) BaseHalfPlan(indent = battery_base_indent); + } + for (m=[0,1]) + mirror([m,0,0]) + translate([s0i, 0, bpp7[0] - 0.1]) + cylinder(r= battery_th/2, h=100, $fs=0.5); + } +} + +module BaseHalfTest(){ ////toplevel + intersection(){ + Base(); + translate([-100,0,-100]) + cube([200,200,200]); + } +} + +module Lid(){ ////toplevel + ExtrudePlan(0,s1) LidHalfPlan(); + ExtrudePlan(l0,l1) HandleHalfPlan(); +} + +module Demo(){ ////toplevel + %Base(); + Lid(); } -PlanDemo(); +//PlanDemo(); +//Demo(); +//Base();