Added Y nut holder
parent
8ed71ddc4c
commit
136d1d56d6
|
@ -66,7 +66,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
rotate([0,90,0])
|
rotate([0,90,0])
|
||||||
rodHolder(rodD=axes_Xsmooth_rodD, screwSize=screwSize, negative=true);
|
rodHolder(rodD=axes_Xsmooth_rodD, screwSize=screwSize, negative=true);
|
||||||
// TRANSLATE REFERENCE POSITION to the threaded rod
|
// TRANSLATE REFERENCE POSITION to the threaded rod
|
||||||
translate([0,axes_Xsmooth_separation,0]) {
|
translate([+0.01,axes_Xsmooth_separation,0]) {
|
||||||
translate([0,-15,-40]) rotate([0,-90,0]) cylinder(r=15,h=partThickness*2);
|
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,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);
|
translate([0,-15,-80]) rotate([0,-90,0]) cylinder(r=15,h=partThickness*2);
|
||||||
|
|
|
@ -4,28 +4,68 @@
|
||||||
// License: CC BY-SA 4.0 (Attribution-ShareAlike 4.0 International, http://creativecommons.org/licenses/by-sa/4.0/)
|
// 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/
|
// Designed with http://www.openscad.org/
|
||||||
|
|
||||||
|
include <MCAD/nuts_and_bolts.scad>
|
||||||
|
|
||||||
module Cyclone_YsubPart_nutHolder() {
|
module Cyclone_YsubPart_nutHolder() {
|
||||||
workbed_separation_from_Y_threaded_rod = axes_Y_smoothThreaded_verticalSeparation+workbed_separation_from_Y_smooth_rod+axes_Ysmooth_rodD/2;
|
workbed_separation_from_Y_threaded_rod = axes_Y_smoothThreaded_verticalSeparation+workbed_separation_from_Y_smooth_rod+axes_Ysmooth_rodD/2;
|
||||||
footThickness = 10;
|
footThickness = 10;
|
||||||
screwSeparation = 14;
|
screwSeparation = 16;
|
||||||
dimX = 15;
|
rod_nut_len = 0.8*axes_Ythreaded_rodD;
|
||||||
dimY = screwSeparation*2;
|
dimX = axes_Ythreaded_rodD*2+5;
|
||||||
dimZ = workbed_separation_from_Y_threaded_rod+10;
|
dimY = screwSeparation+10;
|
||||||
#translate([-10,-dimY/2,-10])
|
dimZ = workbed_separation_from_Y_threaded_rod;
|
||||||
cube([dimX,dimY,dimZ]);
|
holderExtension = 10;
|
||||||
translate([0,-screwSeparation/2,workbed_separation_from_Y_threaded_rod+workbed_thickness])
|
rodTolerance = 0.5;
|
||||||
rotate([90,0,0])
|
rodSize = 8; // M3, M4, etc (integers only)
|
||||||
hole_for_screw(size=3,length=workbed_thickness+footThickness,nutDepth=-dimZ,nutAddedLen=dimZ,captiveLen=0);
|
washer_D = 15.8;
|
||||||
translate([0,+screwSeparation/2,workbed_separation_from_Y_threaded_rod+workbed_thickness])
|
washer_thickness = 1.6;
|
||||||
rotate([90,0,0])
|
|
||||||
hole_for_screw(size=3,length=workbed_thickness+footThickness,nutDepth=-dimZ,nutAddedLen=dimZ,captiveLen=0);
|
difference() {
|
||||||
|
// Main shape
|
||||||
|
translate([0,0,dimZ/2-holderExtension/2])
|
||||||
|
bcube([dimX,dimY,dimZ+holderExtension],cr=3,cres=10);
|
||||||
|
// Hole for the rod
|
||||||
|
hull() {
|
||||||
|
standard_rod(diam=axes_Ythreaded_rodD+rodTolerance, length=dimY*4, threaded=true, renderPart=true, center=true);
|
||||||
|
translate([0,0,-holderExtension*2])
|
||||||
|
standard_rod(diam=axes_Ythreaded_rodD+rodTolerance, length=dimY*4, threaded=true, renderPart=true, center=true);
|
||||||
|
}
|
||||||
|
// Hole for the main nut
|
||||||
|
translate([0,dimY/2+0.01,0])
|
||||||
|
hull() {
|
||||||
|
rotate([0,90,0]) hole_for_nut(size=rodSize,nutAddedLen=0,captiveLen=0,tolerance=0.1);
|
||||||
|
translate([0,0,-holderExtension*2])
|
||||||
|
rotate([0,90,0]) hole_for_nut(size=rodSize,nutAddedLen=0,captiveLen=0,tolerance=0.1);
|
||||||
|
}
|
||||||
|
translate([0,dimY/2+0.01-rod_nut_len-3,0]) {
|
||||||
|
// Hole for the sliding nut
|
||||||
|
hull() {
|
||||||
|
rotate([0,90,0]) hole_for_nut(size=rodSize,nutAddedLen=dimY,captiveLen=0,tolerance=0.5);
|
||||||
|
translate([0,0,-holderExtension*2])
|
||||||
|
rotate([0,90,0]) hole_for_nut(size=rodSize,nutAddedLen=dimY,captiveLen=0,tolerance=0.5);
|
||||||
|
}
|
||||||
|
// Hole for the washer
|
||||||
|
hull() {
|
||||||
|
washer_single(diam=washer_D, thickness=washer_thickness, renderPart=true);
|
||||||
|
translate([0,0,-holderExtension*2])
|
||||||
|
washer_single(diam=washer_D, thickness=washer_thickness, renderPart=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Holes for the supporting screws
|
||||||
|
translate([0,-screwSeparation/2,workbed_separation_from_Y_threaded_rod+workbed_thickness])
|
||||||
|
rotate([90,0,0])
|
||||||
|
hole_for_screw(size=3,length=workbed_thickness+footThickness,nutDepth=-dimZ,nutAddedLen=dimZ,captiveLen=0);
|
||||||
|
translate([0,+screwSeparation/2,workbed_separation_from_Y_threaded_rod+workbed_thickness])
|
||||||
|
rotate([90,0,0])
|
||||||
|
hole_for_screw(size=3,length=workbed_thickness+footThickness,nutDepth=-dimZ,nutAddedLen=dimZ,captiveLen=0);
|
||||||
|
}
|
||||||
|
translate([0,dimY/2,0]) rotate([0,90,0]) rotate([90,0,0]) nut(size=8, echoPart=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module Cyclone_Y_carriage() {
|
module Cyclone_Y_carriage() {
|
||||||
baseHeight = workbed_separation_from_Y_smooth_rod-1;
|
baseHeight = workbed_separation_from_Y_smooth_rod-1;
|
||||||
|
Cyclone_YsubPart_nutHolder();
|
||||||
color("lightgreen") {
|
color("lightgreen") {
|
||||||
Cyclone_YsubPart_nutHolder();
|
|
||||||
translate([0,0,axes_Y_smoothThreaded_verticalSeparation+baseHeight/2]) {
|
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+baseHeight], center=true);
|
cube([10,10,10+baseHeight], center=true);
|
||||||
|
|
|
@ -115,6 +115,21 @@ module nut(size=8, chamfer=false, renderPart=false, echoPart=false) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module hole_for_nut(size=3,nutAddedLen=0,captiveLen=0,tolerance=0.35) {
|
||||||
|
radius = METRIC_NUT_AC_WIDTHS[size]/2+tolerance;
|
||||||
|
height = METRIC_NUT_THICKNESS[size]+tolerance;
|
||||||
|
translate([0,height+nutAddedLen+nutDepth-0.01,0])
|
||||||
|
scale([1,(height+nutAddedLen)/height,1])
|
||||||
|
rotate([90,0,0])
|
||||||
|
hull() {
|
||||||
|
nutHole(size=size, tolerance=tolerance, proj=-1);
|
||||||
|
translate([0,captiveLen,0])
|
||||||
|
nutHole(size=size, tolerance=tolerance, proj=-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
module screw_single(size=3,length=10,tolerance=0, renderPart=false, echoPart=false) {
|
module screw_single(size=3,length=10,tolerance=0, renderPart=false, echoPart=false) {
|
||||||
height = METRIC_NUT_THICKNESS[size]+tolerance;
|
height = METRIC_NUT_THICKNESS[size]+tolerance;
|
||||||
color(BlackPaint)
|
color(BlackPaint)
|
||||||
|
@ -188,10 +203,17 @@ module bearingHole(depth=3, thickness=10, model=608, tolerance=1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module radialBearing(model=608,renderPart=false, echoPart=false) {
|
module radialBearing(model=608, renderPart=false, echoPart=false) {
|
||||||
renderStandardPart(renderPart)
|
renderStandardPart(renderPart)
|
||||||
bearing(model=model, outline=false);
|
bearing(model=model, outline=false);
|
||||||
if(echoPart) echo(str("BOM: Radial bearing. Model ",model));
|
if(echoPart) echo(str("BOM: Radial bearing. Model ",model));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module washer_single(diam=15.8, thickness=1.6, tolerance=0.1, renderPart=false, echoPart=false) {
|
||||||
|
renderStandardPart(renderPart)
|
||||||
|
color(steel)
|
||||||
|
rotate([90,0,0]) translate([0,0,-tolerance]) cylinder(r=diam/2+tolerance, h=thickness+2*tolerance);
|
||||||
|
if(echoPart) echo(str("BOM: Washer. Diameter ", diam, "mm. Thickness ", thickness, "mm"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
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: 42 KiB After Width: | Height: | Size: 42 KiB |
Loading…
Reference in New Issue