chiark / gitweb /
33c2e1ef744d52702850be964535e6bbbd218a95
[reprap-play.git] / velux-window-grip.scad
1 // -*- C -*-
2
3 include <funcs.scad>
4
5 main_thick = 3.3;
6 main_in_dia = 28.9 + 0.5;
7
8 horn_ext_dia = 20 - 0.5; //?
9
10 horn_c_x = -5; //?
11 horn_c_dy= -4; //?
12
13 blhook_start_ang = 45;
14
15 width = 20;
16
17 mc_mid_rad = main_in_dia/2 + main_thick/2;
18
19 mc_bl = circle_point([0,0], mc_mid_rad, 270-blhook_start_ang);
20
21 $fs=0.1;
22
23 horn_thick = main_thick;
24
25 module MainLoop(){
26   intersection(){
27     difference(){
28       circle(r= main_in_dia/2 + main_thick, $fn=50);
29       circle(r= main_in_dia/2, $fn=50);
30     }
31     polygon([[0,0],
32              3*mc_bl,
33              [0, -100],
34              [100,-100],
35              [100,100],
36              [0,100]]);
37   }
38   translate(mc_bl)
39     circle(main_thick/2);
40   translate([horn_c_x, mc_mid_rad + horn_c_dy])
41     intersection(){
42     difference(){
43       circle(horn_ext_dia/2);
44       intersection(){
45         circle(horn_ext_dia/2 - horn_thick);
46         polygon([[-50,-50],
47                  [-50,-horn_c_dy],
48                  [50,-horn_c_dy],
49                  [50,-50]]);
50       }
51     }
52     polygon([[0,0],
53               [-50,0],
54               [0,50]]);
55   }
56   translate([0,main_in_dia/2]) mirror([1,0])
57     square([-horn_c_x + horn_ext_dia/2 * 0.75, main_thick]);
58 }
59
60 MainLoop();