chiark / gitweb /
fairphone-battery-case: toplevels
[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_wdth/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_th/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   rotate([0,-90,0])
91   for (mj=[0,1]) {
92     mirror([0,0,mj]) translate([0,0,from]){
93       linear_extrude(height= to-from){
94         for (mi=[0,1]) {
95           mirror([0,mi])
96             translate([0, battery_th/2])
97             children(0);
98         }
99       }
100     }
101   }
102 }
103
104 module PlanDemo(){ ////toplevel
105   color("blue") BaseHalfPlan();
106   color("red") LidHalfPlan();
107   translate([0,0,-1]) color("lightblue") SideHalfPlan();
108 }
109
110 module Base(){ ////toplevel
111   ExtrudePlan(0,s1) BaseHalfPlan();
112   ExtrudePlan(s0,s1) SideHalfPlan();
113 }
114
115 module Lid(){ ////toplevel
116   ExtrudePlan(0,s1) LidHalfPlan();
117 }
118
119 module Demo(){ ////toplevel
120   %Base();
121   Lid();
122 }
123
124 //PlanDemo();
125 //Demo();
126 //Base();