CircularKnitic Parametric: Difference between revisions
Jump to navigation
Jump to search
Line 29: | Line 29: | ||
module CKp2(){ | module CKp2(){ | ||
rez=360/p2number*2*2; | |||
$fn=rez; //defines resolution of circles. | |||
Line 55: | Line 57: | ||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | ||
} | } | ||
} | |||
rotate([0,0,-360/p2number/p2needles*(p2needles- | rotate([0,0,-360/p2number/p2needles*(p2needles-1)]){ | ||
translate([-p2OD/2-0.2,0,p2holeH]) | translate([-p2OD/2-0.2,0,p2holeH]) | ||
rotate([0,90,0]){ | rotate([0,90,0]){ | ||
Line 62: | Line 65: | ||
} | } | ||
} | } | ||
} | |||
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]){ | |||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
} | |||
} | |||
rotate([0,0,-360/p2number+firstcenter]){ | |||
translate([-p2OD/2-0.2,0,p2holeH]) | |||
rotate([0,90,0]){ | |||
cylinder(h=p2OD-p2ID+0.2, d=p2holeD); | |||
} | |||
} | |||
Revision as of 23:26, 3 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]){ cylinder(h=p2OD-p2ID+0.2, d=p2holeD); } } rotate([0,0,-360/p2number/p2needles*(p2needles-1)]){ translate([-p2OD/2-0.2,0,p2holeH]) rotate([0,90,0]){ cylinder(h=p2OD-p2ID+0.2, d=p2holeD); } } 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]){ cylinder(h=p2OD-p2ID+0.2, d=p2holeD); } } rotate([0,0,-360/p2number+firstcenter]){ translate([-p2OD/2-0.2,0,p2holeH]) rotate([0,90,0]){ cylinder(h=p2OD-p2ID+0.2, d=p2holeD); } } } } } //end module