]> www.fi.muni.cz Git - things.git/blob - bike-comp-sensor-holder.scad
switch holder.scad
[things.git] / bike-comp-sensor-holder.scad
1 eps = 0.01;
2 infty = 100;
3
4 wall = 1;
5 ziptie_w = 2.5 + 0.5;
6 ziptie_h = 2.0 + 0.5;
7
8 fork_diam = 30;
9 ring_h = 2*wall + ziptie_h;
10
11 base_d = 10;
12 base_h = 4.5;
13 hole_d = 3.5 + 0.5;
14
15 // cuircular base with screw hole
16 difference() {
17         hull() {
18                 cylinder(r = base_d/2, h = base_h);
19                 translate([-base_d/2-wall, -base_d/2, 0])
20                         cube([wall, base_d, base_h]);
21         }
22         translate([0, 0, -infty/2])
23                 cylinder(r = hole_d/2, h = infty);
24         for (angle = [0:30:360]) rotate([0, 0, angle])
25                 translate([0, 0, base_h])
26                         rotate([0, 90, 0])
27                         cylinder(r1 = 0, r2 = 1, h = base_d/2+eps, $fn=4);
28 }
29
30 // ziptie holding part
31 translate([-base_d/2-fork_diam/2 - ring_h, 0, 0])
32 intersection() {
33         translate([0, -base_d/2-eps, 0]) cube([infty, base_d+2*eps, 15]);
34
35         translate([0, -base_d/2, base_h])
36         rotate([-90, 0, 0])
37         difference() {
38                 scale([1, 0.8, 1])
39                 cylinder(r = fork_diam/2 + ring_h, h = base_d);
40                 // fork itself
41                 translate([0, 0, -eps])
42                         cylinder(r = fork_diam/2, h = base_d + 2*eps);
43         // two ziptie holes
44         for (z = [wall, base_d - wall - ziptie_w]) 
45         translate([0, 0, z])
46                 difference() {
47                         cylinder(r = fork_diam/2 + wall + ziptie_h,
48                                 h = ziptie_w);
49                         translate([0, 0, -eps])
50                                 cylinder(r = fork_diam/2 + wall, h = ziptie_w+2*eps);
51                 }
52                         
53 }}