Finished gear covers. Identical for both axis

pull/20/head
Carlos Garcia 2014-09-11 14:06:23 +02:00
parent 4f840da610
commit 1cffd7e507
5 changed files with 42515 additions and 57459 deletions

View File

@ -23,13 +23,13 @@ module Cyclone_X_leftFrame(isLeft=true) {
screwSize = 3; // M3, M4, etc (integers only) screwSize = 3; // M3, M4, etc (integers only)
motorWallSeparation = 5; motorWallSeparation = 5;
motorRotatedOffset = 10; motorRotatedOffset = 5;
gearWallSeparation = 5; gearWallSeparation = 5;
partThickness = X_frames_additional_thickness+screwSize*2; partThickness = X_frames_additional_thickness+screwSize*2;
dimX = partThickness; dimX = partThickness;
dimY = max(-axes_Xreference_posY,axes_Xsmooth_separation+axes_XgearSeparation*cos(motorRotatedOffset)+Xmotor_sideLen/2+2); dimY = max(-axes_Xreference_posY,axes_Xsmooth_separation+axes_XgearSeparation*cos(motorRotatedOffset)+Xmotor_sideLen/2+1.6);
dimZ = axes_Yreference_height+axes_Xreference_height+axes_Xsmooth_separation; dimZ = axes_Yreference_height+axes_Xreference_height+axes_Xsmooth_separation;
@ -44,15 +44,18 @@ module Cyclone_X_leftFrame(isLeft=true) {
module Cyclone_XsubPart_gearCover() { module Cyclone_XsubPart_gearCover() {
margin = 4; margin = 4;
rodGearAddedMargin = 1; rodGearAddedMargin = 0;
effectiveXgearSeparation = axes_XgearSeparation+0.5;
wallThickness = 0.4*4; wallThickness = 0.4*4;
screwHeadSpaceHeight = 4; screwHeadSpaceHeight = 4;
screwHeadSpaceDiam = 7; screwHeadSpaceDiam = 6;
coverHeight = 16; coverHeight = 16;
coverExtraHeight = 5; coverExtraHeight = 5;
coverExtraRadius = -7; coverExtraRadius = -7;
nema_screw_separation = lookup(NemaDistanceBetweenMountingHoles, Nema17); nema_screw_separation = lookup(NemaDistanceBetweenMountingHoles, Nema17);
truncationAngle = 10;
motorGearRadius = axes_XgearSeparation/(1+axes_XgearRatio)+margin; motorGearRadius = axes_XgearSeparation/(1+axes_XgearRatio)+margin;
rodGearRadius = axes_XgearSeparation/(1+1/axes_XgearRatio)+margin+rodGearAddedMargin; rodGearRadius = axes_XgearSeparation/(1+1/axes_XgearRatio)+margin+rodGearAddedMargin;
@ -66,7 +69,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
cylinder(r1=rodGearRadius+wallThickness, r2=rodGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness); cylinder(r1=rodGearRadius+wallThickness, r2=rodGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness);
// Translate to motor position // Translate to motor position
rotate([motorRotatedOffset,0,0]) { rotate([motorRotatedOffset,0,0]) {
translate([0,axes_XgearSeparation,0]) translate([0,effectiveXgearSeparation,0])
rotate([-motorRotatedOffset,0,0]) { rotate([-motorRotatedOffset,0,0]) {
// Cover for the motor gear // Cover for the motor gear
rotate([0,90,0]) cylinder(r=motorGearRadius+wallThickness, h=coverHeight); rotate([0,90,0]) cylinder(r=motorGearRadius+wallThickness, h=coverHeight);
@ -80,6 +83,9 @@ module Cyclone_X_leftFrame(isLeft=true) {
} }
translate([-0.02,0,0]) translate([-0.02,0,0])
union() { union() {
// Truncation for avoiding collisions with Y carriage (needed for the Y gear cover)
translate([0,-rodGearRadius/2,-rodGearRadius-0.5])
rotate([0,90+truncationAngle,0]) cube(rodGearRadius);
// Hole for the rod gear // Hole for the rod gear
rotate([0,90,0]) rotate([0,90,0])
cylinder(r=rodGearRadius, h=coverHeight); cylinder(r=rodGearRadius, h=coverHeight);
@ -90,7 +96,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
cylinder(r=rodGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1); cylinder(r=rodGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1);
// Translate to motor position // Translate to motor position
rotate([motorRotatedOffset,0,0]) { rotate([motorRotatedOffset,0,0]) {
translate([0,axes_XgearSeparation,0]) translate([0,effectiveXgearSeparation,0])
rotate([-motorRotatedOffset,0,0]) { rotate([-motorRotatedOffset,0,0]) {
difference() { difference() {
union() { union() {
@ -101,7 +107,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
rotate([0,90,0]) cylinder(r=motorGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1); rotate([0,90,0]) cylinder(r=motorGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1);
// Outer hole for the support screw // Outer hole for the support screw
translate([0,-nema_screw_separation/2,nema_screw_separation/2]) translate([0,-nema_screw_separation/2,nema_screw_separation/2])
rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=coverHeight+coverExtraHeight); rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=coverHeight+coverExtraHeight*2);
} }
// Support screw holder // Support screw holder
translate([0,-nema_screw_separation/2,nema_screw_separation/2]) translate([0,-nema_screw_separation/2,nema_screw_separation/2])
@ -110,11 +116,21 @@ module Cyclone_X_leftFrame(isLeft=true) {
// Inner hole for the support screw // Inner hole for the support screw
translate([0,-nema_screw_separation/2,nema_screw_separation/2]) translate([0,-nema_screw_separation/2,nema_screw_separation/2])
rotate([0,90,0]) cylinder(r=(screwSize+1)/2, h=coverHeight+0.1); rotate([0,90,0]) cylinder(r=(screwSize+1)/2, h=coverHeight+0.1);
// Holes for the other two screws // Holes for the other three screws
translate([0,nema_screw_separation/2,nema_screw_separation/2])
rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
translate([screwHeadSpaceHeight/2,nema_screw_separation/2,nema_screw_separation/2])
rotate([0,90,0]) sphere(r=screwHeadSpaceDiam/2);
translate([0,nema_screw_separation/2,-nema_screw_separation/2]) translate([0,nema_screw_separation/2,-nema_screw_separation/2])
rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight); rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
translate([screwHeadSpaceHeight/2,nema_screw_separation/2,-nema_screw_separation/2])
rotate([0,90,0]) sphere(r=screwHeadSpaceDiam/2);
translate([0,-nema_screw_separation/2,-nema_screw_separation/2]) translate([0,-nema_screw_separation/2,-nema_screw_separation/2])
rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight); rotate([0,90,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
translate([screwHeadSpaceHeight/2,-nema_screw_separation/2,-nema_screw_separation/2])
rotate([0,90,0]) sphere(r=screwHeadSpaceDiam/2);
} }
} }
} }

View File

@ -48,15 +48,18 @@ module Cyclone_Y_frontFrame() {
module Cyclone_YsubPart_gearCover() { module Cyclone_YsubPart_gearCover() {
margin = 4; margin = 4;
rodGearAddedMargin = 1; rodGearAddedMargin = 0;
effectiveYgearSeparation = axes_YgearSeparation+0.5;
wallThickness = 0.4*4; wallThickness = 0.4*4;
screwHeadSpaceHeight = 4; screwHeadSpaceHeight = 4;
screwHeadSpaceDiam = 7; screwHeadSpaceDiam = 6;
coverHeight = 16; coverHeight = 16;
coverExtraHeight = 5; coverExtraHeight = 5;
coverExtraRadius = -7; coverExtraRadius = -7;
nema_screw_separation = lookup(NemaDistanceBetweenMountingHoles, Nema17); nema_screw_separation = lookup(NemaDistanceBetweenMountingHoles, Nema17);
truncationAngle = 10;
motorGearRadius = axes_YgearSeparation/(1+axes_YgearRatio)+margin; motorGearRadius = axes_YgearSeparation/(1+axes_YgearRatio)+margin;
rodGearRadius = axes_YgearSeparation/(1+1/axes_YgearRatio)+margin+rodGearAddedMargin; rodGearRadius = axes_YgearSeparation/(1+1/axes_YgearRatio)+margin+rodGearAddedMargin;
@ -70,65 +73,70 @@ module Cyclone_Y_frontFrame() {
cylinder(r1=rodGearRadius+wallThickness, r2=rodGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness); cylinder(r1=rodGearRadius+wallThickness, r2=rodGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness);
// Translate to motor position // Translate to motor position
rotate([0,-motorRotatedOffset,0]) { rotate([0,-motorRotatedOffset,0]) {
translate([-axes_YgearSeparation,0,0]) translate([-effectiveYgearSeparation,0,0])
rotate([0,motorRotatedOffset,0]) { rotate([0,motorRotatedOffset,0]) {
// Cover for the motor gear // Cover for the motor gear
rotate([90,0,0]) cylinder(r=motorGearRadius+wallThickness, h=coverHeight); rotate([90,0,0]) cylinder(r=motorGearRadius+wallThickness, h=coverHeight);
translate([0,-coverHeight,0]) translate([0,-coverHeight,0])
rotate([90,0,0]) cylinder(r1=motorGearRadius+wallThickness, r2=motorGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness); rotate([90,0,0]) cylinder(r1=motorGearRadius+wallThickness, r2=motorGearRadius+wallThickness+coverExtraRadius, h=coverExtraHeight+wallThickness);
// Cylinder for the support screw // Cylinder for the support screw
translate([nema_screw_separation/2,0,nema_screw_separation/2]) translate([nema_screw_separation/2,0,-nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2+wallThickness, h=coverHeight); rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2+wallThickness, h=coverHeight);
} }
} }
} }
translate([0,0.01,0]) translate([0,0.01,0])
union() { union() {
// Truncation for avoiding collisions with Y carriage
translate([-rodGearRadius/2,0,rodGearRadius+0.5])
rotate([90-truncationAngle,0,0]) cube(rodGearRadius);
rotate([90,0,0])
cylinder(r=rodGearRadius, h=coverHeight);
// Hole for the rod gear
rotate([90,0,0])
cylinder(r=rodGearRadius, h=coverHeight);
translate([0,-coverHeight+0.02,0])
rotate([90,0,0])
cylinder(r1=rodGearRadius, r2=rodGearRadius+coverExtraRadius, h=coverExtraHeight);
rotate([90,0,0])
cylinder(r=rodGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1);
// Translate to motor position // Translate to motor position
rotate([0,-motorRotatedOffset,0]) { rotate([0,-motorRotatedOffset,0]) {
translate([-axes_YgearSeparation,0,0]) translate([-effectiveYgearSeparation,0,0])
rotate([0,motorRotatedOffset,0]) { rotate([0,motorRotatedOffset,0]) {
difference() { difference() {
union() { union() {
// Translate to the rod position
rotate([0,-motorRotatedOffset,0])
translate([+axes_YgearSeparation,0,0])
rotate([0,motorRotatedOffset,0]) {
rotate([90,0,0])
cylinder(r=rodGearRadius, h=coverHeight);
// Hole for the rod gear
rotate([90,0,0])
cylinder(r=rodGearRadius, h=coverHeight);
translate([0,-coverHeight+0.02,0])
rotate([90,0,0])
cylinder(r1=rodGearRadius, r2=rodGearRadius+coverExtraRadius, h=coverExtraHeight);
rotate([90,0,0])
cylinder(r=rodGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1);
}
// Hole for the motor gear // Hole for the motor gear
rotate([90,0,0]) cylinder(r=motorGearRadius, h=coverHeight); rotate([90,0,0]) cylinder(r=motorGearRadius, h=coverHeight);
translate([0,-coverHeight+0.02,0]) translate([0,-coverHeight+0.02,0])
rotate([90,0,0]) cylinder(r1=motorGearRadius, r2=motorGearRadius+coverExtraRadius, h=coverExtraHeight); rotate([90,0,0]) cylinder(r1=motorGearRadius, r2=motorGearRadius+coverExtraRadius, h=coverExtraHeight);
rotate([90,0,0]) cylinder(r=motorGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1); rotate([90,0,0]) cylinder(r=motorGearRadius+coverExtraRadius, h=coverHeight+coverExtraHeight+wallThickness+0.1);
// Outer hole for the support screw // Outer hole for the support screw
translate([nema_screw_separation/2,0,nema_screw_separation/2]) translate([nema_screw_separation/2,0,-nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=coverHeight+coverExtraHeight); rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=coverHeight+coverExtraHeight*2);
} }
// Support screw holder // Support screw holder
translate([nema_screw_separation/2,0,nema_screw_separation/2]) translate([nema_screw_separation/2,0,-nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2+wallThickness, h=wallThickness); rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2+wallThickness, h=wallThickness);
} }
// Inner hole for the support screw // Inner hole for the support screw
translate([nema_screw_separation/2,0,nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=(screwSize+1)/2, h=coverHeight+0.1);
// Holes for the other two screws
translate([nema_screw_separation/2,0,-nema_screw_separation/2]) translate([nema_screw_separation/2,0,-nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight); rotate([90,0,0]) cylinder(r=(screwSize+1)/2, h=coverHeight+0.1);
// Holes for the other three screws
translate([nema_screw_separation/2,0,nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
translate([nema_screw_separation/2,-screwHeadSpaceHeight/2,nema_screw_separation/2])
rotate([90,0,0]) sphere(r=screwHeadSpaceDiam/2);
translate([-nema_screw_separation/2,0,-nema_screw_separation/2]) translate([-nema_screw_separation/2,0,-nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight); rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
// Hole for the Y idler stand part translate([-nema_screw_separation/2,-screwHeadSpaceHeight/2,-nema_screw_separation/2])
*translate([-10,-coverHeight-2,-5]) rotate([90,0,0]) sphere(r=screwHeadSpaceDiam/2);
scale(-1) cube([50,50,50]);
translate([-nema_screw_separation/2,0,nema_screw_separation/2])
rotate([90,0,0]) cylinder(r=screwHeadSpaceDiam/2, h=screwHeadSpaceHeight/2);
translate([-nema_screw_separation/2,-screwHeadSpaceHeight/2,nema_screw_separation/2])
rotate([90,0,0]) sphere(r=screwHeadSpaceDiam/2);
} }
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff