Improved linear bearing holder. Work on the XZ axis

pull/20/head
Carlos Garcia 2014-07-25 19:08:12 +02:00
parent c9f42a2f8c
commit 9ed75a0d3b
4 changed files with 1806 additions and 2745 deletions

View File

@ -55,16 +55,16 @@ axes_Zthreaded_rodD = 8.5+animatePart(4,dist=5);
// Z axis reference is the Z threaded rod, at the height of the Z nut, and relative to the X reference
axes_Yreference_height = 42+animatePart(5);
axes_Xreference_height = 70+animatePart(6); // relative to Y reference
axes_Zreference_height = 45+animatePart(7)+animatePart(9); // relative to X reference
axes_Zreference_height = -5+animatePart(7)+animatePart(9); // relative to X reference
axes_Xreference_posY = -80-animatePart(8)-animatePart(9); // relative to Y reference. Moves the X axis towards the front of the machine
axes_Zreference_posY = 15; // relative to X reference. Positions Z nut between the Y rods
axes_Zreference_posY = 14; // relative to X reference. Positions Z rods between the Y rods
axes_Y_threaded_height = 30+animatePart(5);
axes_Ysmooth_separation = 165+animatePart(1,overlap=0);
axes_Xsmooth_separation = 40+animatePart(9);
axes_Zsmooth_separation = 35+animatePart(10,overlap=0);
axes_Zsmooth_separation = 40+animatePart(10,overlap=0);
// Carriage positions (for rendering)
@ -172,12 +172,14 @@ render_2D_or_3D() {
rotate([0,0,-90]) standard_rod(diam=axes_Xsmooth_rodD, length=axes_Xsmooth_rodLen, threaded=false, echoPart=true);
// TRANSLATE REFERENCE POSITION to the X carriage (centered)
// TRANSLATE REFERENCE POSITION to the X carriage (centered), X lower smooth rod
translate([axes_Xcarriage_pos,0,0]) {
if(draw_references) %frame();
Cyclone_X_carriage();
//Cyclone_X_carriage();
rotate([0,90,0]) linearBearing_single(model=linearBearingModel, echoPart=true);
rotate([0,-90,0]) linearBearing_single(model=linearBearingModel, echoPart=true);
// TRANSLATE REFERENCE POSITION to the Z axis origin (top of X carriage, right smooth rod)
translate([-axes_Zsmooth_separation/2,axes_Zreference_posY,axes_Zreference_height]) {
@ -189,15 +191,18 @@ render_2D_or_3D() {
translate([axes_Zsmooth_separation,0,0])
rotate([90,0,0]) standard_rod(diam=axes_Zsmooth_rodD, length=axes_Zsmooth_rodLen, threaded=false, echoPart=true);
// Draw Z threaded rod
translate([axes_Zsmooth_separation/2,0,0])
translate([axes_Zsmooth_separation/2,axes_Xsmooth_separation-axes_Zreference_posY-axes_Zreference_posY,0])
rotate([90,0,0]) standard_rod(diam=axes_Zthreaded_rodD, length=axes_Zthreaded_rodLen, threaded=true, echoPart=true);
// TRANSLATE REFERENCE POSITION to the Z axis reference
translate([0,0,axes_Zcarriage_pos]) {
if(draw_references) %frame();
Cyclone_Z_carriage();
linearBearing_single(model=linearBearingModel, echoPart=true);
translate([axes_Zsmooth_separation,0,0])
linearBearing_single(model=linearBearingModel, echoPart=true);
}
}
}

View File

@ -109,25 +109,8 @@ module Cyclone_YsubPart_singleLinearBearingHolder() {
bcube([dimX,dimY,holderExtension], cr=3, cres=0);
}
// Hole for linear bearing
translate([0,linearBearingLength/2,0])
rotate([90,0,0]) linearBearingHole(model=linearBearingModel, renderPart=true);
// Slot for inserting the bearing
translate([0,0,-holderExtension/2])
cube([linearBearingDiameter-linearBearing_pressureFitTolerance*2,dimY+0.01,holderExtension+0.01], center=true);
// Plastic holders to keep the bearing in place
translate([0,dimY/2,0])
hull() {
translate([0,-plasticHolderLength,0])
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2, h=0.01, center=true);
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-2*linearBearing_pressureFitTolerance, h=0.01, center=true);
}
scale([1,-1,1]) translate([0,dimY/2,0])
hull() {
translate([0,-plasticHolderLength,0])
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2, h=0.01, center=true);
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-2*linearBearing_pressureFitTolerance, h=0.01, center=true);
}
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-linearBearing_pressureFitTolerance, h=dimY+1, center=true);//linearBearingHole(model=linearBearingModel, renderPart=true);
linearBearingHole(model=linearBearingModel, lateralExtension=holderExtension, lengthExtension=2*plasticHolderLength, holderLength=plasticHolderLength/2);
//linearBearingHole(model=linearBearingModel);
// Hole for the screw and nut
translate([dimX/2+footSeparation,0,dimZ+workbed_thickness+workbed_screws_aditional_length])
rotate([90,0,0]) hole_for_screw(size=screwSize,length=workbed_screws_aditional_length+footThickness+workbed_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0);

View File

@ -230,9 +230,34 @@ module linearBearing_single(model="LM8UU", renderPart=false, echoPart=false) {
if(echoPart) echo(str("BOM: Linear bearing. Model ", model));
}
module linearBearingHole(model="LM8UU", tolerance=0.1) {
translate([0,0,-tolerance])
cylinder(r=linearBearing_D(model)/2+tolerance, h=linearBearing_L(model)+2*tolerance);
module linearBearingHole(model="LM8UU", lateralExtension=10, pressureFitTolerance=0.5, lengthExtension=6, holderLength=1.5, tolerance=0.1) {
linearBearingLength = linearBearing_L(model);
linearBearingDiameter = linearBearing_D(model);
dimY = linearBearingLength+lengthExtension;
// Hole for linear bearing
translate([0,linearBearingLength/2,0])
rotate([90,0,0])
translate([0,0,-tolerance])
cylinder(r=linearBearingDiameter/2+tolerance, h=linearBearingLength+2*tolerance);
// Slot for inserting the bearing
translate([0,0,-lateralExtension/2])
cube([linearBearingDiameter-pressureFitTolerance*2,dimY+0.01,lateralExtension+0.01], center=true);
// Plastic holders to keep the bearing in place
translate([0,linearBearingLength/2,0])
hull() {
translate([0,holderLength,0])
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-pressureFitTolerance, h=0.01, center=true);
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2, h=0.01, center=true);
}
scale([1,-1,1]) translate([0,linearBearingLength/2,0])
hull() {
translate([0,holderLength,0])
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-pressureFitTolerance, h=0.01, center=true);
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2, h=0.01, center=true);
}
rotate([90,0,0]) cylinder(r=linearBearingDiameter/2-pressureFitTolerance, h=dimY+1, center=true);//linearBearingHole(model=linearBearingModel, renderPart=true);
}

File diff suppressed because it is too large Load Diff