Added endstop holder for the Y axis, inverted base screws

pull/20/head
Carlos Garcia 2014-08-27 19:36:45 +02:00
parent 424bf0d11f
commit 83173f4e3c
10 changed files with 41914 additions and 51707 deletions

View File

@ -36,7 +36,7 @@ base_size_Y = 261.62+animatePart(2);
base_thickness = 8;
base_corner_radius = 20;
base_corner_res = 0;
foot_offset = 40;
foot_offset = 25;
// Parameters for the axes sizes

View File

@ -119,7 +119,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
rotate([motorRotatedOffset,0,0])
translate([0,axes_XgearSeparation,0])
rotate([-motorRotatedOffset,0,0])
rotate([0,90,0]) stepperMotor_mount(motorWallSeparation, slide_distance=5, sideLen=Xmotor_sideLen, slideOut=true);
rotate([0,90,0]) stepperMotor_mount(motorWallSeparation, sideLen=Xmotor_sideLen, slideOut=true);
translate([0,0,axes_Xsmooth_separation]) {
rotate([0,0,90]) standard_rod(diam=axes_Xsmooth_rodD, length=partThickness*4, threaded=false, renderPart=true, center=true);
rotate([0,0,-90])
@ -131,15 +131,15 @@ module Cyclone_X_leftFrame(isLeft=true) {
translate([-axes_Xreference_posX-dimX-footSeparation,axes_Xreference_posY+footSeparation,-axes_Yreference_height+footThickness]) {
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true);
translate([0,dimY/2,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true);
translate([0,dimY-2*footSeparation,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true);
}
}
@ -176,15 +176,15 @@ module Cyclone_X_leftFrame(isLeft=true) {
translate([-axes_Xreference_posX-dimX-footSeparation,axes_Xreference_posY+footSeparation,-axes_Yreference_height+footThickness]) {
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true, autoNutOffset=true, echoPart=true);
translate([0,dimY/2,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true, autoNutOffset=true, echoPart=true);
translate([0,dimY-2*footSeparation,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, invert=true, autoNutOffset=true, echoPart=true);
}
}
@ -205,11 +205,11 @@ module rodHolder(rodD=8.5, screwSize=3, height=0, sideLen=0, thickness=5, space=
translate([screwSize+screwAditionalDistance,-dimY/2,dimZ])
rotate([-90,0,0])
rotate([0,0,180])
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10);
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10, rot=90);
translate([-screwSize-screwAditionalDistance,-dimY/2,dimZ])
rotate([-90,0,0])
rotate([0,0,180])
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10);
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10, rot=90);
} else {
difference() {
union() {
@ -222,11 +222,11 @@ module rodHolder(rodD=8.5, screwSize=3, height=0, sideLen=0, thickness=5, space=
translate([screwSize+screwAditionalDistance,-dimY/2,dimZ])
rotate([-90,0,0])
rotate([0,0,180])
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10);
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10, rot=90);
translate([-screwSize-screwAditionalDistance,-dimY/2,dimZ])
rotate([-90,0,0])
rotate([0,0,180])
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10);
hole_for_screw(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=10, rot=90);
standard_rod(diam=rodD, length=dimY*4, threaded=false, renderPart=true, center=true);
rodHolder(rodD=rodD, screwSize=screwSize, negative=true);
}
@ -234,11 +234,11 @@ module rodHolder(rodD=8.5, screwSize=3, height=0, sideLen=0, thickness=5, space=
translate([screwSize+screwAditionalDistance,-dimY/2,dimZ+0.01])
rotate([-90,0,0])
rotate([0,0,180])
screw_and_nut(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=0, echoPart=true);
screw_and_nut(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=0, rot=90, echoPart=true);
translate([-screwSize-screwAditionalDistance,-dimY/2,dimZ+0.01])
rotate([-90,0,0])
rotate([0,0,180])
screw_and_nut(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=0, echoPart=true);
screw_and_nut(size=screwSize,length=dimZ+15,nutDepth=5,nutAddedLen=0,captiveLen=0, rot=90, echoPart=true);
}
}

View File

