// $URL: svn+ssh://mrwhat@ssh.boim.com/home/mrwhat/svn/Walker/trunk/driveElectronicsMount.scad $ // $Id: driveElectronicsMount.scad 230 2013-09-11 14:58:17Z aaron $ // Mount to attach to axles and hold motor drive module Bhole=2.38+.2; // for brass tube PCBhole = 1; include ; // Bx layer1bias = 0.4; platformHeight = 40; mountHeight=15; PCBwidth=43; HoleInset=3; thick=5; t2=thick/2; sf = 16; // sphere faces module braceBar(axisSep,axisRad) { difference() { union() { translate([-axisSep,0,0]) cylinder(h=thick,r1=axisRad+3,r2=axisRad+2,$fn=24); translate([ axisSep,0,0]) cylinder(h=thick,r1=axisRad+3,r2=axisRad+2,$fn=24); hull() { translate([-axisSep,-axisRad+1,0]) cylinder(h=thick,r1=4,r2=3,$fn=6); translate([ axisSep,-axisRad+1,0]) cylinder(h=thick,r1=4,r2=3,$fn=6); } } translate([-axisSep,0,-.1]) cylinder(h=thick*2,r=axisRad,$fn=96); translate([ axisSep,0,-.1]) cylinder(h=thick*2,r=axisRad,$fn=96); }} module mountBrace(pw,mh,dh) { hull() { translate([-pw+2 ,mh,19]) sphere(r=2,$fn=sf); translate([-pw-10,mh, 2]) sphere(r=2,$fn=sf); } hull() { translate([-pw+2 ,mh,19]) sphere(r=2,$fn=sf); translate([-4 ,mh, 2]) sphere(r=2,$fn=sf); } translate([-pw+dh,mh,16]) rotate([90,0,0]) cylinder(h=4,r=6,$fn=6,center=true); } module motorDriverStand(axisSep,axisRad,platHeight,platWidth,dHole,rHole) { difference() { union() { braceBar(axisSep,axisRad); hull() { translate([-axisSep+thick, -2,t2]) sphere(r=t2-1,$fn=sf); translate([ axisSep-18,-2,22]) sphere(r=t2-1,$fn=sf); } hull() { translate([ axisSep-thick, -2,t2]) sphere(r=t2-1,$fn=sf); translate([-axisSep+18,-2,22]) sphere(r=t2-1,$fn=sf); } hull() { translate([-axisSep+thick, -2,t2]) sphere(r=t2,$fn=sf); translate([-axisSep+18,-2,22]) sphere(r=t2,$fn=sf); } hull() { translate([ axisSep-thick, -2,t2]) sphere(r=t2,$fn=sf); translate([ axisSep-18,-2,22]) sphere(r=t2,$fn=sf); } hull() { translate([-axisSep+18,-2,22]) sphere(r=t2,$fn=sf); translate([ axisSep-18,-2,22]) sphere(r=t2,$fn=sf); } mirror([1,0,0]) mountBrace(platWidth/2,mountHeight,dHole); mountBrace(platWidth/2,mountHeight,dHole); hull() { translate([ platWidth/2+10,mountHeight,2]) sphere(r=2,$fn=sf); translate([-platWidth/2-10,mountHeight,2]) sphere(r=2,$fn=sf); } hull() { translate([-platWidth*.3,platHeight,2]) sphere(r=2,$fn=sf); translate([-axisSep+5 , 0 ,2]) sphere(r=2,$fn=sf); } hull() { translate([ platWidth*.3,platHeight,2]) sphere(r=2,$fn=sf); translate([ axisSep-5 , 0 ,2]) sphere(r=2,$fn=sf); } translate([-platWidth*.35,platHeight-2,0]) cube([platWidth*.7,4,8]); } translate([-platWidth/2+dHole,mountHeight,16]) rotate([90,0,0]) cylinder(h=10,r=rHole,$fn=80,center=true); translate([ platWidth/2-dHole,mountHeight,16]) rotate([90,0,0]) cylinder(h=10,r=rHole,$fn=80,center=true); }} module footpad(r) { // pad to help a part stick to plate for 3D printer cylinder(h=layer1bias,r1=r,r2=r-.3,$fn=11); } if (WITH_BRIM) { union() { color("Cyan") hull() { translate([-Bx,0,0]) footpad(12); translate([ Bx,0,0]) footpad(12); translate([-PCBwidth/2, platformHeight-2,0]) footpad(12); translate([ PCBwidth/2, platformHeight-2,0]) footpad(12); } translate([0,0,layer1bias/2]) motorDriverStand(Bx,Bhole,platformHeight,PCBwidth,HoleInset,PCBhole); }} else { motorDriverStand(Bx,Bhole,platformHeight,PCBwidth,HoleInset,PCBhole); }