Created Y rod idlers

pull/20/head
Carlos Garcia Saura 2014-07-10 16:35:59 +02:00
parent 6b6971d040
commit 25a6b7c271
7 changed files with 35843 additions and 39 deletions

View File

@ -13,7 +13,7 @@ use <libs/obiscad/obiscad/vector.scad>
use <libs/obiscad/obiscad/attach.scad> use <libs/obiscad/obiscad/attach.scad>
use <libs/obiscad/obiscad/bcube.scad> use <libs/obiscad/obiscad/bcube.scad>
use <libs/standard_parts.scad> use <libs/standard_parts.scad>
use <libs/hole_for_screw.scad> use <libs/helpers.scad>
// Functions for animations. Quick and dirty implementation, will need some cleanup // Functions for animations. Quick and dirty implementation, will need some cleanup
animated_parts_number = 10; animated_parts_number = 10;
@ -52,7 +52,7 @@ axes_Zthreaded_rodD = 8+animatePart(4,dist=5);
// Y axis reference is the Y smooth rod end, BACK of RIGHT FRAME // 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 // 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 // Z axis reference is the Z threaded rod, at the height of the Z nut, and relative to the X reference
axes_Yreference_height = 30+animatePart(5); axes_Yreference_height = 42+animatePart(5);
axes_Xreference_height = 60+animatePart(6); // relative to Y reference axes_Xreference_height = 60+animatePart(6); // relative to Y reference
axes_Zreference_height = 45+animatePart(7)+animatePart(9); // relative to X reference axes_Zreference_height = 45+animatePart(7)+animatePart(9); // relative to X reference
@ -235,5 +235,3 @@ translate([0,-axes_Ysmooth_rodLen/2+axes_Ycarriage_pos,axes_Y_threaded_height])
Cyclone_Y_carriage(); Cyclone_Y_carriage();
} }
hole_for_screw(size=3,length=20,nutDepth=0,nutAddedLen=0,captiveLen=10);

View File

@ -5,25 +5,31 @@
// Designed with http://www.openscad.org/ // Designed with http://www.openscad.org/
Ycarriage_linearBearingSeparation = 60; Ycarriage_linearBearingSeparation = 35;
module Cyclone_YsubPart_nutHolder() {
}
module Cyclone_Y_carriage() { module Cyclone_Y_carriage() {
baseHeight = 10;
color("lightgreen") { color("lightgreen") {
translate([-10,-5,-5]) translate([-10,-5,-5])
cube([20,15,axes_Y_smoothThreaded_verticalSeparation+10]); cube([20,15,axes_Y_smoothThreaded_verticalSeparation+10+baseHeight]);
translate([0,0,axes_Y_smoothThreaded_verticalSeparation]) { translate([0,0,axes_Y_smoothThreaded_verticalSeparation+baseHeight/2]) {
translate([axes_Ysmooth_separation/2,Ycarriage_linearBearingSeparation/2]) translate([axes_Ysmooth_separation/2,Ycarriage_linearBearingSeparation/2])
cube([10,10,10], center=true); cube([10,10,10+baseHeight], center=true);
translate([-axes_Ysmooth_separation/2,Ycarriage_linearBearingSeparation/2]) translate([-axes_Ysmooth_separation/2,Ycarriage_linearBearingSeparation/2])
cube([10,10,10], center=true); cube([10,10,10+baseHeight], center=true);
translate([-axes_Ysmooth_separation/2,-Ycarriage_linearBearingSeparation/2]) translate([-axes_Ysmooth_separation/2,-Ycarriage_linearBearingSeparation/2])
cube([10,10,10], center=true); cube([10,10,10+baseHeight], center=true);
translate([axes_Ysmooth_separation/2,-Ycarriage_linearBearingSeparation/2]) translate([axes_Ysmooth_separation/2,-Ycarriage_linearBearingSeparation/2])
cube([10,10,10], center=true); cube([10,10,10+baseHeight], center=true);
} }
} }
translate([0,0,8+5+axes_Y_smoothThreaded_verticalSeparation]) translate([0,0,8+5+axes_Y_smoothThreaded_verticalSeparation+baseHeight])
beveledBase(size=[axes_Ysmooth_separation+50,Ycarriage_linearBearingSeparation+50,8], radius=3, res=15); beveledBase(size=[axes_Ysmooth_separation+50,Ycarriage_linearBearingSeparation+100,8], radius=3, res=15);
} }

