chiark / gitweb /
fairphone-battery-case: wip
[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 // calculated
18
19 bpp0 = [0,0];
20 bpp1 = bpp0 + [ 0, mainwall_th - behind_recess ];
21 lppA = bpp1 + [ seal_th, -recess_gap_end ];
22 lppB = lppA + [ lid_edge_th, 0 ];
23 bpp2 = [ lppB[0], bpp1[1] ];
24 bpp3 = [ bpp2[0] + (bpp1 - bpp0)[1], bpp0[1] ];
25 bpp4 = [ bpp3[0], bpp0[1] + mainwall_th ];
26 lppC = bpp3 + [ 0, -recess_gap_end ];
27
28 s0 = battery_th/2;
29 s1 = s0 + smallwall_th;
30
31 echo(
32      bpp0,
33      bpp1,
34      bpp2,
35      bpp3,
36      bpp4,
37      bpp5,
38      bpp6,
39      bpp7,
40      bpp8
41 );
42
43 echo(
44      lppA,
45      lppB,
46      lppC,
47      lppD,
48      lppE
49 );
50
51 bpp8 = bpp0 + [ -battery_len,0 ];
52 bpp5 = [ bpp8[0] - smallwall_th, bpp4[0] ];
53 bpp9 = [ bpp0[0], bpp0[1] - battery_wdth/2 - 1.0 ];
54 bpp7 = [ bpp8[0], bpp9[1] ];
55 bpp6 = [ bpp5[0], bpp9[1] ];
56 lppE = [ lppA[0], bpp9[1] ];
57 lppD = [ lppC[0], bpp9[1] ];
58
59 module BaseHalfPlan(){
60   polygon([ bpp0,
61             bpp1,
62             bpp2,
63             bpp3,
64             bpp4,
65             bpp5,
66             bpp6,
67             bpp7,
68             bpp8
69             ]);
70 }
71
72 module SideHalfPlan(){
73   polygon([ bpp5,
74             bpp6,
75             bpp9,
76             bpp1
77             ]);
78 }
79
80 module LidHalfPlan(){
81   polygon([ lppA,
82             lppE,
83             lppD,
84             lppC,
85             lppB
86             ]);
87 }
88
89 module ExtrudePlan(from,to){
90   for (mj=[0,1]) {
91     mirror([0,0,mj]) translate([0,0,from]){
92       linear_extrude(height= to-from){
93         for (mi=[0,1]) {
94           mirror([0,mi])
95             translate([0, battery_wdth/2]);
96             children(0);
97         }
98       }
99     }
100   }
101 }
102
103 module PlanDemo(){
104   color("blue") BaseHalfPlan();
105   color("red") LidHalfPlan();
106   translate([0,0,-1]) color("lightblue") SideHalfPlan();
107 }
108
109 module Base(){
110   ExtrudePlan(0,s1) BaseHalfPlan();
111   ExtrudePlan(s0,s1) SideHalfPlan();
112 }
113
114 //PlanDemo();
115
116 Base();