pin_gap = 1.5; // around
-smooth_r = 10;
+smooth_r = 15;
bolt_dia = 5 + 0.75;
bolt_flat = 10 + 1;
hinge_o_r = 0.5 * hole_dia + th;
hinge_x = -0.5 * tube_dia - hinge_o_r;
-bolt_x = 0.5 * tube_dia + bolt_flat * 0.5;
+bolt_x = 0.5 * tube_dia + th + bolt_flat * 0.5;
max_x = bolt_x + max(0.5 + bolt_dia + th, 0.5 * bolt_flat/2);
flats_y = open_gap/2 + th;
}
}
-module HalfClampX(flatten){
- translate([0,0, -total_z/2]) {
- linextr(0, total_z) mirror([0,1]) MainPlanB();
- for (i=[0 : hinge_units-1]) {
- translate([0,0, stride_z*i])
- linextr(0, hinge_unit) MainPlanA(flatten);
+module HalfClampX(flatten=false){
+ difference(){
+ translate([0,0, -total_z/2]) {
+ linextr(0, total_z) mirror([0,1]) MainPlanB();
+ for (i=[0 : hinge_units-1]) {
+ translate([0,0, stride_z*i])
+ linextr(0, hinge_unit) MainPlanA(flatten);
+ }
+ }
+ for (dz=[-1,+1]) {
+ translate([ bolt_x, 0, dz * total_z/4 ]) {
+ translate([0, -tube_dia/2, 0])
+ rotate([-90,0,0])
+ cylinder(r= bolt_dia/2, h= tube_dia);
+ translate([0, -flats_y, 0])
+ rotate([90,0,0])
+ cylinder(r= bolt_flat/2, h= tube_dia/2);
+ }
}
}
}
// translate([max_x - hinge_x + 20, 0]) color("blue") MainPlanA();
}
+module GeneralB(){ ////toplevel
+ HalfClampX(true);
+}
+
+module DummyB(){ ////toplevel
+ HalfClampX();
+}
+
module Demo(){ ////toplevel
color("red") HalfClampA();
color("blue") HalfClampB();