Customized color visualization in OpenScad. Added L top supports for PCB holder
parent
9903784e1f
commit
0fd4c5506a
|
@ -116,6 +116,10 @@ workbed_thickness = 8+3;
|
||||||
workbed_separation_from_Y_smooth_rod = 10;
|
workbed_separation_from_Y_smooth_rod = 10;
|
||||||
|
|
||||||
|
|
||||||
|
// Part colors
|
||||||
|
color_movingPart = "yellow";
|
||||||
|
color_stillPart = "green";
|
||||||
|
|
||||||
|
|
||||||
// Calculations
|
// Calculations
|
||||||
axes_Xreference_posX = (axes_Ysmooth_separation-axes_Xsmooth_rodLen)/2; // relative to Y reference
|
axes_Xreference_posX = (axes_Ysmooth_separation-axes_Xsmooth_rodLen)/2; // relative to Y reference
|
||||||
|
@ -151,7 +155,6 @@ render_2D_or_3D() {
|
||||||
|
|
||||||
// Main base for the machine
|
// Main base for the machine
|
||||||
beveledBase([base_size_X,base_size_Y,base_thickness], radius=base_corner_radius, res=base_corner_res, echoPart=true, renderPart=render_bases_outline);
|
beveledBase([base_size_X,base_size_Y,base_thickness], radius=base_corner_radius, res=base_corner_res, echoPart=true, renderPart=render_bases_outline);
|
||||||
//%color("brown") translate([0,0,-base_thickness/2]) bcube([base_size_X,base_size_Y,base_thickness], cr=base_corner_radius, cres=base_corner_res);
|
|
||||||
|
|
||||||
|
|
||||||
// A4 paper sheet for reference
|
// A4 paper sheet for reference
|
||||||
|
|
|
@ -161,7 +161,7 @@ module Cyclone_X_carriage() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
difference() {
|
color(color_movingPart) difference() {
|
||||||
// Main shape
|
// Main shape
|
||||||
union() {
|
union() {
|
||||||
hull() {
|
hull() {
|
||||||
|
|
|
@ -142,7 +142,8 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
// Endstop holder
|
// Endstop holder
|
||||||
translate([-partThickness-0.04,19,-5+axes_Xsmooth_separation])
|
translate([-partThickness-0.04,19,-5+axes_Xsmooth_separation])
|
||||||
rotate([-60,0,0]) {
|
rotate([-60,0,0]) {
|
||||||
rotate([0,0,-90]) mirror([1,0,0]) endstop_holder(holes, shortNuts=true);
|
rotate([0,0,-90]) mirror([1,0,0])
|
||||||
|
endstop_holder(holes, shortNuts=true, plasticColor=color_stillPart);
|
||||||
if(holes)
|
if(holes)
|
||||||
cube([partThickness+1,100,50]);
|
cube([partThickness+1,100,50]);
|
||||||
}
|
}
|
||||||
|
@ -175,6 +176,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
|
|
||||||
// Translate to lower-front corner
|
// Translate to lower-front corner
|
||||||
translate([0,frameFrontalThickness, -axes_Yreference_height-axes_Xreference_height+footThickness+0.01]) {
|
translate([0,frameFrontalThickness, -axes_Yreference_height-axes_Xreference_height+footThickness+0.01]) {
|
||||||
|
color(color_stillPart)
|
||||||
difference() {
|
difference() {
|
||||||
// Main hole
|
// Main hole
|
||||||
translate([-partThickness/2,holeWidth/2,holeHeight/2])
|
translate([-partThickness/2,holeWidth/2,holeHeight/2])
|
||||||
|
@ -208,7 +210,7 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
difference() {
|
difference() {
|
||||||
// Main block
|
// Main block
|
||||||
union() {
|
union() {
|
||||||
translate([-axes_Xreference_posX-dimX-0.01,axes_Xreference_posY,-axes_Yreference_height]) {
|
color(color_stillPart) translate([-axes_Xreference_posX-dimX-0.01,axes_Xreference_posY,-axes_Yreference_height]) {
|
||||||
cube([dimX,dimY,dimZ-axes_Xsmooth_separation]);
|
cube([dimX,dimY,dimZ-axes_Xsmooth_separation]);
|
||||||
translate([-footWidth/2+dimX,dimY/2,footThickness/2]) bcube([footWidth,dimY,footThickness], cr=corner_radius, cres=10);
|
translate([-footWidth/2+dimX,dimY/2,footThickness/2]) bcube([footWidth,dimY,footThickness], cr=corner_radius, cres=10);
|
||||||
}
|
}
|
||||||
|
@ -217,7 +219,8 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
translate([-axes_Xreference_posX,axes_Xreference_posY,axes_Xreference_height]) {
|
translate([-axes_Xreference_posX,axes_Xreference_posY,axes_Xreference_height]) {
|
||||||
// TRANSLATE REFERENCE POSITION to the threaded rod
|
// TRANSLATE REFERENCE POSITION to the threaded rod
|
||||||
translate([-0.01,axes_Xsmooth_separation,0]) {
|
translate([-0.01,axes_Xsmooth_separation,0]) {
|
||||||
rotate([0,-90,0]) cylinder(r=axes_Xsmooth_separation,h=partThickness);
|
rotate([0,-90,0])
|
||||||
|
color(color_stillPart) cylinder(r=axes_Xsmooth_separation,h=partThickness);
|
||||||
if(!isLeft)
|
if(!isLeft)
|
||||||
Cyclone_X_endstopHolder(holes=false);
|
Cyclone_X_endstopHolder(holes=false);
|
||||||
}
|
}
|
||||||
|
@ -286,18 +289,19 @@ module Cyclone_X_leftFrame(isLeft=true) {
|
||||||
translate([-bearingDepth,0,0]) rotate([0,90,0])
|
translate([-bearingDepth,0,0]) rotate([0,90,0])
|
||||||
radialBearing(echoPart=true);
|
radialBearing(echoPart=true);
|
||||||
if(isLeft) {
|
if(isLeft) {
|
||||||
translate([gearWallSeparation,0,0]) rotate([0,90,0])
|
translate([gearWallSeparation,0,0]) rotate([0,90,0]) color(color_movingPart)
|
||||||
rodGear(r=axes_XgearSeparation/(1+1/axes_XgearRatio), h=axes_XgearThickness, echoPart=true);
|
rodGear(r=axes_XgearSeparation/(1+1/axes_XgearRatio), h=axes_XgearThickness, echoPart=true);
|
||||||
// Translate to motor position
|
// Translate to motor position
|
||||||
rotate([motorRotatedOffset,0,0]) {
|
rotate([motorRotatedOffset,0,0]) {
|
||||||
translate([0,axes_XgearSeparation,0])
|
translate([0,axes_XgearSeparation,0])
|
||||||
rotate([-motorRotatedOffset,0,0]) {
|
rotate([-motorRotatedOffset,0,0]) {
|
||||||
translate([-motorWallSeparation,0,0]) rotate([0,90,0]) stepperMotor(screwHeight=motorWallSeparation, echoPart=true);
|
translate([-motorWallSeparation,0,0]) rotate([0,90,0]) stepperMotor(screwHeight=motorWallSeparation, echoPart=true);
|
||||||
translate([gearWallSeparation,0,0]) rotate([0,90,0]) motorGear(r=axes_XgearSeparation/(1+axes_XgearRatio), h=axes_XgearThickness, echoPart=true);
|
translate([gearWallSeparation,0,0]) rotate([0,90,0])
|
||||||
|
color(color_movingPart) motorGear(r=axes_XgearSeparation/(1+axes_XgearRatio), h=axes_XgearThickness, echoPart=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
translate([0.1,0,0])
|
translate([0.1,0,0])
|
||||||
Cyclone_XsubPart_gearCover();
|
color(color_stillPart) Cyclone_XsubPart_gearCover();
|
||||||
}
|
}
|
||||||
translate([0,0,axes_Xsmooth_separation])
|
translate([0,0,axes_Xsmooth_separation])
|
||||||
rotate([0,0,-90])
|
rotate([0,0,-90])
|
||||||
|
@ -342,7 +346,8 @@ module rodHolder(rodD=8.5, screwSize=3, height=0, sideLen=0, thickness=5, space=
|
||||||
} else {
|
} else {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
translate([0,-dimY/2,dimZ/2+space/4]) bcube([dimX,dimY,dimZ-space/2],cr=corner_radius,cres=10);
|
color(color_movingPart) translate([0,-dimY/2,dimZ/2+space/4]) bcube([dimX,dimY,dimZ-space/2],cr=corner_radius,cres=10);
|
||||||
|
color(color_stillPart)
|
||||||
if(sideLen>dimX/2)
|
if(sideLen>dimX/2)
|
||||||
translate([sideLen/2-dimX/4,-dimY/2,-height/2-space/4]) bcube([dimX/2+sideLen,dimY,height-space/2],cr=corner_radius,cres=10);
|
translate([sideLen/2-dimX/4,-dimY/2,-height/2-space/4]) bcube([dimX/2+sideLen,dimY,height-space/2],cr=corner_radius,cres=10);
|
||||||
else
|
else
|
||||||
|
|
|
@ -27,7 +27,7 @@ module Cyclone_YsubPart_nutHolder() {
|
||||||
difference() {
|
difference() {
|
||||||
// Main shape
|
// Main shape
|
||||||
translate([0,0,dimZ/2-holderExtension/2])
|
translate([0,0,dimZ/2-holderExtension/2])
|
||||||
bcube([dimX,dimY,dimZ+holderExtension],cr=2,cres=10);
|
color(color_movingPart) bcube([dimX,dimY,dimZ+holderExtension],cr=2,cres=10);
|
||||||
// Hole for the rod
|
// Hole for the rod
|
||||||
hull() {
|
hull() {
|
||||||
standard_rod(diam=axes_Ythreaded_rodD+rodTolerance, length=dimY*4, threaded=true, renderPart=true, center=true);
|
standard_rod(diam=axes_Ythreaded_rodD+rodTolerance, length=dimY*4, threaded=true, renderPart=true, center=true);
|
||||||
|
@ -102,7 +102,7 @@ module Cyclone_YsubPart_singleLinearBearingHolder(onlyScrews=false) {
|
||||||
} else {
|
} else {
|
||||||
difference() {
|
difference() {
|
||||||
// Main part
|
// Main part
|
||||||
union() {
|
color(color_movingPart) union() {
|
||||||
translate([0,0,dimZ/2])
|
translate([0,0,dimZ/2])
|
||||||
bcube([dimX,dimY,dimZ], cr=3, cres=0);
|
bcube([dimX,dimY,dimZ], cr=3, cres=0);
|
||||||
translate([0,0,dimZ])
|
translate([0,0,dimZ])
|
||||||
|
@ -154,30 +154,67 @@ module Cyclone_YsubPart_PCBholder() {
|
||||||
|
|
||||||
holderArmLength = 30;
|
holderArmLength = 30;
|
||||||
|
|
||||||
|
holderL_thickness = 2;
|
||||||
|
holderL_width = workbed_size_Y-PCB_dimY-PCB_holder_tolerance*2;
|
||||||
|
|
||||||
|
// Draw the PCB (transparent)
|
||||||
|
%translate([0,0,PCBholder_height])
|
||||||
|
color([0.2,0.6,0,0.5]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ], center=true);
|
||||||
|
%translate([0,0,PCBholder_height+PCB_dimZ/2])
|
||||||
|
color([0.8,0.5,0,0.5]) cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ/10], center=true);
|
||||||
|
|
||||||
difference() {
|
difference() {
|
||||||
translate([0,0,PCBholder_height/2])
|
color(color_stillPart) translate([0,0,PCBholder_height/2])
|
||||||
bcube([workbed_size_X,workbed_size_Y,PCBholder_height], cr=25, cres=0);
|
bcube([workbed_size_X,workbed_size_Y,PCBholder_height], cr=25, cres=0);
|
||||||
translate([0,0,PCBholder_height/2])
|
|
||||||
cube([PCB_dimX-PCB_holder_edge_length*2,PCB_dimY-PCB_holder_edge_length*2,PCBholder_height+1], center=true);
|
// Hole for the PCB
|
||||||
translate([0,0,PCBholder_height])
|
translate([0,0,PCBholder_height])
|
||||||
color("green") cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ], center=true);
|
cube([PCB_dimX+PCB_holder_tolerance*2,PCB_dimY+PCB_holder_tolerance*2,PCB_dimZ], center=true);
|
||||||
|
|
||||||
|
// Holes to split the part in two pieces
|
||||||
|
translate([0,0,PCBholder_height/2])
|
||||||
|
cube([PCB_dimX-PCB_holder_edge_length*2,PCB_dimY-PCB_holder_edge_length*2, 2*PCBholder_height+1], center=true);
|
||||||
translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
||||||
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y,PCBholder_height+1]);
|
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y, 2*PCBholder_height+1]);
|
||||||
scale([-1,-1,1]) translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
scale([-1,-1,1]) translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
||||||
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y,PCBholder_height+1]);
|
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y, 2*PCBholder_height+1]);
|
||||||
|
|
||||||
|
// Holes for the screws
|
||||||
for (x = [-1,1], y=[-1,0,1]) {
|
for (x = [-1,1], y=[-1,0,1]) {
|
||||||
translate([x*(PCB_dimX/2+screwSeparation),y*PCB_dimY/4,PCBholder_height+2.9])
|
translate([x*(PCB_dimX/2+screwSeparation),y*PCB_dimY/4,PCBholder_height+2.9])
|
||||||
rotate([0,0,x*-90]) rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
rotate([0,0,x*-90]) rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
||||||
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
scale([-1,-1,1]) translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
scale([-1,-1,1]) translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
||||||
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height+3,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// Holder top L supports
|
||||||
|
translate([0,0,0.1])
|
||||||
|
difference() {
|
||||||
|
color(color_movingPart) translate([0,0,PCBholder_height+holderL_thickness/2])
|
||||||
|
bcube([PCB_dimX+PCB_holder_tolerance*2+holderL_width, PCB_dimY+PCB_holder_tolerance*2+holderL_width, holderL_thickness], cr=8, cres=0);
|
||||||
|
translate([0,0,PCBholder_height/2])
|
||||||
|
cube([PCB_dimX-PCB_holder_edge_length*2,PCB_dimY-PCB_holder_edge_length*2, 2*PCBholder_height+1], center=true);
|
||||||
|
translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
||||||
|
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y, 2*PCBholder_height+1]);
|
||||||
|
scale([-1,-1,1]) translate([-PCB_dimX/2+PCB_holder_edge_length,0,-0.5])
|
||||||
|
cube([PCB_dimX-holderArmLength-PCB_holder_edge_length,workbed_size_Y, 2*PCBholder_height+1]);
|
||||||
|
|
||||||
|
// Holes for the screws
|
||||||
|
translate([0,0,holderL_thickness]) {
|
||||||
|
for (x = [-1,1], y=[-1,0,1]) {
|
||||||
|
translate([x*(PCB_dimX/2+screwSeparation),y*PCB_dimY/4,PCBholder_height+2.9])
|
||||||
|
rotate([0,0,x*-90]) rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height*10,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
||||||
|
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height*10,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
|
scale([-1,-1,1]) translate([PCB_dimX/2-holderArmLength/2,PCB_dimY/2+screwSeparation,PCBholder_height+2.9])
|
||||||
|
rotate([90,0,0]) hole_for_screw(size=3,length=PCBholder_height*10,nutDepth=4.5,nutAddedLen=0,captiveLen=10, rot=90);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -149,7 +149,7 @@ module Cyclone_Y_frontFrame() {
|
||||||
if(draw_references) color("blue") %frame(20);
|
if(draw_references) color("blue") %frame(20);
|
||||||
difference() {
|
difference() {
|
||||||
// Main block
|
// Main block
|
||||||
union() {
|
color(color_stillPart) union() {
|
||||||
hull() {
|
hull() {
|
||||||
rotate([-90,0,0])
|
rotate([-90,0,0])
|
||||||
cylinder(r=dimX/2,h=dimY);
|
cylinder(r=dimX/2,h=dimY);
|
||||||
|
@ -231,12 +231,13 @@ module Cyclone_Y_frontFrame() {
|
||||||
rotate([90,0,0])
|
rotate([90,0,0])
|
||||||
stepperMotor(screwHeight=motorWallSeparation, echoPart=true);
|
stepperMotor(screwHeight=motorWallSeparation, echoPart=true);
|
||||||
translate([0,-rod_nut_len-gear_thickness-bearing_width+bearingDepth,0])
|
translate([0,-rod_nut_len-gear_thickness-bearing_width+bearingDepth,0])
|
||||||
rotate([-90,0,0]) motorGear(r=axes_YgearSeparation/(1+axes_YgearRatio), echoPart=true);
|
rotate([-90,0,0]) color(color_movingPart)
|
||||||
|
motorGear(r=axes_YgearSeparation/(1+axes_YgearRatio), echoPart=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Draw the Y gear cover
|
// Draw the Y gear cover
|
||||||
translate([0,-0.1,0])
|
translate([0,-0.1,0])
|
||||||
Cyclone_YsubPart_gearCover();
|
color(color_stillPart) Cyclone_YsubPart_gearCover();
|
||||||
}
|
}
|
||||||
rotate([-90,0,0])
|
rotate([-90,0,0])
|
||||||
radialBearing(echoPart=true);
|
radialBearing(echoPart=true);
|
||||||
|
@ -248,7 +249,7 @@ module Cyclone_Y_frontFrame() {
|
||||||
rotate([-90,0,0])
|
rotate([-90,0,0])
|
||||||
nut(size=axes_Ythreaded_rodD, echoPart=true);
|
nut(size=axes_Ythreaded_rodD, echoPart=true);
|
||||||
translate([0,rod_nut_len,0])
|
translate([0,rod_nut_len,0])
|
||||||
rotate([-90,0,0])
|
rotate([-90,0,0]) color(color_movingPart)
|
||||||
rodGear(r=axes_YgearSeparation/(1+1/axes_YgearRatio), echoPart=true);
|
rodGear(r=axes_YgearSeparation/(1+1/axes_YgearRatio), echoPart=true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,6 +283,7 @@ module Cyclone_Y_backFrame() {
|
||||||
translate([0,bearingDepth-bearing_width,0]) {
|
translate([0,bearingDepth-bearing_width,0]) {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
|
color(color_stillPart) {
|
||||||
rotate([90,0,0])
|
rotate([90,0,0])
|
||||||
cylinder(r=dimX/2,h=dimY);
|
cylinder(r=dimX/2,h=dimY);
|
||||||
translate([-dimX/2,-dimY,-axes_Y_threaded_height])
|
translate([-dimX/2,-dimY,-axes_Y_threaded_height])
|
||||||
|
@ -295,9 +297,10 @@ module Cyclone_Y_backFrame() {
|
||||||
translate([0,dimY/2+footSeparation+foot_additional_separation,0])
|
translate([0,dimY/2+footSeparation+foot_additional_separation,0])
|
||||||
cylinder(r=dimY/2,h=footThickness);
|
cylinder(r=dimY/2,h=footThickness);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
translate([0,-dimY-0.01,dimX/2])
|
translate([0,-dimY-0.01,dimX/2])
|
||||||
rotate([0,endstopHolderRotation,0])
|
rotate([0,endstopHolderRotation,0])
|
||||||
endstop_holder(holes=false);
|
endstop_holder(holes=false, plasticColor=color_stillPart);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([0,-dimY-0.01,dimX/2])
|
translate([0,-dimY-0.01,dimX/2])
|
||||||
|
@ -391,9 +394,8 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
|
||||||
footSeparation = screwSize*2;
|
footSeparation = screwSize*2;
|
||||||
footThickness = 10;
|
footThickness = 10;
|
||||||
|
|
||||||
color("lightcyan") {
|
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
color(color_stillPart) union() {
|
||||||
translate([0,0,-axes_Yreference_height])
|
translate([0,0,-axes_Yreference_height])
|
||||||
cube([dimX,dimY,dimZ+holderThickness+axes_Ysmooth_rodD/2]);
|
cube([dimX,dimY,dimZ+holderThickness+axes_Ysmooth_rodD/2]);
|
||||||
translate([-holderOuterRadius,0,-axes_Yreference_height])
|
translate([-holderOuterRadius,0,-axes_Yreference_height])
|
||||||
|
@ -435,7 +437,6 @@ module Cyclone_Y_rightSmoothRodIdler(mirrorLogo = false) {
|
||||||
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
|
hole_for_screw(size=screwSize,length=footThickness+base_thickness,nutDepth=0,nutAddedLen=0,captiveLen=0, rot=90, invert=true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Draw nuts and bolts
|
// Draw nuts and bolts
|
||||||
translate([2.5+holderOuterRadius,dimY/2,holderOuterRadius])
|
translate([2.5+holderOuterRadius,dimY/2,holderOuterRadius])
|
||||||
rotate([0,90,0])
|
rotate([0,90,0])
|
||||||
|
|
|
@ -182,13 +182,13 @@ module stepperMotor(screwHeight=10, renderPart=false, echoPart=false) {
|
||||||
|
|
||||||
module motorGear(r=30,h=10,renderPart=false, echoPart=false) {
|
module motorGear(r=30,h=10,renderPart=false, echoPart=false) {
|
||||||
renderStandardPart(renderPart)
|
renderStandardPart(renderPart)
|
||||||
color("lightgreen") cylinder(r=r,h=h)
|
cylinder(r=r,h=h)
|
||||||
if(echoPart) echo(str("BOM: Gear. Motor."));
|
if(echoPart) echo(str("BOM: Gear. Motor."));
|
||||||
}
|
}
|
||||||
|
|
||||||
module rodGear(r=30,h=10,renderPart=false, echoPart=false) {
|
module rodGear(r=30,h=10,renderPart=false, echoPart=false) {
|
||||||
renderStandardPart(renderPart)
|
renderStandardPart(renderPart)
|
||||||
color("lightgreen") cylinder(r=r,h=h)
|
cylinder(r=r,h=h)
|
||||||
if(echoPart) echo(str("BOM: Gear. Rod."));
|
if(echoPart) echo(str("BOM: Gear. Rod."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,7 +281,7 @@ module control_board() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module endstop_holder(holes=false, shortNuts=false) {
|
module endstop_holder(holes=false, plasticColor="blue", shortNuts=false) {
|
||||||
boardX = 41;
|
boardX = 41;
|
||||||
boardY = 16.05;
|
boardY = 16.05;
|
||||||
boardZ = 1.62;
|
boardZ = 1.62;
|
||||||
|
@ -312,7 +312,7 @@ module endstop_holder(holes=false, shortNuts=false) {
|
||||||
hole_for_screw(size=3,length=15,nutDepth=shortNuts?5:0,nutAddedLen=shortNuts?0:5,captiveLen=10,rot=90);
|
hole_for_screw(size=3,length=15,nutDepth=shortNuts?5:0,nutAddedLen=shortNuts?0:5,captiveLen=10,rot=90);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
translate([holderX/2,holderY/2,-holderZ/2-boardZ])
|
color(plasticColor) translate([holderX/2,holderY/2,-holderZ/2-boardZ])
|
||||||
bcube([holderX,holderY,holderZ], cr=2, cres=4);
|
bcube([holderX,holderY,holderZ], cr=2, cres=4);
|
||||||
// PCB
|
// PCB
|
||||||
color("lightgrey") translate([0,0,-boardZ])
|
color("lightgrey") translate([0,0,-boardZ])
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue