cleat_height = 25;
cleat_stem_l = 20;
+cleat_overlap = (1-cos(60));
+
// ---------- hhook ----------
hhook_inside = 40;
pin_hole_dia = pin_dia/2;
pin_tail = pin_hole_dia + pin_head_th + hinge_z_gap*3;
+$print_horiz = false;
+
// ========== calculated ==========
TAU = PI*2;
cleat_horn_tl = cleat_horn_l + cleat_stem_l/2;
+vcleat_dz =
+ $print_horiz ? 0 : max(0,
+ cleat_horn_tl
+ + cleat_horn_d_min[0]/2
+ - cleat_horn_d_min[0]/2 * cleat_overlap
+ - total_z/2
+ );
+
// calculated - hhook
hhook_outer_dia = hhook_inside + hhook_th*2;
}
}
-module VCleatA(){ ////toplevel
- %DummyA();
-
- translate([0, -(main_r + cleat_height), 0]) {
- rotate([0, -90, 90]) {
- CleatBase();
- for (m=[0,1]) {
- mirror([m,0,0]) {
- CleatHorn();
+module VCleat(){
+ intersection(){
+ translate([0,0, vcleat_dz]){
+ difference(){
+ translate([0, -(main_r + cleat_height), 0]) {
+ rotate([0, -90, 90]) {
+ CleatBase();
+ for (m=[0,1]) {
+ mirror([m,0,0]) {
+ CleatHorn();
+ }
+ }
+ }
}
+ linextr(-cleat_stem_l, +cleat_stem_l)
+ circle(r = tube_dia/2 + 0.1);
}
}
+ if (!$print_horiz)
+ translate([0,0, total_z * 0.5])
+ cube(center=true,
+ (main_r + cleat_stem_l)*4 * [1,1,0] +
+ total_z * [0,0,2]);
+ }
+}
+
+module VCleatA(){
+ DummyA();
+ VCleat();
+}
+
+module VCleatAPrint(){ ////toplevel
+ rotate($print_horiz ? [90,0,0] : [0,0,0]) {
+ VCleatA();
}
}
rotate([0,0,180]) PinSitu();
}
+module DemoPair(){ ////toplevel
+ color("red") rotate([180,0,0]) DemoA();
+ color("blue") DemoA();
+ color("orange") translate([hinge_x, 0, min_z - hinge_z_gap])
+ rotate([0,0,180]) PinSitu();
+}
+
//PlanDemo();
//HalfClamp();