chiark / gitweb /
topeak-seatstay-lock: fix seatstay max dia
[reprap-play.git] / topeak-seatstay-lock.scad
index dab17abe9f0aa4ef87c7d20bb002d0b7382e9f32..09f510b9031499098a0cde295fc67452e66578f9 100644 (file)
@@ -1,38 +1,50 @@
 // -*- C -*-
 
-pump_dia = 27;
-seatstay_mindia = 14;
-seatstay_maxdia = 19;
+pump_dia = 27 + 0.7;
+seatstay_mindia = 14 + 0.5;
+seatstay_maxdia = 19 + 0.7;
 pump_seatstay_gap = 12.3;
 pump_seatstay_delta = 0.1;
+pump_ridge_width = 8 + 2.0;
 
 body_thick_x = 5;
 body_thick_y = 5;
 
 pin_workdepth = 16;
 pin_width = 11 + 0.5;
-pin_thick = 3 + 0.4;
+pin_thick = 3 + 0.6;
 pin_base = 25;
 
-lock_manouvre_thick = 3.5 + 0.5;
+lock_manouvre_thick = 3.7 + 0.5;
 lock_manouvre_len = 18;
 lock_hang_width = 17.5;
+lock_manouvre_len_smaller = 13;
+
+body_depth_each = 5;
+clatter_gap = 0.5;
 
 // fudgeish
 
+cut_rotation = 2;
 holes_rotation = 9;
-pin_offset = 6;
+pin_offset = 7;
+ridge_rotation = 8.5;
 
 // computed
 
-body_depth = pin_width + 8;
+body_depth = pin_width + body_depth_each*2;
 
-module Holes(){
+module Holes(forbody=false){
   translate([0, -pump_dia/2]);
   rotate(-holes_rotation){
     translate([-(pump_seatstay_gap/2 + pump_dia/2),
-              0])
+              0]) {
+      if (!forbody)
+       rotate(-ridge_rotation + holes_rotation)
+         translate([-50, -pump_ridge_width/2])
+         square([50, pump_ridge_width]);
       circle(r=pump_dia/2);
+    }
     translate([+(pump_seatstay_gap/2 + seatstay_mindia/2),
               pump_dia/2 -seatstay_maxdia/2 -pump_seatstay_delta]) {
       hull(){
@@ -48,7 +60,7 @@ module BodyPlan(){
   hull(){
     for(x=[-1,1]) for(y=[-1,1])
       translate([x*body_thick_x, y*body_thick_y])
-       Holes();
+       Holes(true);
   }
 }
 
@@ -69,22 +81,20 @@ module Pin(){
       translate([-pin_base/2, 0]) square([pin_base, 50]);
       translate([-pin_width/2, -100]) square([pin_width, 101]);
     }
-    minkowski(){
-      translate([0, -pin_workdepth-100 - lock_manouvre_thick/2, -lock_manouvre_len])
-       cube([0.1, 100, lock_manouvre_len*2]);
-      cylinder(r=lock_manouvre_thick/2, h=0.1);
+    hull() for (d=[0,10]) {
+      translate([d*2,-d,0])
+       translate([-lock_manouvre_thick/2,
+                  -pin_workdepth-100,
+                  -lock_manouvre_len_smaller])
+       cube([lock_manouvre_thick, 100,
+             lock_manouvre_len + lock_manouvre_len_smaller]);
     }
-    translate([- lock_manouvre_thick/2, -pin_workdepth-50,
+    translate([-lock_manouvre_thick/2, -pin_workdepth-50,
               -lock_hang_width/2])
       cube([50, 50, lock_hang_width]);
   }
 }
 
-module Demo(){
-  %Body();
-  Pin();
-}
-
 module All(){
   difference(){
     Body();
@@ -92,6 +102,30 @@ module All(){
   }
 }
 
-Demo();
+module Piece(pc,interval){
+  translate([0,-pc*interval,0])
+    intersection(){
+      rotate([0,0,pc*180-cut_rotation])
+      translate([-200,clatter_gap/2,-200]) cube([400,400,400]);
+    All();
+  }
+}
+
+module PiecesPrint(){
+  rotate([0,180,0])
+    for (pc=[0,1]){
+      Piece(pc,4);
+    }
+}
+
+module Demo(){
+  for (pc=[0,1])
+    Piece(pc,0);
+}
+
+//Holes();
+//Demo();
 //All();
 //Pin();
+//Pieces();
+PiecesPrint();