Modified X carriage
parent
0f0777d065
commit
7f019d10b9
|
@ -42,7 +42,7 @@ axes_Zthreaded_rodLen = axes_Zsmooth_rodLen-20;
|
|||
|
||||
axes_Xsmooth_rodD = 8.5+animatePart(4,dist=5);
|
||||
axes_Ysmooth_rodD = 8.5+animatePart(4,dist=5);
|
||||
axes_Zsmooth_rodD = 8.3+animatePart(4,dist=5);
|
||||
axes_Zsmooth_rodD = 8.2+animatePart(4,dist=5);
|
||||
|
||||
axes_Xthreaded_rodD = 8.5+animatePart(4,dist=5);
|
||||
axes_Ythreaded_rodD = 8.5+animatePart(4,dist=5);
|
||||
|
@ -53,11 +53,11 @@ axes_Zthreaded_rodD = 8.5+animatePart(4,dist=5);
|
|||
// Y axis reference is the Y smooth rod end, BACK of RIGHT FRAME
|
||||
// X axis reference is the frontal X smooth rod end, RIGHT FRAME
|
||||
// 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_Yreference_height = 40+animatePart(5);
|
||||
axes_Xreference_height = 72+animatePart(6); // relative to Y reference
|
||||
axes_Zreference_height = -3+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_Xreference_posY = -81-animatePart(8)-animatePart(9); // relative to Y reference. Moves the X axis towards the front of the machine
|
||||
axes_Zreference_posY = 14; // relative to X reference. Positions Z rods between the Y rods
|
||||
|
||||
axes_Y_threaded_height = 30+animatePart(5);
|
||||
|
@ -95,7 +95,7 @@ draw_references = true;
|
|||
render_DXF_base = false;
|
||||
render_DXF_workbed = false;
|
||||
render_bases_outline = false; // Toggle for rendering outline DXFs
|
||||
DXF_offset = 0.5; // Needed to adjust the tolerance of the laser cutter
|
||||
DXF_offset = 0.4; // Needed to adjust the tolerance of the laser cutter
|
||||
|
||||
// Include Cyclone parts
|
||||
include <Cyclone_X_carriage.scad>
|
||||
|
@ -178,7 +178,7 @@ render_2D_or_3D() {
|
|||
translate([axes_Xcarriage_pos,0,0]) {
|
||||
if(draw_references) %frame();
|
||||
|
||||
Cyclone_X_carriage();
|
||||
!Cyclone_X_carriage();
|
||||
|
||||
// TRANSLATE REFERENCE POSITION to the Z axis origin (right smooth rod)
|
||||
translate([-axes_Zsmooth_separation/2,axes_Zreference_posY,axes_Zreference_height]) {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
// License: CC BY-SA 4.0 (Attribution-ShareAlike 4.0 International, http://creativecommons.org/licenses/by-sa/4.0/)
|
||||
// Designed with http://www.openscad.org/
|
||||
|
||||
|
||||
use <libs/linear_bearing.scad>
|
||||
module Cyclone_X_carriage() {
|
||||
linearBearingModel = "LM8UU";
|
||||
|
@ -15,59 +16,121 @@ module Cyclone_X_carriage() {
|
|||
|
||||
linearBearingSeparation = 0;
|
||||
|
||||
sideExtensions = linearBearingDiameter/3;
|
||||
sideExtensions = linearBearingDiameter/3+2;
|
||||
|
||||
ZrodHolderLength = 30;
|
||||
|
||||
screwSize = 3; // M3, M4, etc (integers only)
|
||||
screwLength = linearBearingDiameter+sideExtensions;
|
||||
screwAditionalLength = 2;
|
||||
|
||||
screwExtension = screwSize*1.2;
|
||||
|
||||
linearBearingLengthExtension = 6+max(axes_Zsmooth_rodD+axes_Zsmooth_separation-2*linearBearingLength-linearBearingSeparation, linearBearingSeparation);
|
||||
|
||||
dimX = 2*linearBearingLength+linearBearingLengthExtension;
|
||||
|
||||
echo(str(axes_Xsmooth_separation-2*axes_ZthreadedReference_posY, "######################################################"));
|
||||
module Cyclone_XsubPart_ZnutHolder(holes=false) {
|
||||
rod_nut_len = 0.8*axes_Ythreaded_rodD;
|
||||
rodTolerance = 0.5;
|
||||
rodSize = 8; // M3, M4, etc (integers only)
|
||||
washer_D = 15.8;
|
||||
washer_thickness = 1.6;
|
||||
|
||||
dimZ = 10;
|
||||
if(!holes) {
|
||||
rotate([0,180,0])
|
||||
hull() {
|
||||
cylinder(r=axes_Zthreaded_rodD+1, h=dimZ);
|
||||
translate([0,-axes_Zreference_posY-axes_ZthreadedReference_posY+axes_effective_Xsmooth_separation,dimZ/2])
|
||||
cube([dimX,0.1,dimZ], center=true);
|
||||
}
|
||||
} else {
|
||||
// Hole for the main Z nut
|
||||
translate([0,0,0.1]) rotate([90,0,0]) hole_for_nut(size=rodSize,nutAddedLen=0,captiveLen=0,tolerance=0.1);
|
||||
// Hole for the Z threaded rod
|
||||
translate([0,0,-axes_effective_Xsmooth_separation+dimZ])
|
||||
rotate([90,0,0]) standard_rod(diam=axes_Zthreaded_rodD+rodTolerance, length=axes_effective_Xsmooth_separation*2, threaded=true, renderPart=true, center=true);
|
||||
translate([0,0,-dimZ-0.01]) rotate([180,0,0]) cylinder(r=axes_Zthreaded_rodD, h=axes_effective_Xsmooth_separation+dimZ, $fn=6);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
// color("lightblue") translate([-(axes_Zsmooth_separation+10)/2,-5,-5])
|
||||
// cube([axes_Zsmooth_separation+10,axes_Xsmooth_separation+10,axes_Zreference_height+5]);
|
||||
*color("lightblue") translate([-dimX/2,-5,-sideExtensions])
|
||||
cube([dimX,axes_Xsmooth_separation+10,ZrodHolderLength]);
|
||||
hull() {
|
||||
rotate([0,90,0])
|
||||
bcube([linearBearingDiameter,linearBearingDiameter+sideExtensions, dimX], cr=3, cres=5);// cylinder(r=linearBearingDiameter/2, h=dimX, center=true);
|
||||
translate([0,axes_effective_Xsmooth_separation,axes_effective_Xsmooth_separation])
|
||||
// Main shape
|
||||
union() {
|
||||
hull() {
|
||||
rotate([0,90,0])
|
||||
bcube([linearBearingDiameter+sideExtensions,linearBearingDiameter, dimX], cr=3, cres=5);// cylinder(r=linearBearingDiameter/2, h=dimX, center=true);
|
||||
bcube([linearBearingDiameter,linearBearingDiameter+sideExtensions, dimX], cr=3, cres=5);
|
||||
translate([0,axes_effective_Xsmooth_separation,axes_effective_Xsmooth_separation])
|
||||
rotate([0,90,0])
|
||||
bcube([linearBearingDiameter+sideExtensions,linearBearingDiameter, dimX], cr=3, cres=5);
|
||||
}
|
||||
translate([0,0,-screwExtension/2])
|
||||
rotate([0,90,0])
|
||||
bcube([linearBearingDiameter+screwExtension,linearBearingDiameter+sideExtensions, dimX], cr=3, cres=5);
|
||||
translate([0,axes_effective_Xsmooth_separation+screwExtension/2,axes_effective_Xsmooth_separation])
|
||||
rotate([0,90,0])
|
||||
bcube([linearBearingDiameter+sideExtensions,linearBearingDiameter+screwExtension, dimX], cr=3, cres=5);
|
||||
// Bottom right screw
|
||||
translate([-linearBearingLength/2-linearBearingSeparation/2,0,-linearBearingDiameter/2-screwExtension/2])
|
||||
rotate([90,0,0]) cylinder(r=screwSize*2,h=screwLength, center=true, $fn=6);
|
||||
// Bottom left screw
|
||||
translate([linearBearingLength/2+linearBearingSeparation/2,0,-linearBearingDiameter/2-screwExtension/2])
|
||||
rotate([90,0,0]) cylinder(r=screwSize*2,h=screwLength, center=true, $fn=6);
|
||||
// Top screw
|
||||
translate([0,axes_effective_Xsmooth_separation+screwExtension/2+linearBearingDiameter/2,axes_effective_Xsmooth_separation])
|
||||
cylinder(r=screwSize*2,h=screwLength, center=true, $fn=6);
|
||||
// Z nut
|
||||
translate([0,axes_Zreference_posY+axes_ZthreadedReference_posY,axes_effective_Xsmooth_separation+(linearBearingDiameter+sideExtensions)/2])
|
||||
Cyclone_XsubPart_ZnutHolder(holes=false);
|
||||
}
|
||||
|
||||
// ----- Hole for the Z carriage space ------
|
||||
difference() {
|
||||
translate([-dimX/2-0.5,0,-sideExtensions+ZrodHolderLength])
|
||||
cube([dimX+1,axes_effective_Xsmooth_separation-axes_ZthreadedReference_posY,axes_effective_Xsmooth_separation]);
|
||||
translate([0,axes_Zreference_posY+axes_ZthreadedReference_posY,axes_effective_Xsmooth_separation+(linearBearingDiameter+sideExtensions)/2])
|
||||
Cyclone_XsubPart_ZnutHolder(mainPart=true);
|
||||
}
|
||||
|
||||
translate([-dimX/2-0.5,0,-sideExtensions+ZrodHolderLength])
|
||||
cube([dimX+1,axes_effective_Xsmooth_separation-axes_ZthreadedReference_posY,axes_effective_Xsmooth_separation]);
|
||||
|
||||
// ----- Holes for the linear bearings ------
|
||||
// Bottom right linear bearing
|
||||
translate([-linearBearingLength/2-linearBearingSeparation/2,0,0])
|
||||
rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2, lengthExtension=linearBearingLengthExtension);
|
||||
rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2+screwExtension*2, lengthExtension=linearBearingLengthExtension);
|
||||
// Bottom left linear bearing
|
||||
translate([linearBearingLength/2+linearBearingSeparation/2,0,0])
|
||||
rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2, lengthExtension=linearBearingLengthExtension);
|
||||
rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2+screwExtension*2, lengthExtension=linearBearingLengthExtension);
|
||||
// Top linear bearing
|
||||
translate([0,axes_effective_Xsmooth_separation,axes_effective_Xsmooth_separation])
|
||||
rotate([90,0,0]) rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2, lengthExtension=linearBearingLength+linearBearingLengthExtension+linearBearingSeparation);
|
||||
rotate([90,0,0]) rotate([0,0,90]) linearBearingHole(model=linearBearingModel, lateralExtension=sideExtensions*2+screwExtension*2, lengthExtension=linearBearingLength+linearBearingLengthExtension+linearBearingSeparation);
|
||||
|
||||
// ----- Holes for the screws ------
|
||||
// Bottom right screw
|
||||
translate([-linearBearingLength/2-linearBearingSeparation/2,-screwLength/2-screwAditionalLength/2,-linearBearingDiameter/2-screwExtension/2])
|
||||
rotate([0,0,180]) hole_for_screw(size=screwSize,length=screwLength+screwAditionalLength,nutDepth=0,nutAddedLen=0,captiveLen=0);
|
||||
// Bottom left screw
|
||||
translate([linearBearingLength/2+linearBearingSeparation/2,-screwLength/2-screwAditionalLength/2,-linearBearingDiameter/2-screwExtension/2])
|
||||
rotate([0,0,180]) hole_for_screw(size=screwSize,length=screwLength+screwAditionalLength,nutDepth=0,nutAddedLen=0,captiveLen=0);
|
||||
// Top screw
|
||||
translate([0,axes_effective_Xsmooth_separation+screwExtension/2+linearBearingDiameter/2,axes_effective_Xsmooth_separation+screwLength/2+screwAditionalLength/2])
|
||||
rotate([90,0,0]) hole_for_screw(size=screwSize,length=screwLength+screwAditionalLength,nutDepth=0,nutAddedLen=0,captiveLen=0);
|
||||
|
||||
// ----- Hole for the Z nut
|
||||
translate([0,axes_Zreference_posY+axes_ZthreadedReference_posY,axes_effective_Xsmooth_separation+(linearBearingDiameter+sideExtensions)/2])
|
||||
Cyclone_XsubPart_ZnutHolder(holes=true);
|
||||
|
||||
// ----- Holes for the rods ------
|
||||
// TRANSLATE REFERENCE POSITION to the Z axis origin (right smooth rod)
|
||||
translate([-axes_Zsmooth_separation/2,axes_Zreference_posY,axes_Zreference_height]) {
|
||||
if(draw_references) %frame();
|
||||
|
||||
|
||||
// Z smooth rod (right)
|
||||
rotate([90,0,0]) standard_rod(diam=axes_Zsmooth_rodD, length=axes_Zsmooth_rodLen, threaded=false, renderPart=true);
|
||||
cylinder(r=axes_Zsmooth_rodD/2, h=axes_Zsmooth_rodLen);
|
||||
// Z smooth rod (left)
|
||||
translate([axes_Zsmooth_separation,0,0])
|
||||
rotate([90,0,0]) standard_rod(diam=axes_Zsmooth_rodD, length=axes_Zsmooth_rodLen, threaded=false, renderPart=true);
|
||||
// Z threaded rod
|
||||
translate([axes_Zsmooth_separation/2,axes_ZthreadedReference_posY,0])
|
||||
rotate([90,0,0]) standard_rod(diam=1.5*axes_Zthreaded_rodD, length=axes_Zthreaded_rodLen, threaded=true, renderPart=true);
|
||||
cylinder(r=axes_Zsmooth_rodD/2, h=axes_Zsmooth_rodLen);
|
||||
}
|
||||
}
|
||||
|
||||
// Draw linear bearings
|
||||
rotate([0,90,0]) linearBearing_single(model=linearBearingModel, echoPart=true);
|
||||
rotate([0,-90,0]) linearBearing_single(model=linearBearingModel, echoPart=true);
|
||||
|
|
|
@ -145,7 +145,7 @@ module motorHolesZ() {
|
|||
|
||||
// Screws for holding the motor
|
||||
for(i=[-1,1]) for(j=[-1,1])
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5-wall_thickness/2]) {
|
||||
translate([i*motor_screw_distance/2,j*motor_screw_distance/2,2.5-wall_thickness/2+3]) {
|
||||
hull() {
|
||||
translate([0,motor_adjust_margin/2,0])
|
||||
cylinder(r=motor_screw_diameter/2,h=10*wall_thickness,center=true,$fn=40);
|
||||
|
@ -267,11 +267,8 @@ module Z_carriage(showSpindle=false,top_part=true, with_extra_parts=false, explo
|
|||
|
||||
// Hole for the threaded rod
|
||||
if(!top_part) {
|
||||
translate([-axes_Xsmooth_separation,0,0]) hull() {
|
||||
cylinder(r=2+M8_rod_diameter/2,h=wall_thickness*10,center=true,$fn=30);
|
||||
translate([-15,0,0])
|
||||
cylinder(r=2+M8_rod_diameter/2,h=wall_thickness*10,center=true,$fn=30);
|
||||
}
|
||||
translate([-axes_Xsmooth_separation,0,0])
|
||||
cylinder(r=6+M8_rod_diameter,h=wall_thickness*10,center=true,$fn=30);
|
||||
}
|
||||
|
||||
// Truncation in the base for avoiding collision with the X axis
|
||||
|
|
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
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
Loading…
Reference in New Issue