CircularKnitic Parametric: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
Line 29: Line 29:
module CKp2(){
module CKp2(){
      
      
     $fn=360/p2number*2*2; //defines resolution of circles.
     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-2)]){
         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
 

Original Files

Media:CircularKnitic.skp

github