//include<../../JDND01698/R1/OpenSCAD.scad> $fn = 64; t1 = 0.05; t2 = t1*2; c0 = [0.5, 0.5, 0.5]; c1 = [0.2, 0.2, 0.2]; module HTD_M8(teeth, width, wallThickness=0, drawLines=false, c0=c0, c1=c1) { teethPitch = 8; beltThickness1 = 3; beltThickness2 = 6.5; toothHeight = beltThickness2-beltThickness1; teethSize = 5; // Pitch Diameter (P.D.) = (Pitch x Number of teeth) / Pi (3.14159) pitchDiamiter = (teethPitch * teeth) / 3.14159; // outside diamiter of the belt outsideDiamiter = pitchDiamiter + (beltThickness1/2); // valley Diamiter of the belt valleyDiamiter = pitchDiamiter - (beltThickness1/2); // inside Diamiter of the belt insideDiamiter = pitchDiamiter - (beltThickness1/2) - (toothHeight*2); // pully Diamiter pullyDiamiter = valleyDiamiter; if (drawLines) { color("blue") translate([0, 0, width+t2]) union() { difference() { cylinder(d=pitchDiamiter, h=0.1); translate([0,0,-t1]) cylinder(d=pitchDiamiter-t1, h=0.1+t2); } difference() { cylinder(d=outsideDiamiter, h=0.1); translate([0,0,-t1]) cylinder(d=outsideDiamiter-t1, h=0.1+t2); } difference() { cylinder(d=valleyDiamiter, h=0.1); translate([0,0,-t1]) cylinder(d=valleyDiamiter-t1, h=0.1+t2); } difference() { cylinder(d=insideDiamiter, h=0.1); translate([0,0,-t1]) cylinder(d=insideDiamiter-t1, h=0.1+t2); } } } // //difference() { color(c1) union() { if( wallThickness > 0) { dia = outsideDiamiter+2; //bottom lip translate([0, 0, -wallThickness]) cylinder($fn=teeth, d=dia, h=wallThickness); // top lip translate([0, 0, width]) cylinder($fn=teeth, d=dia, h=wallThickness); } // cylinder(d=pullyDiamiter, h=width); } color(c0) union() { // each tooth for(step = [0 : 1 : teeth]) { color("red") translate([0, 0, -t1]) rotate([0, 0, 360/teeth*step]) translate([outsideDiamiter/2, 0, 0]) translate([-teethSize/2, 0, 0]) color("red") union() { cylinder(d=teethSize, h=width+t2); temp= 0; cylinder(d=0.1, h=width+t2+temp); translate([0, -(teethSize/2), 0]) cube([teethSize/2, teethSize, width+t2+temp]); teethSize2 = teethSize/4; translate([teethSize/2, teethSize/2, 0]) translate([-(outsideDiamiter-valleyDiamiter)/2, 0, 0]) translate([-teethSize2/2, teethSize2/2, 0]) difference() { val = (outsideDiamiter-valleyDiamiter)/2; translate([-teethSize2/2, -teethSize2/2, 0]) cube([teethSize2+val, teethSize2, width+t2]); translate([0, 0, -t1]) cylinder(d=teethSize2, h=width+t2+t2); translate([-teethSize2/2, 0, -t1]) cube([teethSize2+0, teethSize2, width+t2+t2]); translate([-teethSize2, -teethSize2/2-t1, -t1]) cube([teethSize2, teethSize2+t1, width+t2+t2]); } translate([teethSize/2, -teethSize/2, 0]) translate([-(outsideDiamiter-valleyDiamiter)/2, 0, 0]) translate([-teethSize2/2, -teethSize2/2, 0]) difference() { val = (outsideDiamiter-valleyDiamiter)/2; translate([-teethSize2/2, -teethSize2/2, 0]) cube([teethSize2+val, teethSize2, width+t2]); translate([0, 0, -t1]) cylinder(d=teethSize2, h=width+t2+t2); translate([-teethSize2/2, -(teethSize2/2)-t1, -t1]) cube([teethSize2, (teethSize2/2)+t1, width+t2+t2]); translate([-(teethSize2/2)-t1, -teethSize2/2, -t1]) cube([(teethSize2/2)+t1, teethSize2, width+t2+t2]); } } } } } } //render() { HTD_M8(62, 32); }