chiark / gitweb /
topeak-seatstay-lock: seems maybe printable
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 31 May 2014 20:44:34 +0000 (21:44 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 31 May 2014 20:44:34 +0000 (21:44 +0100)
topeak-seatstay-lock.scad

index f2b974401fc1f8ecc695d5a181d28682d15ec67a..dd87bc3e2762610d495b2d493533039b92d56c54 100644 (file)
@@ -1,8 +1,8 @@
 // -*- C -*-
 
-pump_dia = 27;
-seatstay_mindia = 14;
-seatstay_maxdia = 19;
+pump_dia = 27 + 0.5;
+seatstay_mindia = 14 + 0.5;
+seatstay_maxdia = 19 + 0.5;
 pump_seatstay_gap = 12.3;
 pump_seatstay_delta = 0.1;
 
@@ -17,15 +17,19 @@ pin_base = 25;
 lock_manouvre_thick = 3.5 + 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
 
 holes_rotation = 9;
-pin_offset = 6;
+pin_offset = 7;
 
 // computed
 
-body_depth = pin_width + 8;
+body_depth = pin_width + body_depth_each*2;
 
 module Holes(){
   translate([0, -pump_dia/2]);
@@ -69,9 +73,15 @@ module Pin(){
       translate([-pin_base/2, 0]) square([pin_base, 50]);
       translate([-pin_width/2, -100]) square([pin_width, 101]);
     }
-    translate([-lock_manouvre_thick/2, -pin_workdepth-100, -lock_manouvre_len])
-      cube([lock_manouvre_thick, 100, lock_manouvre_len*2]);
-    translate([- lock_manouvre_thick/2, -pin_workdepth-50,
+    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,
               -lock_hang_width/2])
       cube([50, 50, lock_hang_width]);
   }
@@ -89,6 +99,24 @@ module All(){
   }
 }
 
-Demo();
+module Piece(pc){
+  translate([0,-pc*4,0])
+    intersection(){
+    mirror([0,pc,0])
+      translate([-200,clatter_gap/2,-200]) cube([400,400,400]);
+    All();
+  }
+}
+
+module PiecesPrint(){
+  mirror([0,0,1])
+    for (pc=[0,1]){
+      Piece(pc);
+    }
+}
+
+//Demo();
 //All();
 //Pin();
+//Pieces();
+PiecesPrint();