Get our free book (in Spanish or English) on rainwater now - To Catch the Rain.

Variable Sifter

From Appropedia
(Redirected from Variable Food Sifter)
Jump to: navigation, search
MOST Delta filament as guide.JPG This page was part of an MTU course MSE4777 OA and MSE4777 OB/MSE5777/EE4777/EE5777: Open-source 3-D printing

Please leave comments using the discussion tab. The course runs in the Fall semester. It is not open edit.


lose up view of assembled sifter


Status
This OSAT has been designed but not yet tested - use at own risk.
This OSAT has been prototyped.


Creator[edit]

Project developed by Adam Pringle

Background[edit]

Sifting a desired material from another has been done throughout history since the dawn of agriculture. One widely used application is the process of separating grain from chaff for grain crops. [1] Sifting material is not limited to food crops, but can also be helpful for separating soil into various grades.

Abstract[edit]

This OSAT project is meant to provide utility in sifting for a variety of applications. This sifter is appropriate because it costs about $1.42 to create provided one has access to a 3D printer. Any task needed to sift a material from another material this sifter can be adapted to complete.

  • The code provided for this project can be modified with many variables as shown below:
Modifiable variables in code
Size(radius)
Mesh thickness
Outside ring length
Height
Mesh density
Offset of mesh lines
Funnel size (radius)
Funnel height
40mm sifter, 3mm mesh size  
70mm sifter, 5mm gridsize under 7mm gridsize topdown  
70mm sifter, 5mm gridsize under 7mm gridsize  
Topdown view with funnel  
Another view of assembly with funnel  
Same sifter mesh plates, but taller funnel  
Same sifter mesh plates, but wider funnel  

Goals:

  1. Adjustable size of sifter
  2. Adjustable size of mesh
  3. Rotating mesh plates for mesh density adjustment
  4. Ease of part reconfiguration with solid design stability

Comparative 3D printable sifter: Customizable Sifter with multiple shape options

Tools needed for fabrication of the OSAT[edit]

  1. MOST Delta RepRap or similar RepRap 3-D printer
  2. I used a hex key for my 3m hex screws
My tool and screws

Skills and Knowledge Necessary to Make the OSAT[edit]

Technical Specifications and Assembly Instructions[edit]

  1. Download the code provided (open with OpenSCAD) at the bottom of this page and change variable values to fit your need. (They are highlighted at the top and bottom of the code)
  2. Render the part in OpenSCAD and export as an STL
  3. Import STL into Cura and set print specifications similar to what is shown
    Cura settings for printing
  4. Export from Cura via G-code and upload to Franklin
  5. Print parts as needed
  6. Assemble the sifter mesh plates ontop of each other in such a way that the guide holes line up. (45 degree difference between sifter mesh plates is recommended for consistent mesh size)
    22.5 degree rotation of 2nd sifter mesh plate
  7. Set a screw in several(as needed) guide holes in the sifter funnel and attach the sifter mesh plates as desired.
  8. Your variable sifter is ready!

