OSE CircularKnitic v18.03: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 13: | Line 13: | ||
*Apply constant tension on fabric | *Apply constant tension on fabric | ||
*Roll onto spool for easy handling and storage | *Roll onto spool for easy handling and storage | ||
=Part Code= | |||
==CKp3.scad== | |||
Added holes in base for long tails | |||
*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? | |||
<nowiki> | |||
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 | |||
</nowiki> | |||
Revision as of 03:27, 2 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
CKp3.scad
Added holes in base for long tails
- 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