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;
// ========== calculated ==========
+TAU = PI*2;
+
hole_dia = th + pin_gap;
bolt_hole_r = (bolt_dia + bolt_gap)/2;
}
}
+// ---------- 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(){