Common Problems and Solutions[edit]

  • Include common mistakes/problems to avoid in building your OSAT and how to overcome them
  • Make sure the sifter funnel and sifter mesh plate dimensions match up(CID, RingLength and SifterHeight values)
  • When creating two sifter mesh plates, to get a good match up with their meshes GridSpread(Sifter2) = GridSpread(Sifter2)*2^0.5 (think of gridspread(Sifter1) as a square and gridspread(Sifter2) as the hypotenuse of the 45-45-90 triangle where two sidelengths are the sides of the gridspread(Sifter1)
  • When setting up multiple sifter mesh plates in OpenSCAD take notice of the offset of each plate. Sifter1(Offset = 0) while Sifter2(Offset = x) where x = what you need it to be to get the desired mesh orientation
5mm gridsize under 7.5mm gridsize with no offset  
5mm gridsize under 7.5mm gridsize with 3.75mm offset  
5mm gridsize under 7.5mm gridsize with 3.75mm offset, incorrect 2nd gridsize  
5mm gridsize under 7.071mm gridsize with 3.75mm offset, correct 2nd gridsize  

Bill of Materials[edit]

PLA $22.98 per Kg[1]
3m screws ($1.23/18)[2]
3D printer Mine was $500[3]
  • 2 sifter mesh plates of 11g PLA each were printed
  • 1 sifter funnel of 39g PLA was printed
  • 4 3m screws were used

Costs and Cost Savings[edit]

Total cost Mine: $1.42 Commercial: $6.95[4] - $16.99[5] - $227[6]
Savings Minimum 5x cheaper ($5.53 saved, %80) Highest 160x cheaper ($225.58 saved, %99.37)
  • Values in table do not include shipping costs (although there were no shipping costs for this project, the commercial equivalents may have them)
  • It is important to note that people who live in a village can make sifters for food products out of readily available materials, which would be very inexpensive cost wise.
  • Thus, this project would be better suited for applications requiring more strength

References[edit]

  1. https://en.wikipedia.org/wiki/Winnowing

Files[edit]

Thingiverse account

Gallery[edit]

Assembled sifter and extra sifter mesh plates  
4 3m12 hex screws and a 3m hex key  
Top down view of assembled sifter  
Close up view of assembled sifter  
small sifter, 1mm mesh size  
small sifter, 3mm mesh size  
small sifter, 5mm mesh size  
5mm gridsize under 7.5mm gridsize with no offset  
5mm gridsize under 7.5mm gridsize with 3.75mm offset  
50mm sifter, 7.5mm offset  
70mm sifter, 5mm gridsize under 7mm gridsize topdown  
70mm sifter, 5mm gridsize under 7mm gridsize  
5mm gridsize under 7.5mm gridsize with 3.75mm offset, incorrect 2nd gridsize  
5mm gridsize under 7.071mm gridsize with 3.75mm offset, correct 2nd gridsize  
Topdown view without funnel  
Topdown view with funnel  
Another view of assembly with funnel  
Same sifter mesh plates, but taller funnel  
Same sifter mesh plates, but wider funnel  
22.5 degree rotation of 2nd sifter mesh plate  
Cura settings for printing

IMAG0053.jpg

 

Code[edit]

The following code is for the sifter mesh plate

 module Sifter(GridThickness,RingLength, SifterHeight, GridSpread, CID,Offset) {
 //Example Specs
 //GridThickness=1;
 //SifterHeight=2.5;
 //GridSpread=10;
 //CID=40; Cylinder internal Radius
 
 //Do not change
 IterationMax=CID*3;
 //RingLength = 9;
 CubeWidth=CID*2.4;

     union(){
 //Creating the Grid
  color("Purple")
 difference(){//Difference allows just the circular grid to be shown
 union(){ // Union adds both directions of grid to be one part
 for (y = [0:IterationMax-1] ) //number of lines
 {translate([0,-IterationMax*GridSpread/2+GridSpread/2+Offset,0]) //Centering selection
 {translate([0-1,y*GridSpread,0])cube([CubeWidth,GridThickness,SifterHeight],center=true);}}  //spacing of cubes
 for (y = [0:IterationMax-1] )
     rotate([0,0,90]) //rotate 90degrees for Perp.
 {translate([0,-IterationMax*GridSpread/2+GridSpread/2,0])
 {translate([0-1,y*GridSpread,0])cube([CubeWidth,GridThickness,SifterHeight],center=true);}}
        }
        
      difference(){//Removing extra grid outside of cylinder holder
       cylinder(h = SifterHeight+1, r = IterationMax*GridSpread, center = true,$fn=100);
            cylinder(h = SifterHeight+1, r = CID, center = true,$fn=100);
                    }
             }
          
    //Creating the Ring   
             
difference(){
union(){    
difference(){
 difference(){
 color("Purple")
     cylinder(h = SifterHeight, r = CID+RingLength, center = true,$fn=100);
 
  cylinder(h = SifterHeight+1, r = CID, center = true,$fn=100);
             }     
             
 //Subtracting Guide Holes
             for (a = [0:16])
                 rotate(a*22.5,[0,0,a])
                 translate([CID+RingLength/2,0,0])
             cylinder(h=SifterHeight+1, r=1.5, center=true,$fn=50);}   
  }}}   

                
 }//Module end

//Sifter(GridThickness,RingLength, SifterHeight, GridSpread, CID,Offset)        
Sifter(1,7,1.5,5,50,0);  
translate([0,0,1.5])rotate([0,0,45])
{Sifter(1,7,1.5,7.07106781187,50,3.75);}

//the 2nd sifter GridSpread must be equal to the first sifter GridSpread*(2^.5) or else the mesh size will be variant.

The following code is for the sifter funnel

module Funnel(RingLength,SifterHeight,CID,bowl,bowl_r) {

 //Example Specs
 //SifterHeight=2.5;
 //CID=40; //Cylinder internal Radius
 
 //Do not change
 //RingLength = 9;
    thickness = 2;
    
 //Funnel  
translate([0,0,SifterHeight*2])
difference(){
union(){    
difference(){
 difference(){
 color("Purple")
     cylinder(h = SifterHeight, r = CID+RingLength+thickness/2, center = true,$fn=100);
 
  cylinder(h = SifterHeight+1, r = CID, center = true,$fn=100);
             }     
             
 //Subtracting Guide Holes of funnel
             for (a = [0:16])
                 rotate(a*22.5,[0,0,a])
                 translate([CID+RingLength/2,0,0])
             cylinder(h=SifterHeight+1, r=1.5, center=true,$fn=50);}   
 
 // Guide Rails of funnel
             
}}
    
module profile() { 
    translate([0,SifterHeight*1.5]){
    hull() { 
    translate([stem_r, 0]) 
    square([thickness, eps],center = true); 
    translate([neck_r + curve_r, stem]) 
    circle(r = curve_r,center = true); 
    translate([bowl_r, stem + bowl - eps]) 
    square([thickness, eps],center = true); 
        } 
} }
  
//bowl = CID*2; 

//bowl_r = CID*1.5+RingLength/2; 
stem = SifterHeight; 
stem_r = CID+RingLength; 
neck_r = CID+RingLength; 
 
curve_r = 0; 

$fa = 1
; 
$fs = 0.1; 
eps = 0.01; 
  
rotate_extrude() 
   difference() { 
   profile(); 
   translate([thickness, 0]) 
   profile(); 
        } }
//Funnel(RingLength,SifterHeight,CID,bowlheight,bowl_r)

Funnel(7,1.5,50,50,85);

Contact details[edit]

Ampringl (talk) 20:01, 16 November 2015 (PST)