3D part design with openSCAD #143: Gold pan with the option to also make it a classifier .
This is a work in progress, I still need to work on getting the ridges to automatically tilt with the wall angle properly which is going to involve some math that is eluding me at the moment but the basics and the default settings work well. For now you just have to adjust the tilt angle if you change the wall thickness, wall angle or the diameter
I wanted a grid at the bottom of the pan that would catch finer material so I added that and made it so I can rotate the grid for experimentation.
Here is the code:
//
/*[Pan Parameters]*/
Pan_or_Classifier=true;
Diameter=254;//[20:.01:304.8]
Wall_angle=2;//[1:.01:3]
Height=60;//[10:.01:100]
Wall_thickness=5;//[2:.01:10]
/*[Grid Parameters]*/
Show_grid=true;
Grid_spacing=10;//[1:.25:10]
rotate=0;//[0:.01:83]
/*[Ridge Parameters]*/
ShowRidges=true;
Ridge_number=6;//[1:1:20]
Ridge_length=120;//[20:1:360]
Tilt_angle=4.86;//[0:.01:90]
/*[Drop Ridge Parameters]*/
ShowDropRidge=true;
Drop_ridge_length=120;//[20:1:360]
/*[Hidden]*/
$fa=$preview? 2:1;;
$fs=$preview?.5:.1;;
module ridges(){
rotate_extrude(angle=Ridge_length){
for(i=[0:1:Ridge_number-1])
translate([i*10,5,0])
translate([Diameter/2+3,i*Tilt_angle,0])
circle(3,$fn=7);
}}
module Drop_ridges(){
rotate_extrude(angle=Drop_ridge_length){
for(i=[0:1:Ridge_number-1])
translate([i*10,5,0])
translate([Diameter/2+3,i*Tilt_angle,0])
circle(3,$fn=7);
}}
module Grid(){
for(i=[1:Grid_spacing:Diameter]){
translate([0,i-2,Height])
rotate([rotate,0,0])
cube([Diameter*2,2,Height*2],center=true);
translate([0,-i,Height])
rotate([rotate,0,0])
cube([Diameter*2,2,Height*2],center=true);
}}
module Pan(){
render()
difference(){
linear_extrude(Height,scale=Wall_angle)
circle(Diameter/2);
linear_extrude(Height,scale=Wall_angle)
circle(Diameter/2-Wall_thickness);
}}
module Grid_trim(){
translate([0,0,-4])
render()
difference(){
linear_extrude(7.5)
circle(Diameter/2+.45);
linear_extrude(7.5)
circle(Diameter/2-18);
}}
module GridX(){
intersection(){
translate([0,0,-Height+1])
Grid();
cylinder(Height,r=Diameter/2.2,center=false);
}}
module GridY(){
rotate([0,0,90])
intersection(){
translate([0,0,-Height+1])
Grid();
cylinder(Height,r=Diameter/2.2,center=false);
}}
module drop_ridge(){
mirror([1,1,0])
difference(){
Pan();
Drop_ridges();
}}
if(ShowDropRidge)
drop_ridge();
else
Pan();
if(ShowRidges)
rotate([0,0,-30])
ridges();
if (Show_grid){
translate([0,0,-4])
resize([Diameter-16,Diameter-16,7.5])
GridX();
translate([0,0,-4])
resize([Diameter-16,Diameter-16,7.5])
GridY();
Grid_trim();
}
if(Pan_or_Classifier)
translate([0,0,-4])
linear_extrude(5)
circle(Diameter/2);
Here are some results:


You can adjust how many ridges there are, the length you want them to be and turn off or on which components you don't want

My plan is to eventually combine this with the sluice from post # 87 and have an all in one solution.

