bw=12.8; bl=140; gw=3; gs=gw+6; gn=3*(bl/(gw+gs)); module grid() { union() { for ( i = [0 : gs : gn * gs]) { translate([0, i, 0]) rotate([0,0,45]) cube([bw*3,gw,20]); } for ( i = [0 : gs : gn * gs]) { translate([0, i, 0]) rotate([0,0,-45]) cube([bw*3,gw,20]); } } } // A remix of the bar with a grid through it to try and get it to print // without curling (it still curled some). // module bar() { difference() { rotate([0,0,45]) import("PCBviseBar.stl"); difference() { translate([-(bw-6)/2,-(bl-6)/2,-20/2]) cube([bw-6,bl-6,20]); intersection() { translate([-(bw-6)/2,-(bl-6)/2,-20/2]) cube([bw-6,bl-6,20]); translate([-13.5,-90,-10]) grid(); } } } } tubeid=15.82-0.05; tubelen=50; sloth=2; // A cylinder designed to slide into a piece of electrical conduit and // and grip the mount point on the bar so the conduit forms an arm to hold // the clamp. (Note: Conduit seems awful variable in size, best measure // the piece you are planning to actually use before printing - mine measured // 15.82mm inside diameter). // module conduit() { rotate([0,90,0]) difference() { union() { rotate([0,90,0]) cylinder(h=tubelen,r=(tubeid/2), $fn=24); intersection() { rotate([0,90,0]) cylinder(h=tubelen/2,r1=((tubeid+0.4)/2),r2=(tubeid/2),$fn=24); translate([-1,-tubeid/2, -(tubeid+10)/2]) cube([2+tubelen/2,tubeid,tubeid+10]); } } translate([0,0,-(5.71/2)]) scale([1.01,1.01,1.01]) rotate([0,0,45]) import("PCBviseBar.stl"); translate([0,-(tubeid+2)/2,-(sloth/2)]) cube([tubelen*2/3,tubeid+2,sloth]); } } conduit();