$fn=60; include include include include module bolt() { difference() { union() { cuboid([26,21,10], rounding=1); translate([-10,0,0]) cuboid([6,66,10], rounding=1); } translate([-2.5,0,0]) zcyl(l=10, d=15); } translate([-2.5,0,-5]) mirror([0,1,0]) RodEnd(15, 20, thread_len=20, thread_diam=12, thread_pitch=4); } module blade() { difference () { translate([-7.5,0,0]) cuboid([26,8,66], rounding=1); translate([0,3.5,0]) cuboid([6,5,70], rounding=1); } translate([-7,-4,20]) ycyl(l=3, d=8, rounding=1); translate([-7,-4,-20]) ycyl(l=3, d=8, rounding=1); } * bolt(); * blade(); // Horizontal blades color("green") { translate([-50,0,15]) rotate([0,-90,0]) { // Right translate([-2.5,65,0]) rotate([90,0,0]) bolt(); // Left translate([5,-62,0]) blade(); translate([-14,0,30]) cuboid([3,129,6], rounding=1); translate([-14,0,-30]) cuboid([3,129,6], rounding=1); } } // Vertictal blades color("pink") { translate([50,0,15]) rotate([-90,-90,0]) { // Top translate([-2.5,0,65]) rotate([0,180,180]) bolt(); // Bottom translate([5,0,-62]) rotate([90,0,0]) blade(); translate([-9.5,30.5,4]) cuboid([4,5,132], rounding=1); translate([-9.5,-30.5,4]) cuboid([4,5,132], rounding=1); } }