Tuesday, October 16, 2018

Cad Exercises - Manifold

Revisiting Cad Exercises


 
$fn=80;
color("lightgrey")assembly();

module assembly(){
    difference( ){
        union(){
            bell();
            fftransform()linear_extrude(11) ffprofile ();
            ddtransform() linear_extrude(10)ddprofile();
        }  
    
        union(){
            core();
            fftransform()
linear_extrude(23,center=true, convexity = 20)ffnegprofile();
            ddtransform() 
linear_extrude(23,center=true, convexity = 20)ddnegprofile();
        } 
    }
}
module fftransform(){
        translate([0,0,35])
            rotate([0,-21,0])
                translate([0,0,-20])
                    rotate([0,90,0]) 
                        children() ;}
module ddtransform(){
        rotate([0,0,180+45])
            translate([0,0,35])
                rotate([0,-21,0])
                    translate([0,0,-20])
                        rotate([0,90,0]) 
                            children() ;}
module bell(){ 
    rotate_extrude( ) offset(-0.1)offset(0.2)offset(-0.1)
polygon(
    [
        [27.5,0],[27.5,4],[20,4],
        [9.5,31],[7.5,31],[7.5,35],
        [0,35], [0, 0.0]
    ]); }
module core(){
        rotate_extrude()polygon(
    [
        [0,36],[5.5,36], [5.5,29],   
        [8.13, 29], [19.31, 0.0],[0,-1]
    ]);  
    }
module ffprofile ()
    { 
        offset(-4)offset(4){circle(8);
        translate(  [0,10,0])circle(3.25);
        translate(  [0,-10,0])circle(3.25);}
    }
module ffnegprofile ()
    {  
        circle(14/2);
        translate(  [0,10,0])circle(1.25);
        translate(  [0,-10,0])circle(1.25); 
    } 


module ddprofile ()
    {circle(20/2);}

module ddnegprofile ()
    {  
        circle(12/2);
        translate(  [0,8,0])circle(1.25);
        translate(  [0,-8,0])circle(1.25); 
        translate(  [8,0,0])circle(1.25);
        translate(  [-8,0,0])circle(1.25); 
    }
 

No comments:

Post a Comment