chiark / gitweb /
fairphone-battery-case: a fix
[reprap-play.git] / fairphone-battery-case.scad
1 // -*- C -*-
2
3 mainwall_th = 2.5;
4 smallwall_th = 1.5;
5
6 seal_th = 0.3 + 0.6; // total gap for seal etc.
7 behind_recess = 1.0;
8
9 recess_gap_end = 0.2;
10
11 lid_edge_th = 0.5;
12
13 battery_len = 66.55 + 0.75;
14 battery_th = 6.55 + 0.75;
15 battery_wdth = 44.38 + 0.75;
16
17 // for testing:
18 battery_len = 3;
19 battery_wdth = 15;
20
21 // calculated
22
23 bpp0 = [0,0];
24 bpp1 = bpp0 + [ 0, mainwall_th - behind_recess ];
25 lppA = bpp1 + [ seal_th, -recess_gap_end ];
26 lppB = lppA + [ lid_edge_th, 0 ];
27 bpp2 = [ lppB[0], bpp1[1] ];
28 bpp3 = [ bpp2[0] + (bpp1 - bpp0)[1], bpp0[1] ];
29 bpp4 = [ bpp3[0], bpp0[1] + mainwall_th ];
30 lppC = bpp3 + [ 0, -recess_gap_end ];
31
32 s0 = battery_wdth/2;
33 s1 = s0 + smallwall_th;
34
35 echo(
36      bpp0,
37      bpp1,
38      bpp2,
39      bpp3,
40      bpp4,
41      bpp5,
42      bpp6,
43      bpp7,
44      bpp8
45 );
46
47 echo(
48      lppA,
49      lppB,
50      lppC,
51      lppD,
52      lppE
53 );
54
55 bpp8 = bpp0 + [ -battery_len,0 ];
56 bpp5 = [ bpp8[0] - smallwall_th, bpp4[1] ];
57 bpp9 = [ bpp0[0], bpp0[1] - battery_th/2 - 1.0 ];
58 bpp7 = [ bpp8[0], bpp9[1] ];
59 bpp6 = [ bpp5[0], bpp9[1] ];
60 lppE = [ lppA[0], bpp9[1] ];
61 lppD = [ lppC[0], bpp9[1] ];
62
63 module BaseHalfPlan(){
64   polygon([ bpp0,
65             bpp1,
66             bpp2,
67             bpp3,
68             bpp4,
69             bpp5,
70             bpp6,
71             bpp7,
72             bpp8
73             ]);
74 }
75
76 module SideHalfPlan(){
77   polygon([ bpp5,
78             bpp6,
79             bpp9,
80             bpp1
81             ]);
82 }
83
84 module LidHalfPlan(){
85   polygon([ lppA,
86             lppE,
87             lppD,
88             lppC,
89             lppB
90             ]);
91 }
92
93 module ExtrudePlan(from,to){
94   rotate([0,-90,0])
95   for (mj=[0,1]) {
96     mirror([0,0,mj]) translate([0,0,from]){
97       linear_extrude(height= to-from){
98         for (mi=[0,1]) {
99           mirror([0,mi])
100             translate([0, battery_th/2])
101             children(0);
102         }
103       }
104     }
105   }
106 }
107
108 module PlanDemo(){ ////toplevel
109   color("blue") BaseHalfPlan();
110   color("red") LidHalfPlan();
111   translate([0,0,-1]) color("lightblue") SideHalfPlan();
112 }
113
114 module Base(){ ////toplevel
115   ExtrudePlan(0,s1) BaseHalfPlan();
116   ExtrudePlan(s0,s1) SideHalfPlan();
117 }
118
119 module Lid(){ ////toplevel
120   ExtrudePlan(0,s1) LidHalfPlan();
121 }
122
123 module Demo(){ ////toplevel
124   %Base();
125   Lid();
126 }
127
128 //PlanDemo();
129 //Demo();
130 //Base();