$fn=120; Delta=0.001; Opening_Angle=90; Height=15; Thickness=2.5; module Clamp(Diameter, Borehole=true) { Tx=Diameter/2+Thickness; translate([Tx,0,0]) difference() { union() { scale([1,1.05,1]) cylinder(d=Diameter+2*Thickness, h=Height); if (Borehole) translate([-(5+Diameter/2),-Diameter/2,0]) cube([10,Diameter,Height]); } translate([0,0,Delta]) union() { translate([1,0,0]) cylinder(d=Diameter, h=2*Height, center=true); if (Borehole) { translate([0,0,Height/2]) rotate([0,90,0]) cylinder(d=4.5, h=60, center=true); translate([-(1+Diameter/2),-Diameter/4,2]) #cube([8,10,Height]); } translate([0,0,-1]) for(j=[-Opening_Angle/2:360/$fn:+Opening_Angle/2]) rotate([0,0,j]) hull() { rotate([0,0,+360/$fn/2]) cube([60,0.001,20]); rotate([0,0,-360/$fn/2]) cube([60,0.001,20]); } } } } // translate([-Thickness/3,0,0]) Clamp(Diameter=25, Borehole=false); // rotate([0,0,180]) translate([-Thickness/3,0,0]) Clamp(Diameter=18.85, Borehole=false); // translate([0,0,Height/2]) cube([2*Thickness,12,Height], center=true); translate([4,0,0]) Clamp(Diameter=25, Borehole=false); rotate([0,0,180]) translate([4,0,0]) Clamp(Diameter=18.85, Borehole=false); translate([0,0,Height/2]) cube([12,12,Height], center=true);