cleat_height = 25;
cleat_stem_l = 20;
+cleat_overlap = (1-cos(60));
+
// ---------- hhook ----------
hhook_inside = 40;
cleat_horn_tl = cleat_horn_l + cleat_stem_l/2;
vcleat_dz = max(0,
- cleat_horn_tl + cleat_horn_d_min[0]/2 - total_z/2
+ cleat_horn_tl
+ + cleat_horn_d_min[0]/2
+ - cleat_horn_d_min[0]/2 * cleat_overlap
+ - total_z/2
);
// calculated - hhook
}
module VCleat(){
- 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();
+ 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);
}
- linextr(-cleat_stem_l, +cleat_stem_l)
- circle(r = tube_dia/2 + 0.1);
}
+ translate([0,0, total_z * 0.5])
+ cube(center=true,
+ (main_r + cleat_stem_l)*4 * [1,1,0] +
+ total_z * [0,0,2]);
}
}
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();