4 seatstay_mindia = 14 + 0.5;
5 seatstay_maxdia = 19 + 0.7;
6 pump_seatstay_gap = 12.3;
7 pump_seatstay_delta = 0.1;
8 pump_ridge_width = 8 + 2.0;
12 pin_workdepth = 16 - 1.0;
17 lock_manouvre_thick = 3.7 + 0.6;
18 lock_manouvre_len = 18;
19 lock_hang_width = 17.5;
20 lock_manouvre_len_smaller = 13;
39 body_depth = pin_width + body_depth_each*2;
41 module Holes(forbody=false){
42 translate([0, -pump_dia/2]);
43 rotate(-holes_rotation){
44 translate([-(pump_seatstay_gap/2 + pump_dia/2),
47 rotate(-ridge_rotation + holes_rotation)
48 translate([-50, -pump_ridge_width/2])
49 square([50, pump_ridge_width]);
50 circle(r=pump_dia/2, $fn=80);
52 translate([+(pump_seatstay_gap/2 + seatstay_mindia/2),
53 pump_dia/2 -seatstay_maxdia/2 -pump_seatstay_delta]) {
56 translate([0, ud * (seatstay_maxdia-seatstay_mindia)/2])
57 circle(r=seatstay_mindia/2, $fn=50);
72 translate([0,0,body_depth/2])mirror([0,0,1]){
73 linear_extrude(height=body_depth){
79 linear_extrude(height=roof_thick){
83 translate([0,-roof_extent,0]) BodyPlan();
92 translate([pin_x_offset, pin_y_offset, 0]) rotate([0,90,0]){
93 translate([0, 0, -pin_thick/2])
94 linear_extrude(height=pin_thick){
95 translate([-pin_base/2, 0]) square([pin_base, 50]);
96 translate([-pin_width/2, -100]) square([pin_width, 101]);
98 hull() for (d=[0,10]) {
99 translate([d*lock_hang_ratio,-d,0])
100 translate([-lock_manouvre_thick/2,
102 -lock_manouvre_len_smaller])
103 cube([lock_manouvre_thick, 100,
104 lock_manouvre_len + lock_manouvre_len_smaller]);
116 module Piece(pc,interval){
117 translate([0,-pc*interval,0])
119 rotate([0,0,pc*180-cut_rotation])
120 translate([-200,clatter_gap/2,-200]) cube([400,400,400]);
125 module PiecePrint(pc){
126 rotate([0,0,90]) rotate([0,180,0])
130 module PiecesPrint(){