View File

@ -9,8 +9,12 @@ module mirrorOrNot(mirrorPart=false, axes=[-1,1,1]) {
else children(); else children();
} }
module Cyclone_Y_frontFrame() { module Cyclone_Y_frontFrame() {
color("lightred") color("red")
translate([-10,0,-axes_Y_threaded_height]) translate([-10,0,-axes_Y_threaded_height])
cube([20,10,axes_Y_threaded_height+5]); cube([20,10,axes_Y_threaded_height+5]);
} }
@ -21,14 +25,84 @@ module Cyclone_Y_backFrame() {
} }
module Cyclone_logo(sizemm = 30, thickness = 10, mirrorLogo = false) {
dxf_logo_size = 50;
scale_factor = sizemm/dxf_logo_size;
if(mirrorLogo)
mirror([ 1, 0, 0 ]) linear_extrude(height=thickness) scale(scale_factor) import("dxf/CycloneLogo.dxf", layer="logo");
else
linear_extrude(height=thickness) scale(scale_factor) import("dxf/CycloneLogo.dxf");
}
module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) { module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
color("lightcyan") holderThickness = 5;
translate([-5,0,-axes_Yreference_height]) { holderOuterRadius = holderThickness+axes_Ysmooth_rodD/2;
cube([20,10,axes_Yreference_height+5]);
screwSize = 3; // M3, M4, etc (integers only)
dimX = holderOuterRadius*2;
dimY = 10+screwSize*2;
dimZ = axes_Yreference_height;
slotHeight = 3;
screwLength = holderOuterRadius*2;
logoDepth = dimY/4;
footSeparation = screwSize*2;
footThickness = 10;
color("lightcyan") {
difference() {
union() {
translate([0,0,-axes_Yreference_height])
cube([dimX,dimY,dimZ+holderThickness+axes_Ysmooth_rodD/2]);
translate([-holderOuterRadius,0,-axes_Yreference_height])
cube([dimX,dimY,dimZ]);
rotate([-90,0,0]) cylinder(r=holderOuterRadius, h=dimY);
translate([0,dimY/2,-axes_Yreference_height])
hull() {
translate([-holderOuterRadius-footSeparation,0,0])
cylinder(r=dimY/2,h=footThickness);
translate([holderOuterRadius*2+footSeparation,0,0])
cylinder(r=dimY/2,h=footThickness);
translate([holderOuterRadius/2,dimY/2+footSeparation,0])
cylinder(r=dimY/2,h=footThickness);
}
}
standard_rod(diam=axes_Ysmooth_rodD, length=dimY*4, threaded=false, renderPart=true, center=true);
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);
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])
scale([1,-1,1])
rotate([90,0,0])
Cyclone_logo(sizemm = min(dimX+holderOuterRadius-5,dimZ-axes_Ysmooth_rodD/2-5), thickness = logoDepth, mirrorLogo = mirrorLogo);
translate([0,dimY/2,-axes_Yreference_height+footThickness]) {
translate([-holderOuterRadius-footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness*2,nutDepth=0,nutAddedLen=0,captiveLen=0);
translate([holderOuterRadius*2+footSeparation,0,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness*2,nutDepth=0,nutAddedLen=0,captiveLen=0);
translate([holderOuterRadius/2,dimY/2+footSeparation,0])
rotate([0,90,0])
rotate([0,0,90])
hole_for_screw(size=screwSize,length=footThickness*2,nutDepth=0,nutAddedLen=0,captiveLen=0);
}
} }
translate([0,-10,0]) rotate([90,0,0]) linear_extrude(height=10, center = true) {
if(mirrorLogo) scale([-1,1]) import("dxf/CycloneLogo.dxf");
else import("dxf/CycloneLogo.dxf");
} }
} }

