Updated Y carriage parts (better endstop integration, softer linear bearing holders). Integrated X endstop in X right frame
parent
83173f4e3c
commit
58e116db19
|
@ -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])
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||

|
||||
|
|
|
@ -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
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 |
Loading…
Reference in New Issue