chiark / gitweb /
scaffold-clamp: wip vhook
[reprap-play.git] / scaffold-clamp-vhook.scad
index c7303d2fd87e3250586c8d640be8d987c939ceac..a22e7977bb6371e666079f4b463f680937e65c43 100644 (file)
@@ -4,26 +4,66 @@ hinge_units = 4;
 
 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([ -5, 0 ],
-              [ +5, -60 ]);
+    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]){
+    intersection(){
+      VHookHookMain();
+    }
+  }
+
+  //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(){
+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();
+      }
   }
 }