// configuration values l = 27; // distance between ground and inner clip h = 7; // height of clip t = 5; // thickness of clip w = 90; // width of ground plate fs = 8; // font size // internal variables, not change these in = 35 / 2; out = in + t; d = l + in; content = "TM"; font = "Droid Sans Mono Bold"; difference() { union() { difference() { difference() { cylinder(r1=out, r2=out, h=h, $fn=50); cylinder(r1=in, r2=in, h=h, $fn=50); } translate([0,33,0]) cylinder(r1=25, r2=25, h=h); } translate([-w/2,-d,0]) { cube(size = [w,7,h+5]); } difference() { translate([-fs,-d+7,0]) cube(size=[fs*2,d-7-in+2,h]); translate([0,1,0]) cylinder(r=out, h=h); } rotate([0,0,90]) { translate ([-d+9,-fs/2,h]) { linear_extrude(height=1.5) { text(content, font=font, size=fs); } } } } translate([-(w/2-6),-d+7,(h+5)/2]) rotate([90]) cylinder(h=3, r1=3.5, r2=0, $fn=20); translate([w/2-6,-d+7,(h+5)/2]) rotate([90]) cylinder(h=3, r1=3.5, r2=0, $fn=20); }