module my_cone( r=18.4 ){ translate([0,0,30]) difference() { cylinder(h=60,r1=r*2,r2=0.0, center=true, $fn=60); cylinder(h=60,r1=r,r2=0.0, center= true, $fn=60); translate([0,-(r*2),-30]) cube([r*3,75,60]); }; } module my_inner_cone( r=15.75 ){ rotate([0,0,180]) translate([0,0,30]) difference() { cylinder(h=60,r1=r,r2=0.0, center=true, $fn=60); cylinder(h=60,r1=r/1.2,r2=0.0, center= true, $fn=60); translate([0,-(r*2),-30]) cube([r*3,75,60]); }; } // //rotate([0,0,-90]) // my_inner_cone(); // // //union(){ // my_cone(); // rotate([0,90-72.95,0]) // translate([(36.8/2)/sin(72.95),0,0]) // cube([30,30,30]); //} // difference(){ union(){ minkowski() { cube([0.01, 39, 30]); cylinder(r=18.4, center=true); $fn = 60; }; minkowski() { cube([0.01, 39, 3.5]); cylinder(r=20, center=true); $fn = 60; }; } minkowski() { cube([0.01, 39.0, 30]); cylinder(r=15.75, center=true); $fn = 60; } rotate([0,0,90]) translate([0,0,25]) my_cone(); rotate([0,0,-90]) translate([-39,0,25]) my_cone(); rotate([0,-90+72.95,0]) translate([25,0,0]) cube([30,39,30]); rotate([0,90-72.95,0]) translate([-24.9-30,0,0]) cube([30,39,30]); rotate([0,0,-90]) translate([0,0,-1]) my_inner_cone(r=16.5); rotate([0,0,90]) translate([39,0,0-1]) my_inner_cone(r=16.5); rotate([0,-90+72.95,0]) translate([-14.5,0,-20]) cube([30,39,20]); rotate([0,90-72.95,0]) translate([-15.5,0,-20]) cube([30,39,20]); }