chiark / gitweb /
scaffold-clamp-cleat: wip
[reprap-play.git] / scaffold-clamp-common.scad
index d2640b6a9a08ef3e8b75c0467896634de7a9da05..5dabac58325710cbb8495213ef00ea7e3e58b733 100644 (file)
@@ -28,6 +28,14 @@ bolt_gap = 1.0; // total, on both sides
 
 vhook_th = 14;
 
+// ---------- cleat ----------
+
+cleat_frames = 10;
+cleat_curve_r = 200;
+cleat_horn_l = 60;
+cleat_horn_d_min = 8;
+cleat_horn_d_max = 10;
+
 // ---------- hhook ----------
 
 hhook_inside = 40;
@@ -43,6 +51,8 @@ pin_tail = pin_hole_dia + pin_head_th + hinge_z_gap*3;
 
 // ========== calculated ==========
 
+TAU = PI*2;
+
 hole_dia = th + pin_gap;
 
 bolt_hole_r = (bolt_dia + bolt_gap)/2;
@@ -236,6 +246,35 @@ module VHookPlanDemo(){
     }
 }
 
+// ---------- cleat ----------
+
+module CleatFrame(s) {
+  translate([0,0, cleat_curve_r])
+    rotate( s * cleat_horn_l / cleat_curve_r * 360/TAU * [0,1,0] )
+    translate([0,0, -cleat_curve_r])
+    rotate([0, 90, 0])
+    sphere(r= ( cleat_horn_d_min * s +
+               cleat_horn_d_max * (1-s) ) * 0.5);
+}
+
+
+module CleatHorn(){
+  for (si=[0 : cleat_frames-2]) {
+    s0 = si / (cleat_frames-1);
+    s1 = (si+1) / (cleat_frames-1);
+    hull(){
+      CleatFrame(s0);
+      CleatFrame(s1);
+    }
+  }
+}
+
+module VCleatA(){ ////toplevel
+//  DummyA();
+
+  CleatHorn();
+}
+
 // ---------- hhook ----------
 
 module HHookHookPlan(){