chiark / gitweb /
scaffold-clamp: wip reorg again
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Nov 2020 20:26:40 +0000 (20:26 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Nov 2020 20:26:40 +0000 (20:26 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
scaffold-clamp-common.scad
scaffold-clamp-vhook.scad

index 73a5500ad7cf06cb14f0b74321c047efa0d51d7a..36585e019b7a9d40d1e49621ed276af51b540517 100644 (file)
@@ -18,6 +18,13 @@ open_gap = 10;
 hinge_unit = 10;
 hinge_z_gap = 1;
 
+hinge_units = 4;
+
+// vhook
+
+vhook_th = 10;
+
+
 // calculated
 
 pin_dia = th;
@@ -43,6 +50,17 @@ max_z = +total_z/2;
 
 pin_flatten = pin_dia/2 * (1 - cos(45));
 
+// calculated - vhook
+
+vhook_inside = 15;
+
+vhook_theta = atan2( smooth_r, main_r );
+
+vhook_y0 = -cos(vhook_theta) * (main_r + smooth_r);
+vhook_ctr = vhook_y0 - vhook_inside/2;
+vhook_outer_dia = vhook_inside + vhook_th*2;
+
+
 $fa = 3;
 $fs = 0.1;
 
@@ -133,7 +151,7 @@ module HalfClampX(flatten=false){
   }
 }
 
-module GeneralPlanDemo(){ ////toplevel
+module PlanDemo(){ ////toplevel
   MainPlan();
   translate([0,0,-4]) color("red") Portion(1);
   translate([0,0,-2]) color("grey") Portion(0);
@@ -142,9 +160,64 @@ module GeneralPlanDemo(){ ////toplevel
     MainPlanB();
     MainPlanA();
   }
+
+  translate([0, -tube_dia*1.5]) {
+    VHookPlanDemo();
+  }
 //  translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA();
 }
 
+// ---------- vhook ----------
+
+module VHookPlan() {
+  PlanWeldMainCircle(){
+    rectfromto([ -vhook_th/2, 0 ],
+              [ +vhook_th/2, vhook_y0 ]);
+  }
+}
+
+module VHookProfile() {
+  translate([0, -vhook_inside/2 - vhook_th/2])
+    circle(r = vhook_th/2);
+}
+
+module VHookHookMain(){ ////toplevel
+  rotate([0,90,0])
+    rotate_extrude(convexity=10)
+    rotate([0,0,90])
+    VHookProfile();
+}
+
+module VHookPartA(){ ////toplevel
+  DummyA();
+  linextr(min_z, max_z)
+    VHookPlan();
+
+  translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){
+    linextr(-0.1, vhook_outer_dia/2)
+      VHookProfile();
+    intersection(){
+      VHookHookMain();
+      translate([0,0, -vhook_outer_dia])
+       cube(center=true, vhook_outer_dia*2);
+    }
+  }
+
+  //translate([0, vhook_y0, 50]) rotate([0,0,-90]) color("black") cube(10);
+  // translate([0,0,-150]) rotate([0,0,180 + theta]) color("blue") cube(100);
+}
+
+module VHookPlanDemo(){
+  VHookPlan();
+  translate([0, vhook_ctr, 5])
+    for (m=[0,1]) {
+      mirror([0,m])
+       color("blue") VHookProfile();
+    }
+}
+
+// ---------- misc ----------
+
 module GeneralB(){ ////toplevel
   HalfClampX(true);
 }
index 86adc380eed567c6e3c973f84161214cf6a81f40..7c3cf06a1d4531d7873be376d8e55874c5c7f1d8 100644 (file)
@@ -1,73 +1,4 @@
 // -*- C -*-
 
-hinge_units = 4;
-
+//// toplevels-from:
 include <scaffold-clamp-common.scad>
-
-vhook_th = 10;
-
-theta = atan2( smooth_r, main_r );
-
-vhook_inside = 15;
-
-// calculated
-
-vhook_y0 = -cos(theta) * (main_r + smooth_r);
-vhook_ctr = vhook_y0 - vhook_inside/2;
-vhook_outer_dia = vhook_inside + vhook_th*2;
-
-//echo(theta);
-
-module VHookPlan() {
-  PlanWeldMainCircle(){
-    rectfromto([ -vhook_th/2, 0 ],
-              [ +vhook_th/2, vhook_y0 ]);
-  }
-}
-
-module VHookProfile() {
-  translate([0, -vhook_inside/2 - vhook_th/2])
-    circle(r = vhook_th/2);
-}
-
-module PartB(){ ////toplevel
- GeneralB();
-}
-
-module VHookHookMain(){ ////toplevel
-  rotate([0,90,0])
-    rotate_extrude(convexity=10)
-    rotate([0,0,90])
-    VHookProfile();
-}
-
-module PartA(){ ////toplevel
-  DummyA();
-  linextr(min_z, max_z)
-    VHookPlan();
-
-  translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){
-    linextr(-0.1, vhook_outer_dia/2)
-      VHookProfile();
-    intersection(){
-      VHookHookMain();
-      translate([0,0, -vhook_outer_dia])
-       cube(center=true, vhook_outer_dia*2);
-    }
-  }
-
-  //translate([0, vhook_y0, 50]) rotate([0,0,-90]) color("black") cube(10);
-  // translate([0,0,-150]) rotate([0,0,180 + theta]) color("blue") cube(100);
-}
-
-module PlanDemo(){ ////toplevel
-  GeneralPlanDemo();
-  translate([0, -tube_dia*1.5]) {
-    VHookPlan();
-    translate([0, vhook_ctr, 5])
-      for (m=[0,1]) {
-       mirror([0,m])
-         color("blue") VHookProfile();
-      }
-  }
-}