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

index dd714d490216cb0d26dc77164e2ea0979cdb0020..73a5500ad7cf06cb14f0b74321c047efa0d51d7a 100644 (file)
@@ -23,6 +23,8 @@ hinge_z_gap = 1;
 pin_dia = th;
 hole_dia = th + pin_gap;
 
+main_r = tube_dia/2 + th;
+
 hinge_gap = pin_gap;
 
 hinge_o_r = 0.5 * hole_dia + th;
@@ -49,7 +51,7 @@ module SmoothPlan(){
 }
 
 module TubePlan(){ circle(r = tube_dia/2); }
-module MainCirclePlan(){ circle(r = tube_dia/2 + th); }
+module MainCirclePlan(){ circle(r = main_r); }
 
 module PlanWeldMainCircle(){
   intersection(){
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();
+      }
   }
 }