Created Y rod idlers
parent
6b6971d040
commit
25a6b7c271
|
@ -13,7 +13,7 @@ use <libs/obiscad/obiscad/vector.scad>
|
|||
use <libs/obiscad/obiscad/attach.scad>
|
||||
use <libs/obiscad/obiscad/bcube.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
|
||||
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
|
||||
// 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 = 30+animatePart(5);
|
||||
axes_Yreference_height = 42+animatePart(5);
|
||||
axes_Xreference_height = 60+animatePart(6); // relative to Y 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();
|
||||
}
|
||||
|
||||
hole_for_screw(size=3,length=20,nutDepth=0,nutAddedLen=0,captiveLen=10);
|
||||
|
||||
|
|
|
@ -5,25 +5,31 @@
|
|||
// Designed with http://www.openscad.org/
|
||||
|
||||
|
||||
Ycarriage_linearBearingSeparation = 60;
|
||||
Ycarriage_linearBearingSeparation = 35;
|
||||
|
||||
|
||||
module Cyclone_YsubPart_nutHolder() {
|
||||
|
||||
}
|
||||
|
||||
module Cyclone_Y_carriage() {
|
||||
baseHeight = 10;
|
||||
color("lightgreen") {
|
||||
translate([-10,-5,-5])
|
||||
cube([20,15,axes_Y_smoothThreaded_verticalSeparation+10]);
|
||||
translate([0,0,axes_Y_smoothThreaded_verticalSeparation]) {
|
||||
cube([20,15,axes_Y_smoothThreaded_verticalSeparation+10+baseHeight]);
|
||||
translate([0,0,axes_Y_smoothThreaded_verticalSeparation+baseHeight/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])
|
||||
cube([10,10,10], center=true);
|
||||
cube([10,10,10+baseHeight], center=true);
|
||||
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])
|
||||
cube([10,10,10], center=true);
|
||||
cube([10,10,10+baseHeight], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
translate([0,0,8+5+axes_Y_smoothThreaded_verticalSeparation])
|
||||
beveledBase(size=[axes_Ysmooth_separation+50,Ycarriage_linearBearingSeparation+50,8], radius=3, res=15);
|
||||
translate([0,0,8+5+axes_Y_smoothThreaded_verticalSeparation+baseHeight])
|
||||
beveledBase(size=[axes_Ysmooth_separation+50,Ycarriage_linearBearingSeparation+100,8], radius=3, res=15);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,12 @@ module mirrorOrNot(mirrorPart=false, axes=[-1,1,1]) {
|
|||
else children();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module Cyclone_Y_frontFrame() {
|
||||
color("lightred")
|
||||
color("red")
|
||||
translate([-10,0,-axes_Y_threaded_height])
|
||||
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) {
|
||||
color("lightcyan")
|
||||
translate([-5,0,-axes_Yreference_height]) {
|
||||
cube([20,10,axes_Yreference_height+5]);
|
||||
holderThickness = 5;
|
||||
holderOuterRadius = holderThickness+axes_Ysmooth_rodD/2;
|
||||
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,16 +7,9 @@
|
|||
include <MCAD/nuts_and_bolts.scad>
|
||||
|
||||
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;
|
||||
height = METRIC_NUT_THICKNESS[size]+tolerance;
|
||||
translate([0,-length/2,0]) {
|
||||
translate([0,-length/2+height+nutAddedLen+nutDepth-0.01,0])
|
||||
scale([1,(height+nutAddedLen)/height,1])
|
||||
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])
|
||||
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);
|
|
@ -8,19 +8,19 @@ use <obiscad/obiscad/bcube.scad>
|
|||
|
||||
$render_standard_parts = false;
|
||||
|
||||
module renderStandardPart() {
|
||||
if($render_standard_parts) children();
|
||||
module renderStandardPart(renderPart) {
|
||||
if(renderPart) children();
|
||||
else %children();
|
||||
}
|
||||
|
||||
module standard_paperSheet_A4(t=0.05) {
|
||||
renderStandardPart()
|
||||
module standard_paperSheet_A4(t=0.05, renderPart=false) {
|
||||
renderStandardPart(renderPart)
|
||||
translate([0,0,t/2])
|
||||
color("white") cube([297,210,t], center=true);
|
||||
}
|
||||
|
||||
module standard_rod(diam=8, length=10, threaded=true, center=false) {
|
||||
renderStandardPart()
|
||||
module standard_rod(diam=8, length=10, threaded=true, center=false, renderPart=false) {
|
||||
renderStandardPart(renderPart)
|
||||
if(threaded) {
|
||||
color("black") rotate([-90,0,0]) cylinder(r=diam/2, h=length, center=center);
|
||||
} else {
|
||||
|
@ -28,16 +28,16 @@ module standard_rod(diam=8, length=10, threaded=true, center=false) {
|
|||
}
|
||||
}
|
||||
|
||||
module rubberFoot(diam=40, thickness=8) {
|
||||
renderStandardPart()
|
||||
module rubberFoot(diam=40, thickness=8, renderPart=false) {
|
||||
renderStandardPart(renderPart)
|
||||
color("black")
|
||||
translate([0,0,-thickness])
|
||||
cylinder(r=diam/2, h=thickness);
|
||||
}
|
||||
|
||||
|
||||
module beveledBase(size=[100,200,10], radius=10, res=15) {
|
||||
renderStandardPart()
|
||||
module beveledBase(size=[100,200,10], radius=10, res=15, renderPart=false) {
|
||||
renderStandardPart(renderPart)
|
||||
color("brown")
|
||||
translate([0,0,-size.z/2])
|
||||
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
Loading…
Reference in New Issue