-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);
+ }