chiark / gitweb /
pin-hinge: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 15 Sep 2020 22:47:34 +0000 (23:47 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 15 Sep 2020 22:47:34 +0000 (23:47 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
pin-hinge.scad

index 9fa22de01e7866a11a728bf0befdf84b9e529301..bf9aa7b2bd003eb084927416f09270b6e2d80593 100644 (file)
@@ -3,6 +3,7 @@
 $hinge_pin_dia = 0.795 + 0.35;
 $hinge_main_dia = 4.0;
 $hinge_inter_gap = 0.50;
+$hinge_prong_minwidth = 3.5;
 $hinge_noncrit_gap = 1.0;
 
 $fa = 3;
@@ -13,14 +14,11 @@ module HingePinPlan(){
 }
 
 module HingeProngPlan(behind){
-  difference(){
-    hull(){
-      circle(r= $hinge_main_dia/2);
-      polygon([[0,0],
-              [-$hinge_main_dia/2, -behind],
-              [+$hinge_main_dia/2, -behind]]);
-    }
-    HingePinPlan();
+  hull(){
+    circle(r= $hinge_main_dia/2);
+    polygon([[0,0],
+            [-$hinge_main_dia/2, -behind],
+            [+$hinge_main_dia/2, -behind]]);
   }
 }
 
@@ -31,6 +29,26 @@ module HingeGapPlan() {
 module PlanDemo(){
   HingeProngPlan(5);
   %HingeGapPlan();
+  translate([0,0,1]) color("red") HingePinPlan();
+}
+
+module HingePositive(l){
+  linetr_x_yz(0, l)
+    HingeProngPlan();
+}  
+
+module HingeNegative(l){
+  eff_l = l + $hionge_inter_gap;
+  pairs = floor(eff_l / (2*($hinge_prong_minwidth + $hinge_inter_gap)));
+  stride = eff_l / pairs;
+  prong_width = stride/2 - $hinge_inter_gap;
+  linextr_x_ayz(-0.1, l+0.1)
+    HingePinPlan();
+  for (i=[0:pairs-1]) {
+    translate(stride * i * [1,0,0])
+      linextr_x_yz(0, prong_width + $hinge_inter_gap)
+      HingeGapPlan();
+  }
 }
 
 PlanDemo();