View File

@ -7,16 +7,9 @@
include <MCAD/nuts_and_bolts.scad> include <MCAD/nuts_and_bolts.scad>
module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0.5) { module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tolerance=0.5) {
*translate([0,-length/2+nutDepth,0])
rotate([90,0,0])
hull() {
translate([0,0,nutDepth])
scale([1,1,0.01])
nutHole(size=size, tolerance=tolerance, proj=-1);
scale([1,1,0.01]) nutHole(size=size, tolerance=tolerance, proj=-1);
}
radius = METRIC_NUT_AC_WIDTHS[size]/2+tolerance; radius = METRIC_NUT_AC_WIDTHS[size]/2+tolerance;
height = METRIC_NUT_THICKNESS[size]+tolerance; height = METRIC_NUT_THICKNESS[size]+tolerance;
translate([0,-length/2,0]) {
translate([0,-length/2+height+nutAddedLen+nutDepth-0.01,0]) translate([0,-length/2+height+nutAddedLen+nutDepth-0.01,0])
scale([1,(height+nutAddedLen)/height,1]) scale([1,(height+nutAddedLen)/height,1])
rotate([90,0,0]) rotate([90,0,0])
@ -27,7 +20,8 @@ module hole_for_screw(size=3,length=20,nutDepth=5,nutAddedLen=0,captiveLen=0,tol
} }
translate([0,length/2-2.6,0]) translate([0,length/2-2.6,0])
rotate([90,0,0]) rotate([90,0,0])
render() boltHole(size=size, length=length-2.6+0.5, tolerance=tolerance-0.1, proj=-1); render() boltHole(size=size, length=length-2.6+0.5, tolerance=tolerance, proj=-1);
}
} }
hole_for_screw(size=3,length=20,nutDepth=0,nutAddedLen=0,captiveLen=10); hole_for_screw(size=3,length=20,nutDepth=0,nutAddedLen=0,captiveLen=10);

View File

@ -8,19 +8,19 @@ use <obiscad/obiscad/bcube.scad>
$render_standard_parts = false; $render_standard_parts = false;
module renderStandardPart() { module renderStandardPart(renderPart) {
if($render_standard_parts) children(); if(renderPart) children();
else %children(); else %children();
} }
module standard_paperSheet_A4(t=0.05) { module standard_paperSheet_A4(t=0.05, renderPart=false) {
renderStandardPart() renderStandardPart(renderPart)
translate([0,0,t/2]) translate([0,0,t/2])
color("white") cube([297,210,t], center=true); color("white") cube([297,210,t], center=true);
} }
module standard_rod(diam=8, length=10, threaded=true, center=false) { module standard_rod(diam=8, length=10, threaded=true, center=false, renderPart=false) {
renderStandardPart() renderStandardPart(renderPart)
if(threaded) { if(threaded) {
color("black") rotate([-90,0,0]) cylinder(r=diam/2, h=length, center=center); color("black") rotate([-90,0,0]) cylinder(r=diam/2, h=length, center=center);
} else { } else {
@ -28,16 +28,16 @@ module standard_rod(diam=8, length=10, threaded=true, center=false) {
} }
} }
module rubberFoot(diam=40, thickness=8) { module rubberFoot(diam=40, thickness=8, renderPart=false) {
renderStandardPart() renderStandardPart(renderPart)
color("black") color("black")
translate([0,0,-thickness]) translate([0,0,-thickness])
cylinder(r=diam/2, h=thickness); cylinder(r=diam/2, h=thickness);
} }
module beveledBase(size=[100,200,10], radius=10, res=15) { module beveledBase(size=[100,200,10], radius=10, res=15, renderPart=false) {
renderStandardPart() renderStandardPart(renderPart)
color("brown") color("brown")
translate([0,0,-size.z/2]) translate([0,0,-size.z/2])
bcube(size, cr=radius, cres=res); bcube(size, cr=radius, cres=res);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff