RotoKnitic v19.01

From Open Source Ecology
Revision as of 01:05, 12 August 2019 by Dorkmo (talk | contribs) (→‎TODO)
Jump to navigation Jump to search

Using same parts and materials from OSE CircularKnitic v18.03, but switch mounting plates so that the mountain is stationary.

  • requires spinning spool for fabric output
  • allows for more multiple mountains and input threads

Design

Concept

Standard

RotoKnitic - Concept Drawing 20190102.png

google doc

Pick-a-Needle

OSE - RotoKnitic Pick-a-Needle - Concept Drawing 20190427.png

google doc

Goals

  • change direction
  • sock heels

Needle Accomidation

  • pick-a-needle, optionally raise needles to an inactive postion
  • Test laser cut needles, printed latch?
  • Test 3D printed needles

Fabric Spool

  • Apply constant tension on fabric
  • Roll onto spool for easy handling and storage


Provisional BOM

Part SCAD Code

Variable Profiles

CKvars.scad

Needles

2D Laser Cut Parts

3D Printed Parts

p4 "yarn holder"

include <CKvars.scad>;

CKp4();


module CKp4(){
    
    rez=p2number*p2needles*2;
    
    $fn=rez; //defines resolution of circles.
       
    translate([p4baseOD/2,0,0]){
        
    difference(){  
        union(){
    cylinder(h=p4baseH,d=p4baseOD-(p4basegapW*2)-((p4baseW-p4basegapW)/2*2));            
            
            //ramps
           
            
            for(i=[1:p2needles*(p2number/p4number)]){
        rotate([0,0,(360/p2number/p2needles)-(360/p2number/p2needles*i)-(((360/p2number/p2needles))/2)]){        
           

            
            difference(){
            minkowski(){
            union(){
            translate([-p4baseOD/2+p4rampfromOD,p4rampWm/2,p4rampH+p4baseH-(p4rampC1/2)])
            rotate([90,0,0])
            cylinder(h=p4rampWm,d=p4rampC1);
            
            intersection(){
            translate([-10,0,3.82])
            translate([-p4baseOD/2+p4rampfromOD,p4rampWm/2,p4rampH+p4baseH-(p4rampC2/2)])
            rotate([90,0,0])
            cylinder(h=p4rampWm,d=p4rampC2);
                
                            translate([-7,0,-2.86/2])
            translate([-p4baseOD/2+p4rampfromOD,p4rampWm/2,p4rampH+p4baseH-(p4rampC2/2)])
            cube([p4rampC2,p4rampC2,p4rampC2],center=true);
            
            }
        }//end union
        
difference(){
translate([-p4rampMinkD/2,0,0])
cylinder(d=p4rampMinkD,h=0.01, $fn=36);
translate([-p4rampMinkD,0,-0.01])
cube([p4rampMinkD,p4rampMinkD,0.02], center=true);    
} //end diff

} //end mink
        
       translate([-p4rampC2/2,0,0])
       translate([-p4baseOD/2+p4rampfromOD,p4rampW/2,p4rampH+p4baseH-(p4rampC2/2)])
       cube([p4rampC2,p4rampC2,p4rampC2+1],center=true);
        
       translate([0,0,0])
       translate([-p4baseOD/2+p4rampfromOD,p4rampW/2,p4baseH-(p4rampC2/2)-0.1])
      cube([p4rampC2,p4rampC2,p4rampC2],center=true);  
  
        
               translate([0,-p4clawW/2,0])
       translate([-(p4baseID/2)-p4rampfromID,0,p4baseH])
        cube([(p4baseID/2)+p4rampfromID,p4clawW,p4rampoverhangH]);
        
            translate([-7,0,0])
            translate([-p4baseOD/2+p4rampfromOD,(p4rampW/2)+(p4rampC2/2)-0.01,p4rampH+p4baseH-(p4rampC2/2)])
            cube([p4rampC2,p4rampC2,p4rampC2],center=true);
        
        translate([-7,0,0])
            translate([-p4baseOD/2+p4rampfromOD,-(p4rampW/2)-(p4rampC2/2)+0.01,p4rampH+p4baseH-(p4rampC2/2)])
            cube([p4rampC2,p4rampC2,p4rampC2],center=true);
        
        
    }//end ramps difference
    

    
} //end for rotate
    
} //end for


    
            //claws
            
        for(i=[1:p2needles*(p2number/p4number)]){
        rotate([0,0,(360/p2number/p2needles)-(360/p2number/p2needles*i)-(((360/p2number/p2needles))/2)]){
            hull(){
            translate([-p4baseOD/2,-p4clawW/2,0])
              #cube([(p4baseOD-p4baseID)/2,p4clawW,p4basegapH]);
            translate([-p4baseOD/2,-((p4rampW+p4clawWslanttop)/2),p4baseH-0.1])
              #cube([(p4baseOD-p4baseID)/2,p4rampW+p4clawWslanttop,0.1]);

            } //end hull
        }
    }//end for
            
        } //end main union
    cylinder(h=p4baseH,d=p4baseID);
    
    //simiple chamfer of inside corner    
    translate([0,0,p4baseH-0.5])
    cylinder(h=0.5,d1=p4baseID+0.5,d2=p4baseID+1.9);    
    translate([0,0,p4baseH-0.5-0.5])
    cylinder(h=0.5,d1=p4baseID,d2=p4baseID+0.5);    

        
    translate([-p4baseOD/2,-p4baseOD/2,0]){    
    cube([p4baseOD,p4baseOD/2,p4baseH]);
    }
    rotate([0,0,-360/p4number]){
    translate([-p4baseOD/2,0,0])    
    cube([p4baseOD,p4baseOD/2,p4baseH]);        
    }

difference(){
    cylinder(h=p4basegapH,d=p4basegapOD);  
    cylinder(h=p4basegapH,d=p4basegapID);    
}


//bolt holes        
            for(i=[0:(p2number/p4number)-1]){
         rotate([0,0,(-360/p2number/p2needles*0.5)+(i*-360/p2number)]){
             

if(p2p4type==1){
    translate([-(p4baseOD/2)+((p4baseOD-p4baseID)/2),0,p4holeH])
    rotate([0,270,0])
translate([0,0,0])
union(){
cylinder(d1=p2p4flatHD,d2=0,h=(p2p4flatHD/2)/tan(45),$fn=36);
translate([0,0,-(p2p4flatHD)/tan(45)])
cylinder(d1=p2p4flatHD*3,d2=p2p4flatHD,h=(p2p4flatHD)/tan(45),$fn=36);
cylinder(d=p2p4flatD,h=((p4baseOD-p4baseID)/2)+2,$fn=36);
}//end union
}//end if
if(p2p4type==0){
    translate([-(p4baseOD/2)+((p4baseOD-p4baseID)/2),0,p4holeH])
    rotate([0,270,0])
translate([0,0,0])
union(){
translate([0,0,-p2p4boltHH/2])
cylinder(d=p2p4boltHD,h=p2p4boltHH,$fn=36);
cylinder(d=p2p4boltD,h=((p4baseOD-p4baseID)/2)+2,$fn=36);
}//end union
}//end if


}
}

//second set
       for(i=[0:(p2number/p3number)-1]){
        rotate([0,0,-(360/p2number/p2needles*0.5)+(360/p2number/p2needles)+(i*-360/p2number)+(-360/p2number)]){
 
if(p2p4type==1){  // if flat socket
    translate([-(p4baseOD/2)+((p4baseOD-p4baseID)/2),0,p4holeH])
    rotate([0,270,0])
translate([0,0,0])
union(){
cylinder(d1=p2p4flatHD,d2=0,h=(p2p4flatHD/2)/tan(45),$fn=36);
translate([0,0,-(p2p4flatHD)/tan(45)])
cylinder(d1=p2p4flatHD*3,d2=p2p4flatHD,h=(p2p4flatHD)/tan(45),$fn=36);
cylinder(d=p2p4flatD,h=((p4baseOD-p4baseID)/2)+2,$fn=36);
}//end union
}//end if
if(p2p4type==0){  // if regular socket
    translate([-(p4baseOD/2)+((p4baseOD-p4baseID)/2),0,p4holeH])
    rotate([0,270,0])
translate([0,0,0])
union(){
translate([0,0,-p2p4boltHH/2])
cylinder(d=p2p4boltHD,h=p2p4boltHH,$fn=36);
cylinder(d=p2p4boltD,h=((p4baseOD-p4baseID)/2)+2,$fn=36);
}//end union
}//end if

} //end rotate
} //end for
//end mounting holes
 
    //trim end       
    if(p4number>1){
    rotate([0,0,-(360/(p4baseOD*PI/p4endtrim))])
 mirror([1,1,0])
 cube([p4baseOD/2,p4baseOD/2,p4rampH+p4baseH]);   
    
}
    
    
    } //end main difference
} //end main translate
    
    
} //end module
 

Parts

Pontiac Coil L-09

Pontiaccoil.png


PCL90();

module PCL90(){
    
x=36.576;
y=41.402;
z=51.308;

topz=28.448;  ///distance from base to center of top mount hole
top2stroke0=42.7482;
top2stroke1=68.1482;  
plungerholeD=2.4384;
plungercutZ=9.652;
plungercutY=3.556;    
plungertop2c=3.9624;

holeOD=4.1656;
botz=topz-12.7;

D=12.7;

difference(){
    union(){
cube([x,y,z]);
translate([x/2,y/2,topz])
    difference(){
cylinder(d=D,h=top2stroke0+plungertop2c);
translate([0,D/2,top2stroke0])
rotate([90,0,0])     
#cylinder(d=plungerholeD,h=D);     
translate([-D/2,-plungercutY/2,top2stroke0+plungertop2c-plungercutZ])
#cube([D,plungercutY,plungercutZ]);       
    }
}
translate([23.7998/2,0,0]){
translate([x/2,y,topz])
    rotate([90,0,0])
cylinder(d=holeOD,h=y);

translate([x/2,y,botz])
    rotate([90,0,0])
cylinder(d=holeOD,h=y);
}
translate([-23.7998/2,0,0]){
translate([x/2,y,topz])
    rotate([90,0,0])
cylinder(d=holeOD,h=y);

translate([x/2,y,botz])
    rotate([90,0,0])
cylinder(d=holeOD,h=y);
}


}//end main diff    
    
    
}//end module
 

Full Assembly

BOM

TODO

  • remove p8 plate connector under mountain
    • put hole for makerbeam on plate below
  • breakup tabletop plate into multiple pieces to make max size smaller
  • could make all cut plates hexagons except for geared plate.
    • could make geared a little larger if move support spacer to bridge stepper gear
  • tweak outiside diameter values to remove p9
    • change p9 to a simple p8 variant near steppers
    • could just set p9 thickness to zero for now

Links

https://www.thingiverse.com/thing:2072364/files