chiark / gitweb /
46609d53dc287030a60f8a6c611fa3c009e46897
[reprap-play.git] / simplephone-case.scad
1 // -*- C -*-
2
3 psz = [
4        120,
5        56 + 5,
6        15 + 3,
7        ];
8
9 thick = [
10          2,
11          3,
12          2.5,
13          ];
14
15 btn_x = 58;
16 btn_dia = 13;
17 btn_yprop = 0.23;
18
19 abtn_x = 45;
20 abtn_sz = [ 11, 13 ];
21
22 screen_xbot = 67;
23 screen_sz = [ 45, 46 ];
24
25 rail_ysz = 2.5;
26 rail_zsz = 2.5;
27
28 case_x_less = 0; //case_x_less = 10;
29
30 // calculated
31
32 ym = psz[1]/2;
33
34 module Case(){
35   difference(){
36     mirror([1,0,0])
37       translate(-thick)
38       cube(psz
39            + 2*thick
40            - [1,0,0] * (thick[0])
41            - [case_x_less, 0, 0]);
42
43     for (yp= [ btn_yprop, 1-btn_yprop ])
44       translate([ -btn_x,
45                   yp * psz[1],
46                   0.5 * psz[2] ])
47         cylinder(r= btn_dia/2, h=20);
48
49     translate([ -abtn_x,
50                 btn_yprop * psz[1],
51                 psz[2] ])
52       cube(concat(abtn_sz, [ thick[2]*3 ]), center=true);
53
54     mirror([1,0,0])
55       translate([ screen_xbot,
56                   (psz[1] - screen_sz[1])/2,
57                   psz[2]-1 ])
58       cube(concat(screen_sz, [ thick[2]+2 ]));
59
60     mirror([1,0,0])
61       difference(){
62         cube(psz + [1,0,0]);
63
64         for (m=[0,1]) {
65           translate([0,ym,0]) mirror([0,m,0]) translate([0,-ym,0])
66             translate([-1,-1, psz[2]-rail_zsz])
67             cube([psz[0]+1, rail_ysz+1, rail_zsz+1]);
68         }
69       }
70   }
71 }
72
73 Case();