CircularKnitic Parametric: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 23: | Line 23: | ||
[[Image:CKp2.png|200px]] | [[Image:CKp2.png|200px]] | ||
<nowiki> | <nowiki> | ||
| Line 59: | Line 57: | ||
translate([-p2OD/2-0.2,0,p2holeH]) | translate([-p2OD/2-0.2,0,p2holeH]) | ||
rotate([0,90,0]){ | rotate([0,90,0]){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | union(){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){ | |||
cylinder(h=p2holeCSL+2, d=p2holeCSD); | |||
} | |||
} //end union | |||
} | } | ||
} | } | ||
| Line 66: | Line 69: | ||
translate([-p2OD/2-0.2,0,p2holeH]) | translate([-p2OD/2-0.2,0,p2holeH]) | ||
rotate([0,90,0]){ | rotate([0,90,0]){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | union(){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){ | |||
cylinder(h=p2holeCSL+2, d=p2holeCSD); | |||
} | |||
} //end union | |||
} | } | ||
} | } | ||
| Line 77: | Line 85: | ||
translate([-p2OD/2-0.2,0,p2holeH]) | translate([-p2OD/2-0.2,0,p2holeH]) | ||
rotate([0,90,0]){ | rotate([0,90,0]){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | union(){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){ | |||
cylinder(h=p2holeCSL+2, d=p2holeCSD); | |||
} | |||
} //end union | |||
} | } | ||
} | } | ||
| Line 84: | Line 97: | ||
translate([-p2OD/2-0.2,0,p2holeH]) | translate([-p2OD/2-0.2,0,p2holeH]) | ||
rotate([0,90,0]){ | rotate([0,90,0]){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | union(){ | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){ | |||
cylinder(h=p2holeCSL+2, d=p2holeCSD); | |||
} | |||
} //end union | |||
} | } | ||
} | } | ||
Revision as of 00:35, 4 February 2018
Goal: Replicate CircularKnitic's designs with OpenScad to allow for larger machines to be built
Code
CKvars.scad
needleWidth=1.8; p2needlegrooveID=274.4; p2needlegrooveDepth=2.8; p2H=104; p2W=4.8; p2ID=270; p2OD=p2ID+(p2W*2); p2holeH=75; p2holeD=2; p2number=12; //number of sections around circle p2needles=5; //needles mounted on each p2
CKp2.scad
include <CKvars.scad>;
CKp2();
module CKp2(){
rez=360/p2number*2*2;
$fn=rez; //defines resolution of circles.
translate([p2OD/2,0,0]){
difference(){
cylinder(h=p2H,d=p2OD);
cylinder(h=p2H,d=p2ID);
translate([-p2OD/2,-p2OD/2,0]){
cube([p2OD,p2OD/2,p2H]);
}
rotate([0,0,-360/p2number]){
translate([-p2OD/2,0,0])
cube([p2OD,p2OD/2,p2H]);
}
for(i=[1:p2needles]){
rotate([0,0,(360/p2number/p2needles/2)-(360/p2number/p2needles*i)]){
translate([-p2OD/2-0.2,-needleWidth/2,0])
cube([p2needlegrooveDepth+0.2,needleWidth,p2H]);
}
}
rotate([0,0,-360/p2number/p2needles]){
translate([-p2OD/2-0.2,0,p2holeH])
rotate([0,90,0]){
union(){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){
cylinder(h=p2holeCSL+2, d=p2holeCSD);
}
} //end union
}
}
rotate([0,0,-360/p2number/p2needles*(p2needles-1)]){
translate([-p2OD/2-0.2,0,p2holeH])
rotate([0,90,0]){
union(){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){
cylinder(h=p2holeCSL+2, d=p2holeCSD);
}
} //end union
}
}
echo(((((360/p2number/p2needles/2)/360*(p2OD*PI))-(needleWidth/2))/((360/p2number/p2needles/2)/360*(p2OD*PI)))*(360/p2number/p2needles/2));
firstcenter=(((((360/p2number/p2needles/2)/360*(p2OD*PI))-(needleWidth/2))/((360/p2number/p2needles/2)/360*(p2OD*PI)))*(360/p2number/p2needles/2))/2;
rotate([0,0,-firstcenter]){
translate([-p2OD/2-0.2,0,p2holeH])
rotate([0,90,0]){
union(){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){
cylinder(h=p2holeCSL+2, d=p2holeCSD);
}
} //end union
}
}
rotate([0,0,-360/p2number+firstcenter]){
translate([-p2OD/2-0.2,0,p2holeH])
rotate([0,90,0]){
union(){
cylinder(h=p2OD-p2ID+0.2, d=p2holeD);
translate([0,0,((p2OD-p2ID)/2)-p2holeCSL]){
cylinder(h=p2holeCSL+2, d=p2holeCSD);
}
} //end union
}
}
}
}
} //end module
Original Files
Notes
- all measurements in millimeters as used in original design