Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
added some new test parts for 2x outside rods to reduce gantry twisting
- Loading branch information
Showing
2 changed files
with
318 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
/* | ||
* CAD file for the UConduit linear rod mounts. Y and Z included as options. | ||
* | ||
* Creative Commons Share Alike 3.0 | ||
* Copyright (c) 2013 David Lee Miller | ||
* | ||
*/ | ||
|
||
include <../ucon_config.scad> | ||
use <../ucon_functions.scad> | ||
use <MCAD/motors.scad> | ||
use <MCAD/nuts_and_bolts.scad> | ||
$fn=100; | ||
|
||
///// Parameters to calculate rod locations | ||
|
||
bearing1OD = 13+4; // xend 624 bearingOD w/ fender | ||
bearing2OD = 22+4; // idler 608 bearingOD w/ fender | ||
pulleyOD = 25.5; // motor pulleyOD (40 tooth) | ||
nema17 = 42.3; // motor size | ||
xoff = 10+1.5; // offset of the xend toward the conduit (add 1mm?) | ||
zoff = 6.5; // offset parameter of the z rods away from conduit | ||
bearing1H = 5; // xend 624 bearingH w/ fender | ||
bearing2H = 7; // idler 608 bearingH w/ fender | ||
|
||
//// Choose rod mounts (0=Y, 1=Z, 2=idler) //// | ||
type = 0; | ||
|
||
////////////////////////////////////////////////// | ||
|
||
if (type == 0){ | ||
translate([0,0,0]) yRodMount(bearing=1); | ||
translate([-35-2,0,0]) scale([-1,1,1]) yRodMount(); | ||
translate([-35-2,35+2,0]) scale([-1,-1,1]) yRodMount(); | ||
translate([0,35+2,0]) yRodMount(bearing=1); | ||
} | ||
else if (type == 1){ | ||
rotate([0,0,-45+180]) zRodMount(); | ||
translate([-5,35+16,0]) rotate([0,0,-40]) zRodMount(top=2); | ||
translate([-50,0,0]) rotate([0,0,-45]) zRodMount(); | ||
translate([-45,55,0]) rotate([0,0,230]) zRodMount(top=2); | ||
} | ||
else{ | ||
translate([0,0,0]) rotate([0,0,0]) bearingFender(); | ||
translate([35,0,0]) rotate([0,0,0]) bearingFender(); | ||
} | ||
|
||
module bearingFender(){ | ||
difference(){ | ||
union(){ | ||
cylinder(r=bearing2OD/2,h=bearing2H+9); | ||
cylinder(r1=bearing2OD/2+2,r2=bearing2OD/2,h=4); | ||
translate([0,0,bearing2H+9-4]) cylinder(r2=bearing2OD/2+2,r1=bearing2OD/2,h=4);} | ||
cylinder(r=(bearing2OD-8)/2,h=100,center=true); | ||
translate([0,0,2.01]) cylinder(r=(bearing2OD-4)/2,h=bearing2H+10); | ||
} | ||
|
||
difference(){ | ||
union(){ | ||
cylinder(r=6,h=2); | ||
cylinder(r=8/2,h=16); | ||
} | ||
cylinder(r=2+0.2,h=36,center=true); | ||
} | ||
} | ||
|
||
module yRodMount(bearing=0){ // bearing option creates a mount point for the idler | ||
difference(){ | ||
union(){ | ||
translate([0,0,3]) quadflatFlange1(0,0,0,35.01,35,16,10); // basis flange | ||
translate([0,0,-10/2]) linear_extrude(height=10) | ||
difference(){ | ||
hull(){ | ||
square(35,center=true); | ||
// align the motor pulley and xend bearing to rod center | ||
translate([35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff,0,0]) | ||
square(12,center=true); | ||
} | ||
|
||
hull(){ | ||
square(25,center=true); | ||
// align the motor pulley and xend to rod center | ||
translate([35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff-12,0,0]) | ||
square(8,center=true); | ||
} | ||
// make hole for linear rod | ||
translate([35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff,0,0]) | ||
circle(4,center=true); | ||
|
||
// make slot for flex | ||
translate([35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff+1,0,0]) | ||
square([12,1],center=true); | ||
|
||
// remove excess | ||
square(35.01,center=true); | ||
} | ||
|
||
if (bearing==1){ | ||
// align the idler mount | ||
translate([35/2-pulleyOD/2+bearing2OD/2+nema17/2,-35/2+3,0]) | ||
cube([10,14,10],center=true); | ||
|
||
// warning -- manually aligned, adds extra support via fillet radius | ||
translate([35/2-pulleyOD/2+bearing2OD/2+nema17/2-10/2-4,-12.25-7.45,0]) rotate([0,0,17]) | ||
fillet(6,10); | ||
translate([35/2-pulleyOD/2+bearing2OD/2+nema17/2+10/2+5.5,-8-5.8,0]) rotate([0,0,180-85]) | ||
fillet(6,10); | ||
} | ||
difference(){ | ||
translate([16.4,-12.5,-5]) cube([16,25,10]); | ||
translate([35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff-22,0,0]) cylinder(r=4,h=20,center=true); | ||
translate([27,0,0]) cube([12,1,20],center=true); | ||
} | ||
echo(35/2+pulleyOD/2+bearing1OD/2+nema17/2-xoff-26); | ||
} | ||
|
||
|
||
if (bearing==1){ | ||
translate([35/2-pulleyOD/2+bearing2OD/2+nema17/2,-35/2,0]) | ||
rotate([90,0,0]) cylinder(r=2+tolerance,h=30,center=true); | ||
translate([35/2-pulleyOD/2+bearing2OD/2+nema17/2,-35/2+8,0]) | ||
rotate([90,0,0]) rotate([0,0,90]) nutSlot(12,tolerance); | ||
}}} | ||
|
||
module zRodMount(top=1){ | ||
difference(){ | ||
union(){ | ||
translate([0.005,-0.005,0]) rotate([0,0,45]) quadflatFlange1(0,0,0,35.01,35,10,10); | ||
translate([0,0,-10/2]) linear_extrude(height=10) | ||
difference(){ | ||
hull(){ | ||
rotate([0,0,45]) square(35,center=true); | ||
// align the motor pulley and xend bearing to rod center | ||
translate([1.41*35/2+zoff,0,0]) | ||
if(top==1){ | ||
square(12,center=true); | ||
} | ||
else{ | ||
square([12,12+8],center=true); | ||
} | ||
} | ||
|
||
// make hole for linear rod | ||
translate([1.41*35/2+zoff,0,0]) | ||
circle(4,center=true); | ||
|
||
if(top==1){ | ||
// make slot for flex | ||
translate([1.41*35/2+zoff+1,0,0]) | ||
square([12,1],center=true); | ||
} | ||
else{ | ||
translate([1.41*35/2+zoff,0,0]) | ||
square([1,32],center=true); | ||
} | ||
|
||
// remove excess | ||
rotate([0,0,45]) square(35.01,center=true); | ||
} | ||
} | ||
if(top==2){ | ||
translate([35/2+12,-7,0]) rotate([0,90,0]) cylinder(r=2+0.1,h=35,center=true); | ||
translate([35/2+12,7,0]) rotate([0,90,0]) cylinder(r=2+0.1,h=35,center=true); | ||
translate([35/2+6.5,7,0]) rotate([0,-90,0]) nutSlot(12,0.1); | ||
translate([35/2+6.5,-7,0]) rotate([0,-90,0]) nutSlot(12,0.1);} | ||
}} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
/* | ||
* CAD file for the UConduit xends. 4 parts per xends, 4 624 bearings and 2 lm8uu's used. | ||
* | ||
* Creative Commons Share Alike 3.0 | ||
* Copyright (c) 2013 David Lee Miller | ||
* | ||
*/ | ||
include <../ucon_config.scad> | ||
use <../ucon_functions.scad> | ||
use <MCAD/motors.scad> | ||
use <MCAD/nuts_and_bolts.scad> | ||
$fn=100; | ||
|
||
|
||
xoffset=10; | ||
bearing624OD = 13; | ||
|
||
translate([22,-16,-6]) xendA(option=1); | ||
translate([-22,-16,-6]) xendA(option=2); | ||
xendB(); | ||
|
||
|
||
module xendA(mode=1,option=1){ | ||
difference(){ | ||
cross_sectionA(option=option); | ||
rotate([0,0,90]) rodsnbushings(mode=mode); | ||
} | ||
} | ||
|
||
module cross_sectionA(option=2){ | ||
difference(){ | ||
linear_extrude(height=bushingL) | ||
minkowski(){ | ||
union(){ | ||
translate([0,14.5-22/2,0]) square([13,45],center=true); | ||
translate([-7,-0.5,bushingL/2+7.55]) circle(r=4); | ||
translate([7,-0.5,bushingL/2+7.55]) circle(r=4);} | ||
circle(r=3.05); | ||
} | ||
translate([-16/4-1,24/2+16/2+4,-0.1]) cylinder(r=2+0.05,h=bushingL+1,center=false); | ||
translate([16/4+1,24/2+16/2+4,-0.1]) cylinder(r=2+0.05,h=bushingL+1,center=false); | ||
translate([-10,20,bushingL/2+4]) cube([20,20,bushingL]); | ||
if (option==1){ | ||
translate([-7.5,-0.5,bushingL/2+4.5]) rotate([180,0,0]) boltHole(4,length=30,tolerance=0.2); | ||
translate([-7.5,-0.5,bushingL/2+9.25]) rotate([180,0,0]) cylinder(r=4.25,h=5); | ||
translate([7.5,-0.5,bushingL/2+4.5]) rotate([180,0,0]) boltHole(4,length=30,tolerance=0.2); | ||
translate([7.5,-0.5,bushingL/2+9.25]) rotate([180,0,0]) cylinder(r=4.25,h=5); | ||
} | ||
else{ | ||
translate([-7.5,-0.5,bushingL/2+4.15]) nutHole(4,tolerance=0.25); | ||
translate([-7.5,-0.5,bushingL/2+9.25]) rotate([180,0,0]) cylinder(r=2.1,h=50); | ||
translate([7.5,-0.5,bushingL/2+4.15]) nutHole(4,length=30,tolerance=0.25); | ||
translate([7.5,-0.5,bushingL/2+9.25]) rotate([180,0,0]) cylinder(r=2.1,h=50); | ||
} | ||
} | ||
} | ||
|
||
module xendB(){ | ||
difference(){ | ||
rotate([0,90,0]) | ||
union(){ | ||
translate([0,0,11/2-0.001]) xendB_profile(); | ||
translate([0,0,-11/2]) rotate([0,180,0]) scale([-1,1,1]) xendB_profile(); | ||
} | ||
bearing_clear(); | ||
|
||
//subtract the rod clamping pieces | ||
translate([0,20,0]) cube([0.5,100,30],center=true); | ||
translate([-8,25,6]) rotate([0,90,0]) boltHole(4,length=30,tolerance=0.1); | ||
translate([-7,25,6]) rotate([0,90,0]) boltHole(4,length=30,tolerance=0.1); | ||
translate([-8,25,6]) rotate([0,90,0]) cylinder(r=2+0.05,h=30); | ||
translate([-7,42,4.5]) rotate([0,90,0]) boltHole(4,length=30,tolerance=0.1); | ||
translate([-8,42,4.5]) rotate([0,90,0]) boltHole(4,length=30,tolerance=0.1); | ||
translate([-8,42,4.5]) rotate([0,90,0]) cylinder(r=2+0.05,h=30); | ||
translate([7,25,6]) rotate([0,-90,0]) nutSlot(10,0.1); | ||
} | ||
} | ||
|
||
|
||
module bearing_clear(){ | ||
union(){ | ||
union(){ | ||
translate([-5.5,-2,3.55+8.9]) cube([11.1,bushingOD+5.1,bushingOD+4.1],center=true); | ||
translate([-17.5+3.2,-2,8.55]) cube([17.5+0.01-11,bushingOD+5.1,bushingOD+13.1],center=true); | ||
} | ||
translate([0,-2,0]) rotate([0,0,180]) | ||
union(){ | ||
translate([-5.5,0,3.55+8.9]) cube([11.1,bushingOD+5.1,bushingOD+4.1],center=true); | ||
translate([-17.5+3.2,0,8.55]) cube([17.5-11,bushingOD+5.1,bushingOD+13.1],center=true); | ||
} | ||
translate([0,4,-1]) rotate([0,90,0]) cylinder(r=2.05,h=100,center=true); | ||
translate([0,-6,-1]) rotate([0,90,0]) cylinder(r=2.05,h=100,center=true); | ||
} | ||
} | ||
|
||
module xendB_profile(){ | ||
difference(){ | ||
union(){ | ||
difference(){ | ||
cross_sectionB(11); | ||
rotate([0,0,180]) translate([-6.5,-25,5.6]) rotate([90,0,0]) rotate([0,0,90]) fillet(4,12); | ||
translate([-xoffset-8-12/2-2,0,0]) rotate([90,0,0]) cylinder(r=2,h=20,center=true); | ||
translate([0,15,-11/2]) rotate([0,90,0]) cylinder(r=4+0.05,h=50,center=true); | ||
translate([0,35,-11/2]) rotate([0,90,0]) cylinder(r=4+0.05,h=50,center=true); | ||
} | ||
|
||
translate([0,25+2+12/2,11/2+bearing624OD/2-0.01]) | ||
difference(){ | ||
rotate([0,0,180]) | ||
union(){ | ||
cube([12,4,bearing624OD],center=true); | ||
translate([0,-2,-6.5-0.1]) rotate([0,90,0]) fillet(5,12); | ||
} | ||
translate([0,0,bearing624OD/2-4]) rotate([90,0,0]) cylinder(r=2,h=10,center=true); | ||
} | ||
|
||
translate([0,25-2-12/2,11/2+bearing624OD/2-0.01]) | ||
difference(){ | ||
union(){ | ||
cube([12,4,bearing624OD],center=true); | ||
translate([0,-2,-6.5-0.1]) rotate([0,90,0]) fillet(5,12); | ||
} | ||
translate([0,0,bearing624OD/2-4]) rotate([90,0,0]) cylinder(r=2,h=10,center=true); | ||
} | ||
} | ||
} | ||
} | ||
|
||
module cross_sectionB(thickness,minkwid=4.5){ | ||
translate([0,0,-thickness/4]) | ||
minkowski(){ | ||
linear_extrude(height=thickness/2) | ||
translate([-3.5,18,0]) square([10,50],center=true); | ||
cylinder(r=minkwid,h=thickness/2,center=true); | ||
} | ||
} | ||
|
||
module rodsnbushings(mode=1){ | ||
translate([0,0,bushingL/2]) | ||
translate([12-1.5,0,0]) cylinder(r=bushingOD/2,h=bushingL+0.05,center=true); | ||
|
||
translate([0,0,bushingL/2]) | ||
translate([12-1.5-22,0,0]) cylinder(r=bushingOD/2,h=bushingL+0.05,center=true); | ||
} | ||
|
||
module fillet(rad,height){ | ||
translate([-rad,-rad,0]) | ||
difference(){ | ||
translate([0,0,-height/2]) cube([rad+0.01,rad+0.01,height]); | ||
cylinder(h=height+1,r=rad,center=true); | ||
}} |