}
}
-module HalfClampX(flatten=false){
- difference(){
- translate([0,0, min_z]) {
- 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 HalfClampXPositive(flatten=false){
+ translate([0,0, min_z]) {
+ 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 (j=[0:nbolts-1]) {
- translate([ bolt_x, 0, min_z + (j + 0.5) * bolt_stride ]) {
- translate([0, -tube_dia/2, 0])
- rotate([-90,0,0])
- cylinder(r= bolt_hole_r, h= tube_dia);
- translate([0, -flats_y, 0])
- rotate([90,0,0])
- cylinder(r= bolt_flat/2, h= tube_dia/2);
- }
+ }
+}
+
+module HalfClampXNegative(){
+ for (j=[0:nbolts-1]) {
+ translate([ bolt_x, 0, min_z + (j + 0.5) * bolt_stride ]) {
+ translate([0, -tube_dia/2, 0])
+ rotate([-90,0,0])
+ cylinder(r= bolt_hole_r, h= tube_dia);
+ translate([0, -flats_y, 0])
+ rotate([90,0,0])
+ cylinder(r= bolt_flat/2, h= tube_dia/2);
}
}
}
+module HalfClampX(flatten=false){
+ difference(){
+ HalfClampXPositive(flatten);
+ HalfClampXNegative();
+ }
+}
+
// ---------- vhook ----------
module VHookProfile() {