chiark / gitweb /
scaffold-clamp: wip vhook
[reprap-play.git] / scaffold-clamp-vhook.scad
index c7303d2fd87e3250586c8d640be8d987c939ceac..c62edf9ddb7b247d6b22a956f6f15faa020ea1e0 100644 (file)
@@ -4,13 +4,35 @@ hinge_units = 4;
 
 include <scaffold-clamp-common.scad>
 
+vhook_th = 10;
+
+vhook_smooth = 3;
+
+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;
+
+//echo(theta);
+
 module VHookPlan() {
   PlanWeldMainCircle(){
-    rectfromto([ -5, 0 ],
-              [ +5, -60 ]);
+    rectfromto([ -vhook_th/2, 0 ],
+              [ +vhook_th/2, vhook_y0 ]);
   }
 }
 
+module VHookProfile() {
+  offset(r=+vhook_smooth)
+  offset(delta=-vhook_smooth)
+  rectfromto([ -vhook_th/2, -vhook_inside/2 ],
+            [ +vhook_th/2, -vhook_inside/2 - vhook_th]);
+}
+
 module PartB(){ ////toplevel
  GeneralB();
 }
@@ -19,11 +41,18 @@ module PartA(){ ////toplevel
   DummyA();
   linextr(min_z, max_z)
     VHookPlan();
+  //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();
+      }
   }
 }