chiark / gitweb /
topeak-seatstay-lock: wip just start pin
[reprap-play.git] / topeak-seatstay-lock.scad
1 // -*- C -*-
2
3 pump_dia = 27;
4 seatstay_mindia = 14;
5 seatstay_maxdia = 19;
6 pump_seatstay_gap = 12.3;
7 pump_seatstay_delta = 0.1;
8 holes_rotation = 7;
9
10 body_thick_x = 5;
11 body_thick_y = 5;
12
13 pin_workdepth = 15;
14 pin_width = 11 + 0.5;
15 pin_thick = 3 + 0.4;
16
17 // computed
18
19 body_depth = pin_width + 8;
20
21 module Holes(){
22   translate([0, -pump_dia/2]);
23   rotate(-holes_rotation){
24     translate([-(pump_seatstay_gap/2 + pump_dia/2),
25                0])
26       circle(r=pump_dia/2);
27     translate([+(pump_seatstay_gap/2 + seatstay_mindia/2),
28                pump_dia/2 -seatstay_maxdia/2 -pump_seatstay_delta]) {
29       hull(){
30         for (ud=[-1,1])
31           translate([0, ud * (seatstay_maxdia-seatstay_mindia)/2])
32             circle(r=seatstay_mindia/2);
33       }
34     }
35   }
36 }
37
38 module BodyPlan(){
39   hull(){
40     for(x=[-1,1]) for(y=[-1,1])
41       translate([x*body_thick_x, y*body_thick_y])
42         Holes();
43   }
44 }
45
46 module Body(){
47   translate([0,0,-body_depth/2])
48     linear_extrude(height=body_depth){
49     difference(){
50       BodyPlan();
51       Holes();
52     }
53   }
54 }
55
56 Body();