OSE CircularKnitic v18.03: Difference between revisions
Jump to navigation
Jump to search
| Line 16: | Line 16: | ||
=Part Code= | =Part Code= | ||
==CKvars.scad== | |||
<nowiki> | |||
////MAIN SETTINGS//// | |||
//select needle size file that will be used | |||
include <CKneedleVars-SK120.scad>; | |||
//diameter from inside edge of needles | |||
p2needlegrooveID=274.4; | |||
//number of "p2" parts around circle | |||
p2number=12; | |||
//number of needles mounted on each "p2" part | |||
p2needles=5; | |||
//number of "p3" parts around circle | |||
p3number=4; | |||
//number of "p4" parts around circle | |||
p4number=4; | |||
////PART SETTINGS//// | |||
//p2 | |||
needleWidth=1.8; | |||
p2needlegroovefromID=2.2; | |||
p2ID=p2needlegrooveID-(p2needlegroovefromID*2); | |||
p2needlegrooveDepth=2.8; | |||
p2H=104; | |||
p2W=4.8; | |||
p2OD=p2ID+(p2W*2); | |||
p2holeH=75; | |||
p2holeD=2; | |||
p2holeCSD=4.01726; | |||
p2holeCSL=1.5; | |||
//p3 | |||
p3wiggle=0.1; | |||
p3baseH=3; | |||
p3baseID=p2ID-20-(p3wiggle*2); | |||
p3baseOD=p2OD+20+(p3wiggle*2); | |||
p3baseholefromODID=3; | |||
p3baseholeD=3; | |||
p3baseholenumber=4; | |||
p3ridgeW1=3; | |||
p3ridgeW2=5; | |||
p3ridgeH=5; | |||
p3wallW=(nH-nY)/2; //half of needle butt | |||
p3wallchamfW=2; | |||
p3wallchamfH=3; | |||
p3wallHaboveholesc=5; | |||
p3grooveH1=18; | |||
p3grooveH2=73; | |||
p3grooveW=2.2; | |||
//p4 | |||
p4rampW=4; | |||
p4rampH=14.57; | |||
p4rampfromID=2.5; | |||
p4rampoverhangH=4; | |||
p4rampfromOD=1.34; | |||
p4rampC1=10; | |||
p4rampC2=40; | |||
p4rampC2transX=10; | |||
p4rampC2transZ=3.82; | |||
p4baseH=11; | |||
p4basegapH=8; | |||
p4baseW=11.2; | |||
p4basegapW=5.09; | |||
p4clawW=9; | |||
p4holesnumber=3; | |||
p4holeH=5; | |||
//plate | |||
pPspace1=12; //? space from main table top to first plate | |||
pPplate1=6; //thickness of geared plated | |||
pPspace2=12; //space between geared plate and mountain plate | |||
pPplate2=5; | |||
//mountain | |||
pMwallT=7.5; //min thickness from groove to back wall | |||
pMgroove=nH-nY-p3wallW+1; //depth of groove | |||
pMgrooveAngle=45; | |||
pMgrooveC1=pPspace2; //top of groove at position 1 "entrance" | |||
pMgrooveC2=nC+2; //top of groove at position 2 "push down" | |||
pMgrooveC3=44.25; //top of groove at position 3 "top center" | |||
pMgrooveSlop=2; | |||
pMwallHextra=5.75; //extra height above groove at heighest | |||
//calculated settings | |||
centerlineD=p2ID+(p2W+(p3wiggle*2)); | |||
p4baseOD=centerlineD+p4baseW; | |||
p4baseID=centerlineD-p4baseW; | |||
p4basegapOD=centerlineD+p4basegapW; | |||
p4basegapID=centerlineD-p4basegapW; | |||
firstcenter=(((((360/p2number/p2needles/2)/360*(p2OD*PI))-(needleWidth/2))/((360/p2number/p2needles/2)/360*(p2OD*PI)))*(360/p2number/p2needles/2))/2; | |||
p3wallH=p3wallHaboveholesc+p2holeH+p3baseH; | |||
////SETTINGS OUTPUT ECHOS/// | |||
echo("Total Needles:", p2number*p2needles); | |||
echo("Millimeters Between Needles:", PI*p2needlegrooveID/(p2number*p2needles)); | |||
</nowiki> | |||
==CKp3.scad== | ==CKp3.scad== | ||
Revision as of 02:36, 8 March 2018
Fork of CircularKnitic
Goals
Needle Accomidation
- Long tails
- Bent back tails
- Test 3D printed needles
Fabric Spool
- Apply constant tension on fabric
- Roll onto spool for easy handling and storage
Part Code
CKvars.scad
////MAIN SETTINGS////
//select needle size file that will be used
include <CKneedleVars-SK120.scad>;
//diameter from inside edge of needles
p2needlegrooveID=274.4;
//number of "p2" parts around circle
p2number=12;
//number of needles mounted on each "p2" part
p2needles=5;
//number of "p3" parts around circle
p3number=4;
//number of "p4" parts around circle
p4number=4;
////PART SETTINGS////
//p2
needleWidth=1.8;
p2needlegroovefromID=2.2;
p2ID=p2needlegrooveID-(p2needlegroovefromID*2);
p2needlegrooveDepth=2.8;
p2H=104;
p2W=4.8;
p2OD=p2ID+(p2W*2);
p2holeH=75;
p2holeD=2;
p2holeCSD=4.01726;
p2holeCSL=1.5;
//p3
p3wiggle=0.1;
p3baseH=3;
p3baseID=p2ID-20-(p3wiggle*2);
p3baseOD=p2OD+20+(p3wiggle*2);
p3baseholefromODID=3;
p3baseholeD=3;
p3baseholenumber=4;
p3ridgeW1=3;
p3ridgeW2=5;
p3ridgeH=5;
p3wallW=(nH-nY)/2; //half of needle butt
p3wallchamfW=2;
p3wallchamfH=3;
p3wallHaboveholesc=5;
p3grooveH1=18;
p3grooveH2=73;
p3grooveW=2.2;
//p4
p4rampW=4;
p4rampH=14.57;
p4rampfromID=2.5;
p4rampoverhangH=4;
p4rampfromOD=1.34;
p4rampC1=10;
p4rampC2=40;
p4rampC2transX=10;
p4rampC2transZ=3.82;
p4baseH=11;
p4basegapH=8;
p4baseW=11.2;
p4basegapW=5.09;
p4clawW=9;
p4holesnumber=3;
p4holeH=5;
//plate
pPspace1=12; //? space from main table top to first plate
pPplate1=6; //thickness of geared plated
pPspace2=12; //space between geared plate and mountain plate
pPplate2=5;
//mountain
pMwallT=7.5; //min thickness from groove to back wall
pMgroove=nH-nY-p3wallW+1; //depth of groove
pMgrooveAngle=45;
pMgrooveC1=pPspace2; //top of groove at position 1 "entrance"
pMgrooveC2=nC+2; //top of groove at position 2 "push down"
pMgrooveC3=44.25; //top of groove at position 3 "top center"
pMgrooveSlop=2;
pMwallHextra=5.75; //extra height above groove at heighest
//calculated settings
centerlineD=p2ID+(p2W+(p3wiggle*2));
p4baseOD=centerlineD+p4baseW;
p4baseID=centerlineD-p4baseW;
p4basegapOD=centerlineD+p4basegapW;
p4basegapID=centerlineD-p4basegapW;
firstcenter=(((((360/p2number/p2needles/2)/360*(p2OD*PI))-(needleWidth/2))/((360/p2number/p2needles/2)/360*(p2OD*PI)))*(360/p2number/p2needles/2))/2;
p3wallH=p3wallHaboveholesc+p2holeH+p3baseH;
////SETTINGS OUTPUT ECHOS///
echo("Total Needles:", p2number*p2needles);
echo("Millimeters Between Needles:", PI*p2needlegrooveID/(p2number*p2needles));
CKp3.scad
- Added holes in base for long tails
- does this need to be bigger to allow for some slop?
- need to tweak CKvars.scad to make p3wall thicker
- need to optimize groove height to go as low as possible
- what to do if needle has bent back tail?
include <CKvars.scad>;
CKp3();
module CKp3(){
rez=360/p2number*2*2;
$fn=rez; //defines resolution of circles.
centerlineD=p2ID+(p2W+(p3wiggle*2));
echo(centerlineD);
translate([p3baseOD/2,0,0]){
difference(){
union(){
cylinder(h=p3baseH,d=p3baseOD);
difference(){
cylinder(h=p3ridgeH+p3baseH,d=centerlineD-((p2W+(p3wiggle*2)/2)));
translate([0,0,p3baseH])
cylinder(h=p3ridgeH,d1=centerlineD-(p3ridgeW2*2)-((p2W+(p3wiggle*2)/2)),d2=centerlineD-(p3ridgeW1*2)-((p2W+(p3wiggle*2)/2)));
}
difference(){
translate([0,0,p3baseH])
cylinder(h=p3wallchamfH,d1=centerlineD+((p3wallchamfW+p3wallW)*2)+((p2W+(p3wiggle*2)/2)),d2=centerlineD+(p3wallW*2)+((p2W+(p3wiggle*2)/2)));
cylinder(h=p3wallchamfH+p3baseH,d=centerlineD+((p2W+(p3wiggle*2)/2)));
}
difference(){
cylinder(h=p3wallH,d=centerlineD+(p3wallW*2)+((p2W+(p3wiggle*2)/2)));
cylinder(h=p3wallH,d=centerlineD+((p2W+(p3wiggle*2)/2)));
}
} //end main union
cylinder(h=p3wallH,d=p3baseID);
translate([-p3baseOD/2,-p3baseOD/2,0]){
cube([p3baseOD,p3baseOD/2,p3wallH]);
}
rotate([0,0,-360/p3number]){
translate([-p3baseOD/2,0,0])
cube([p3baseOD,p3baseOD/2,p3wallH]);
}
//slots
for(i=[1:p2needles*(p2number/p3number)]){
rotate([0,0,(360/p2number/p2needles/2)-(360/p2number/p2needles*i)]){
translate([((-centerlineD-(p3wallW*2)-((p2W+(p3wiggle*2)/2)))/2)-0.1,-p3grooveW/2,p3grooveH1])
cube([p3wallW+0.2,p3grooveW,p3grooveH2-p3grooveH1]);
}
}
//base needle holes
for(i=[1:p2needles*(p2number/p3number)]){
rotate([0,0,(360/p2number/p2needles/2)-(360/p2number/p2needles*i)]){
translate([-p2OD/2-0.2,-needleWidth/2,-0.01])
#cube([p2needlegrooveDepth+0.2,needleWidth,p3wallH+0.02]);
}
}
//base mounting holes
for(i=[1:p3baseholenumber]){
rotate([0,0,(((360/p3number/p3baseholenumber))/2)-((360/p3number/p3baseholenumber)*i)]){
translate([-(p3baseID/2)-p3baseholefromODID,0,0])
#cylinder(h=p3baseH,d=p3baseholeD);
}
}
for(i=[1:p3baseholenumber]){
rotate([0,0,(((360/p3number/p3baseholenumber))/2)-((360/p3number/p3baseholenumber)*i)]){
translate([-(p3baseOD/2)+p3baseholefromODID,0,0])
#cylinder(h=p3baseH,d=p3baseholeD);
}
}
//first and last holes
rotate([0,0,-firstcenter]){
translate([((-centerlineD-(p3wallW*2)-((p2W+(p3wiggle*2)/2)))/2)-0.1,0,p2holeH+p3baseH])
rotate([0,90,0]){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
}
}
rotate([0,0,-(360/p2number*(p3number-1))+firstcenter]){
translate([((-centerlineD-(p3wallW*2)-((p2W+(p3wiggle*2)/2)))/2)-0.1,0,p2holeH+p3baseH])
rotate([0,90,0]){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
}
}
//middle holes
for(i=[0:(p2number/p3number)-1]){
rotate([0,0,(-360/p2number/p2needles)+(i*-360/p2number)]){
translate([((-centerlineD-(p3wallW*2)-((p2W+(p3wiggle*2)/2)))/2)-0.1,0,p2holeH+p3baseH])
rotate([0,90,0]){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
}
}
} //end for
for(i=[0:(p2number/p3number)-1]){
rotate([0,0,(-360/p2number/p2needles*(p2needles-1))+(i*-360/p2number)]){
translate([((-centerlineD-(p3wallW*2)-((p2W+(p3wiggle*2)/2)))/2)-0.1,0,p2holeH+p3baseH])
rotate([0,90,0]){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
}
}
}//end for
//end middle holes
}
}
} //end module