chiark / gitweb /
topeak-seatstay-lock: minkowski, is bad
[reprap-play.git] / topeak-seatstay-lock.scad
index 59552bf0dee95a8270492718aeb8d348b2dcbed9..dab17abe9f0aa4ef87c7d20bb002d0b7382e9f32 100644 (file)
@@ -5,14 +5,23 @@ seatstay_mindia = 14;
 seatstay_maxdia = 19;
 pump_seatstay_gap = 12.3;
 pump_seatstay_delta = 0.1;
-holes_rotation = 7;
 
 body_thick_x = 5;
 body_thick_y = 5;
 
-pin_workdepth = 15;
+pin_workdepth = 16;
 pin_width = 11 + 0.5;
 pin_thick = 3 + 0.4;
+pin_base = 25;
+
+lock_manouvre_thick = 3.5 + 0.5;
+lock_manouvre_len = 18;
+lock_hang_width = 17.5;
+
+// fudgeish
+
+holes_rotation = 9;
+pin_offset = 6;
 
 // computed
 
@@ -53,4 +62,36 @@ module Body(){
   }
 }
 
-Body();
+module Pin(){
+  translate([0, pin_offset, 0]) rotate([0,90,0]){
+    translate([0, 0, -pin_thick/2])
+      linear_extrude(height=pin_thick){
+      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);
+    }
+    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();
+    Pin();
+  }
+}
+
+Demo();
+//All();
+//Pin();