$fn=180; //frame difference() { hull() { translate([24.5,41.5,0]) cylinder(5,2.5,2.5); translate([-24.5,41.5,0]) cylinder(5,2.5,2.5); translate([24.5,-41.5,0]) cylinder(5,2.5,2.5); translate([-24.5,-41.5,0]) cylinder(5,2.5,2.5); } translate([-17,-38,-1]) cube([34,60.5,7]); translate([-21.75,16.5,-1]) cube([43.5,6,7]); translate([-30,31.5,2]) cube([60,10,7]); translate([-11.5,-32.5,-1]) cube([23,60.5,7]); // translate([0,15.25,0]) hull() { // translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); // translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); // } // translate([0,8.75,0]) hull() { // translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); // translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); // } translate([0,2.25,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-4.25,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-10.75,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-17.25,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-23.75,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-30.25,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([0,-36.75,0]) hull() { translate([-21.75,0,3.5]) rotate([0,90,0])cylinder(43.5,2.75,2.75); translate([-21.75,0,10]) rotate([0,90,0])cylinder(43.5,2.75,2.75); } translate([11,25,2.5]) rotate([0,90,0]) cylinder(3.3,2.5,0.5); translate([-11,25,2.5]) rotate([0,-90,0]) cylinder(3.3,2.5,0.5); } //iner part 1 difference() { union() { hull() { translate([-16.5,-35,2.5]) rotate([0,90,0])cylinder(33,2.5,2.5); //translate([-16.5,17,0]) cube([33,5,5]); translate([-16.5,19.5,2.5]) rotate([0,90,0]) cylinder(33,2.5,2.5); } //translate([-21.25,17,0]) cube([42.5,5,5]); translate([21.25,19.5,2.5]) rotate([0,-90,0]) cylinder(42.5,2.5,2.5); } translate([-11.5,-32.5,-1]) cube([23,60.5,7]); translate([11,-29.5,2.5]) rotate([0,90,0]) cylinder(3.3,2.5,0.5); translate([-11,-29.5,2.5]) rotate([0,-90,0]) cylinder(3.3,2.5,0.5); } //inner part 2 union() { difference() { union(){ hull() { translate([-11,-29.5,2.5]) rotate([0,90,0])cylinder(22,2.5,2.5); translate([-11,25,2.5]) rotate([0,90,0])cylinder(22,2.5,2.5); } hull() { translate([-5.5,-29.5,2.5]) rotate([0,90,0])cylinder(11,2.5,2.5); translate([-5.5,25,2.5]) rotate([0,90,0])cylinder(11,2.5,2.5); } } translate([-6,-27,-1]) cube([12,49.5,7]); } translate([10.5,-29.5,2.5]) rotate([0,90,0]) cylinder(3.3,2.5,0.5); translate([-10.5,-29.5,2.5]) rotate([0,-90,0]) cylinder(3.3,2.5,0.5); translate([-10.5,25,2.5]) rotate([0,-90,0]) cylinder(3.3,2.5,0.5); translate([10.5,25,2.5]) rotate([0,90,0]) cylinder(3.3,2.5,0.5); }