chiark / gitweb /
scaffold-clamp: wip vhook
[reprap-play.git] / scaffold-clamp-common.scad
index 0f7ddf00b0b13732d6ebd835d83494a80b713b29..590d08ca8d3ef415c07dad2f02f440f7b30020d6 100644 (file)
@@ -22,7 +22,7 @@ hinge_units = 4;
 
 // vhook
 
-vhook_th = 10;
+vhook_th = 14;
 
 
 // calculated
@@ -56,7 +56,7 @@ vhook_inside = 15;
 
 vhook_theta = atan2( smooth_r, main_r );
 
-vhook_y0 = -cos(vhook_theta) * (main_r + smooth_r);
+vhook_y0 = -max(main_r, (tube_dia/2 + vhook_th));
 vhook_ctr = vhook_y0 - vhook_inside/2;
 vhook_outer_dia = vhook_inside + vhook_th*2;
 
@@ -169,33 +169,44 @@ module PlanDemo(){ ////toplevel
 
 // ---------- 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
+module VHookHookMain(outer=false){ ////toplevel
   rotate([0,90,0])
     rotate_extrude(convexity=10)
     rotate([0,0,90])
-    VHookProfile();
+    hull(){
+      VHookProfile();
+      if (outer) {
+       translate([0,-vhook_outer_dia]) square(center=true, vhook_th);
+      }
+    }
 }
 
 module VHookPartA(){ ////toplevel
   DummyA();
-  linextr(min_z, min(min_z + vhook_outer_dia * 1.5, max_z))
-    VHookPlan();
 
-  translate([0, vhook_ctr, min_z + vhook_outer_dia/2]){
-    linextr(-0.1, vhook_outer_dia/2)
-      VHookProfile();
+  translate([0, vhook_ctr, 0]){
+    for (m=[0,1]) {
+      mirror([0, m, 0]) {
+       linextr(-0.1, vhook_outer_dia/2)
+         VHookProfile();
+       translate([0, -vhook_inside/2 -vhook_th/2, vhook_outer_dia/2])
+         sphere(r= vhook_th/2);
+      }
+    }
+
+    intersection(){
+      VHookHookMain(outer=true);
+      linextr_y_xz(0, vhook_outer_dia/2) hull(){
+       VHookProfile();
+       translate([0,-0.1]) square(center=true, [vhook_th, 0.2]);
+      }
+    }
+
     intersection(){
       VHookHookMain();
       translate([0,0, -vhook_outer_dia])