@ -93,22 +93,22 @@ module Cyclone_Y_frontFrame() {
translate([footSeparation+dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([dimX/3,dimY/2+footSeparation+foot_additional_separation,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([-footSeparation-foot_additional_separation-motor_YgearSeparation_projected-Ymotor_sideLen/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
}
// Translate to motor axis position
rotate([0,-motorRotatedOffset,0]) {
translate([-axes_XgearSeparation,0,0])
rotate([0,motorRotatedOffset,0]) {
translate([0,motorWallSeparation-0.01,0])
rotate([0,0,90]) rotate([0,-90,0]) stepperMotor_mount(motorWallSeparation, slide_distance=5, sideLen=Ymotor_sideLen, slideOut=false);
rotate([0,0,90]) rotate([0,-90,0]) stepperMotor_mount(motorWallSeparation, sideLen=Ymotor_sideLen, slideOut=false);
}
}
}
@ -118,15 +118,15 @@ module Cyclone_Y_frontFrame() {
translate([footSeparation+dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
translate([dimX/3,dimY/2+footSeparation+foot_additional_separation,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
translate([-footSeparation-foot_additional_separation-motor_YgearSeparation_projected-Ymotor_sideLen/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
}
// Translate to motor position
rotate([0,-motorRotatedOffset,0]) {
@ -158,6 +158,8 @@ module Cyclone_Y_frontFrame() {
module Cyclone_Y_backFrame() {
screwSize = 3; // M3, M4, etc (integers only)
@ -193,7 +195,13 @@ module Cyclone_Y_backFrame() {
translate([0,dimY/2+footSeparation+foot_additional_separation,0])
cylinder(r=dimY/2,h=footThickness);
}
translate([0,-dimY-0.01,dimX/2])
endstop_holder(holes=false);
}
translate([0,-dimY-0.01,dimX/2])
endstop_holder(holes=true);
translate([0,0.01,0])
rotate([90,0,0])
bearingHole(depth=bearingDepth, thickness=partThickness);
@ -201,15 +209,15 @@ module Cyclone_Y_backFrame() {
translate([-footSeparation-dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([footSeparation+dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([0,dimY/2+footSeparation+foot_additional_separation,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
}
}
@ -218,15 +226,15 @@ module Cyclone_Y_backFrame() {
translate([-footSeparation-dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
translate([footSeparation+dimX/2,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
translate([0,dimY/2+footSeparation+foot_additional_separation,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true, autoNutOffset=true, echoPart=true);
}
}
rotate([90,0,0])
@ -303,7 +311,7 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
translate([2.5+holderOuterRadius,dimY/2,holderOuterRadius])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=screwLength+10,nutDepth=10,nutAddedLen=0,captiveLen=10);
hole_for_screw(size=screwSize,length=screwLength+10,nutDepth=10,nutAddedLen=0,captiveLen=10, rot=90);
translate([dimX/2,dimY/2,0])
cube([dimX+1,dimY+1,slotHeight],center=true);
translate([(dimX-holderOuterRadius)/2,-0.1,-(dimZ+axes_Ysmooth_rodD/2)/2])
@ -314,15 +322,15 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
translate([-holderOuterRadius-footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([holderOuterRadius*2+footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
translate([holderOuterRadius/2,dimY/2+footSeparation,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
}
}
}
@ -330,20 +338,20 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
translate([2.5+holderOuterRadius,dimY/2,holderOuterRadius])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=screwLength+10,nutDepth=10,nutAddedLen=0,captiveLen=0, echoPart=true);
screw_and_nut(size=screwSize,length=screwLength+10,nutDepth=10,nutAddedLen=0,captiveLen=0, rot=90, echoPart=true);
translate([0,dimY/2,-axes_Yreference_height+footThickness]) {
translate([-holderOuterRadius-footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, rot=90, invert=true, echoPart=true);
translate([holderOuterRadius*2+footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, rot=90, invert=true, echoPart=true);
translate([holderOuterRadius/2,dimY/2+footSeparation,0])
rotate([0,90,0])
rotate([0,0,90])
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, echoPart=true);
screw_and_nut(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, autoNutOffset=true, rot=90, invert=true, echoPart=true);
}
}

View File

@ -68,10 +68,11 @@ module beveledBase(size=[100,200,10], radius=10, res=15, renderPart=false, echoP
include <MCAD/nuts_and_bolts.scad>
module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0.45,rot=0, echoPart=false) {
module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0.45,rot=0,invert=false, echoPart=false) {
radius = METRIC_NUT_AC_WIDTHS[size]/2+tolerance;
height = METRIC_NUT_THICKNESS[size]+tolerance;
translate([0,-length/2,0]) {
rotate([0,0,invert ? 180 : 0])
translate([0,invert ? length/2 : -length/2,0]) {
translate([0,-length/2+height+nutAddedLen+nutDepth-0.01,0])
scale([1,(height+nutAddedLen)/height,1])
rotate([90,0,0])
@ -88,14 +89,15 @@ module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tol
if(echoPart) echo(str("BOM: Nut. M", size, "."));
}
module screw_and_nut(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0, autoNutOffset=false, renderPart=false, echoPart=false) {
module screw_and_nut(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0, autoNutOffset=false, rot=0, invert=false, renderPart=false, echoPart=false) {
renderStandardPart(renderPart)
color(BlackPaint)
difference() {
if(autoNutOffset)
hole_for_screw(size,length+METRIC_NUT_THICKNESS[size],nutDepth,nutAddedLen,captiveLen,tolerance, echoPart=echoPart);
hole_for_screw(size,length+METRIC_NUT_THICKNESS[size],nutDepth,nutAddedLen,captiveLen,tolerance,rot,invert, echoPart);
else
hole_for_screw(size,length,nutDepth,nutAddedLen,captiveLen,tolerance, echoPart=echoPart);
hole_for_screw(size,length,nutDepth,nutAddedLen,captiveLen,tolerance,rot,invert, echoPart);
translate([0,invert ? -length-METRIC_NUT_THICKNESS[size] : 0,0])
rotate([0,45,0]) {
cube([1,1,10],center=true);
cube([10,1,1],center=true);
@ -149,7 +151,7 @@ module screw_single(size=3,length=10,tolerance=0, renderPart=false, echoPart=fal
use <MCAD/motors.scad>
include <MCAD/stepper.scad>
module stepperMotor_mount(height, tolerance=0.15, slide_distance=5, sideLen=42.20, slideOut=false, renderPart=false) {
module stepperMotor_mount(height, tolerance=0.15, slide_distance=6, sideLen=42.20, slideOut=false, renderPart=false) {
render() union() {
linear_extrude(height=height) offset(delta = tolerance, join_type = "round") union() {
stepper_motor_mount(nema_standard=17, slide_distance=slide_distance, mochup=false);
@ -277,3 +279,56 @@ module control_board() {
}
}
module endstop_holder(holes=false) {
boardX = 39.53;
boardY = 16.05;
boardZ = 1.62;
holderX = 29;
holderY = 8;
holderZ = 6;
screwWallSep = 2.75;
if(holes) {
translate([0,0,-boardZ]) {
// PCB
cube([boardX,boardY,boardZ]);
// Endstop pins
translate([6.2,6.5,-3])
cube([13.5,5,3]);
// Connector pins
translate([26.7,3.5,-3])
cube([3,7.8,3]);
}
translate([0,screwWallSep,3]) {
translate([3.7,0,0])
rotate([90,0,0])
hole_for_screw(size=3,length=15,nutDepth=0,nutAddedLen=5,captiveLen=10,rot=90);
translate([22.7,0,0])
rotate([90,0,0])
hole_for_screw(size=3,length=15,nutDepth=0,nutAddedLen=5,captiveLen=10,rot=90);
}
} else {
translate([holderX/2,holderY/2,-holderZ/2-boardZ])
bcube([holderX,holderY,holderZ], cr=2, cres=4);
// PCB
color("lightgrey") translate([0,0,-boardZ])
%cube([boardX,boardY,boardZ]);
// Endstop
color("grey") translate([6.8,0,0])
%cube([12.8,6.5,6.3]);
// Screws
translate([0,screwWallSep,3]) {
translate([3.7,0,0])
rotate([90,0,0])
screw_and_nut(size=3,length=10,nutDepth=0, rot=90, echoPart=true);
translate([22.7,0,0])
rotate([90,0,0])
screw_and_nut(size=3,length=10,nutDepth=0, rot=90, echoPart=true);
}
}
}

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 47 KiB