$fn=59; c=61.8;//length t=0.314;//maximal tinckness in part of length h=50;//height step=3.09; rotate([-90,0,0]) difference(){ difference(){ //mold rotate([90,0,0]) translate([0, (c/2)+5, -((t*c+10)/2)]) cube([t*c+10,c+20,t*c+10],center=true); //form rotate_extrude(convexity = 400,$fn = 100) translate([0, 5,0]) section(); } translate([ 0,9,25]) rotate([-90,0,0]) cylinder(r1=3,r2=2,h=15,center=false); } module section(){ render(convexity = 100) rotate([90,0,180]) translate([0, 5,0]) //circle(10); mirror([1,0,0]) difference(){ hull(){ for ( x = [0 : step : c] ) { //naca symetric assign(r=(t/0.2)*c*( (0.2969*sqrt(x/c)) -0.1260*(x/c) - 0.3516*pow((x/c),2) +0.2843*pow((x/c),3) - 0.1015*pow((x/c),4) ) ){ translate([0,x,0]) circle(r+0.2);//avoid zero sections } } } translate([((t*c+10)/4),c/2,0]) square([((t*c+10)/2),c+10],center=true); } } /* scale([1,3.14,1]) intersection(){ translate([10,0,0]) sphere(20); translate([-10,0,0]) sphere(20); } */