Updated Y carriage parts (better endstop integration, softer linear bearing holders). Integrated X endstop in X right frame

pull/20/head
Carlos Garcia 2014-08-28 19:36:19 +02:00
parent 83173f4e3c
commit 58e116db19
8 changed files with 69595 additions and 70444 deletions

View File

@ -81,6 +81,17 @@ module Cyclone_X_leftFrame(isLeft=true) {
}
module Cyclone_X_endstopHolder(holes=false) {
// Endstop holder
translate([-partThickness-0.04,19,-5+axes_Xsmooth_separation])
rotate([-60,0,0]) {
rotate([0,0,-90]) mirror([1,0,0]) endstop_holder(holes, shortNuts=true);
if(holes)
cube([partThickness+1,100,50]);
}
}
difference() {
// Main block
union() {
@ -88,14 +99,14 @@ module Cyclone_X_leftFrame(isLeft=true) {
cube([dimX,dimY,dimZ-axes_Xsmooth_separation]);
translate([-footWidth/2+dimX,dimY/2,footThickness/2]) bcube([footWidth,dimY,footThickness], cr=corner_radius, cres=10);
}
//translate([-axes_Xreference_posX-dimX-0.01,axes_Xreference_posY+axes_Xsmooth_separation,-axes_Yreference_height])
// cube([dimX,dimY-axes_Xsmooth_separation,dimZ]);
rodHolder(rodD=axes_Ysmooth_rodD, screwSize=screwSize, height=axes_Yreference_height, sideLen=-axes_Xreference_posX-1);
// TRANSLATE REFERENCE POSITION to the left frame, X lower smooth rod end
translate([-axes_Xreference_posX,axes_Xreference_posY,axes_Xreference_height]) {
// TRANSLATE REFERENCE POSITION to the threaded rod
translate([-0.01,axes_Xsmooth_separation,0]) {
rotate([0,-90,0]) cylinder(r=axes_Xsmooth_separation,h=partThickness);
if(!isLeft)
Cyclone_X_endstopHolder(holes=false);
}
}
}
@ -108,18 +119,23 @@ module Cyclone_X_leftFrame(isLeft=true) {
rodHolder(rodD=axes_Xsmooth_rodD, screwSize=screwSize, negative=true);
// TRANSLATE REFERENCE POSITION to the threaded rod
translate([+0.01,axes_Xsmooth_separation,0]) {
// Plastic saving holes
translate([0,-15,-40]) rotate([0,-90,0]) cylinder(r=15,h=partThickness*2);
translate([0,30,-40]) rotate([0,-90,0]) cylinder(r=15,h=partThickness*2);
translate([0,-15,-80]) rotate([0,-90,0]) cylinder(r=15,h=partThickness*2);
rotate([0,-90,0]) bearingHole(depth=bearingDepth, thickness=partThickness);
//rotate([0,0,90]) standard_rod(diam=axes_Xthreaded_rodD+10, length=partThickness*4, threaded=false, renderPart=true, center=true);
// Translate to motor position
if(isLeft)
translate([-motorWallSeparation,0,0])
rotate([motorRotatedOffset,0,0])
translate([0,axes_XgearSeparation,0])
rotate([-motorRotatedOffset,0,0])
rotate([0,90,0]) stepperMotor_mount(motorWallSeparation, sideLen=Xmotor_sideLen, slideOut=true);
translate([-motorWallSeparation,0,0])
rotate([motorRotatedOffset,0,0])
translate([0,axes_XgearSeparation,0])
rotate([-motorRotatedOffset,0,0])
rotate([0,90,0]) stepperMotor_mount(motorWallSeparation, sideLen=Xmotor_sideLen, slideOut=true);
// Endstop holder
if(!isLeft)
Cyclone_X_endstopHolder(holes=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])

View File

@ -15,8 +15,8 @@ module Cyclone_YsubPart_nutHolder() {
footThickness = 10;
screwSeparation = 10;
rod_nut_len = 0.8*axes_Ythreaded_rodD;
dimX = axes_Ythreaded_rodD*2+5;
dimY = screwSeparation+20;
dimX = axes_Ythreaded_rodD*2+6;
dimY = screwSeparation+22;
dimZ = workbed_separation_from_Y_threaded_rod;
holderExtension = 10;
rodTolerance = 0.5;
@ -27,7 +27,7 @@ module Cyclone_YsubPart_nutHolder() {
difference() {
// Main shape
translate([0,0,dimZ/2-holderExtension/2])
bcube([dimX,dimY,dimZ+holderExtension],cr=3,cres=10);
bcube([dimX,dimY,dimZ+holderExtension],cr=2,cres=10);
// Hole for the rod
hull() {
standard_rod(diam=axes_Ythreaded_rodD+rodTolerance, length=dimY*4, threaded=true, renderPart=true, center=true);
@ -194,7 +194,7 @@ module Cyclone_Y_carriage() {
}
} else {
if(draw_references) color("red") %frame(20);
Cyclone_YsubPart_nutHolder();
rotate([0,0,180]) Cyclone_YsubPart_nutHolder();
translate([0,0,axes_Y_smoothThreaded_verticalSeparation]) {
Cyclone_YsubPart_linearBearingHolders();
difference() {

View File

@ -3,11 +3,12 @@ Hardware for Cyclone-PCB-Factory
Version 2.0a
--
Adressing all the issues from the original design, implementing improvements by yOPERO, Martin Zabojnik and others.
Adressing all the issues from the original design, and implementing improvements by yOPERO, Martin Zabojnik and others.
* More robust design with tougher parts:
* Better holders for the linear bearings (vibration makes them slide away)
* Better holders for the linear bearings (vibration made them slide away)
* Reinforced nut/screw holders
* Improved [gears](INHERITED) with smoother edges
* Attachment for a vacuum cleaner
* Better scalability (parameterized design)
* Using a [Dremel 200](http://www.dremel.com/en-us/tools/Pages/ToolDetail.aspx?pid=200+Series) as the spindle motor
@ -16,12 +17,11 @@ Adressing all the issues from the original design, implementing improvements by
Work in progress. Pending tasks:
--
* Improve vacuum cleaner attachment (make it detachable)
* Create protective covers for the gears
* Endstop integration for X, Y and Z
* Finish protective covers for the gears
* Endstop integration for Z
* Better plastic-saving holes for the X frames
* Improve the nut holder in the X carriage (with the same spring mechanism as in Y)
* Re-design the [Z carriage](INHERITED) after testing performance
* Re-design the [gears](INHERITED) with smoother edges
![ScreenShot](output/cyclone.png)

View File

@ -232,7 +232,7 @@ module linearBearing_single(model="LM8UU", renderPart=false, echoPart=false) {
if(echoPart) echo(str("BOM: Linear bearing. Model ", model));
}
module linearBearingHole(model="LM8UU", lateralExtension=10, pressureFitTolerance=0.5, lengthExtension=6, holderLength=1.5, tolerance=0.1) {
module linearBearingHole(model="LM8UU", lateralExtension=10, pressureFitTolerance=0.25, lengthExtension=6, holderLength=1.5, tolerance=0.1) {
linearBearingLength = linearBearing_L(model);
linearBearingDiameter = linearBearing_D(model);
@ -280,8 +280,8 @@ module control_board() {
}
module endstop_holder(holes=false) {
boardX = 39.53;
module endstop_holder(holes=false, shortNuts=false) {
boardX = 41;
boardY = 16.05;
boardZ = 1.62;
@ -294,7 +294,7 @@ module endstop_holder(holes=false) {
if(holes) {
translate([0,0,-boardZ]) {
// PCB
cube([boardX,boardY,boardZ]);
cube([boardX,boardY,boardZ+10]);
// Endstop pins
translate([6.2,6.5,-3])
cube([13.5,5,3]);
@ -305,10 +305,10 @@ module endstop_holder(holes=false) {
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);
hole_for_screw(size=3,length=15,nutDepth=shortNuts?5:0,nutAddedLen=shortNuts?0: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);
hole_for_screw(size=3,length=15,nutDepth=shortNuts?5:0,nutAddedLen=shortNuts?0:5,captiveLen=10,rot=90);
}
} else {
translate([holderX/2,holderY/2,-holderZ/2-boardZ])
@ -319,6 +319,9 @@ module endstop_holder(holes=false) {
// Endstop
color("grey") translate([6.8,0,0])
%cube([12.8,6.5,6.3]);
color("lightgrey") translate([6.8+12.8-1,0,0])
rotate([0,0,180+15])
%cube([12.8,0.2,6.3]);
// Screws
translate([0,screwWallSep,3]) {
translate([3.7,0,0])

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: 47 KiB

After

Width:  |  Height:  |  Size: 57 KiB