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