$fn=60; include include include include // Sight color("grey", alpha=1) { // Base difference() { translate([0,-5,0]) cuboid([20,50,40], rounding=2); xcyl(l=20, d=12.5); } translate([0,-30 ,0]) rotate([-90,0,0]) tube(od=15, wall=3, h=7, chamfer=0.5); // Eye translate([2.5,0,0]) { rotate([0,90,0]) { tube(od=12, wall=3, h=22, chamfer=0.5); translate([0,0,14.5]) tube(h=10, or1=6, or2=20, wall=3, chamfer=0.5); } } } // Screws // Top translate ([0,0,83.5]) rotate([0,180,0]) { cylinder(h=15, d=14, $fn=6); translate([0,0,15]) mirror([0,1,0]) RodStart(20, 3, thread_len=30, thread_diam=15, thread_pitch=4); } // Right translate ([0,83.5,0]) rotate([90,0,0]) { cylinder(h=15, d=14, $fn=6); translate([0,0,15]) mirror([0,1,0]) RodStart(20, 3, thread_len=30, thread_diam=15, thread_pitch=4); } // Horizontal blades color("green") { // Haut translate([0,0,22.5]) { mirror([0,1,0]) RodEnd(20, 30, thread_len=31, thread_diam=16, thread_pitch=4); translate([0,-2.5,0]) cuboid([20,105,5], rounding=1); } translate([0,-50,0]) { rotate([90,0,0]) tube(od=20, wall=5.5, h=5, rounding=1); } translate([0,-52.5,7.5]) rotate([-90,0,0]) cuboid([20,35,5], rounding=1); // Bas union() { translate([0,0,-25]) cuboid([20,80,10], rounding=1); translate([0,15,-30]) tube(od=11, wall=1, h=5); } } // Vertical blades color("pink") { // Droite rotate([-90,0,0]) { translate([0,0,22.5]) { mirror([0,1,0]) RodEnd(20, 30, thread_len=31, thread_diam=16, thread_pitch=4); cuboid([20,22,5], rounding=1); } } // Gauche * union() { translate([0,-52,0]) ycyl(l=32, d=12, rounding=1); translate([0,-67.5,9.5]) rotate([-90,0,0]) cuboid([20,31,5], rounding=1); } } // Springs color("orange", alpha=.5) { translate([0,15,-35]) zcyl(l=9.5, d=9); translate([0,-15,-35]) zcyl(l=9.5, d=9); translate([0,-40,-0]) ycyl(l=20, d=9); } // Enclosure outerWidth=30; outerLength=141; innerWidth=22; innerLength=135; color("cyan", alpha=0.5) { translate([0,0,19]) difference() { union() { translate([0,0,10]) prismoid(size1=[outerWidth,outerLength], size2=[outerWidth,25], h=43, rounding=5); translate([0,0,-25]) cuboid([outerWidth,outerLength,70], rounding=5, edges=[FRONT+RIGHT,FRONT+LEFT,BACK+RIGHT,BACK+LEFT]); } translate([0,0,-25]) cuboid([innerWidth,innerLength,70], rounding=1); translate([0,0,10]) prismoid(size1=[innerWidth,innerLength], size2=[innerWidth,30], h=40, rounding=5); translate([0,0,-19]) { xcyl(l=60, d=38); * cuboid([60,35,35], rounding=15); translate([0,70,0]) ycyl(l=20, r=7); translate([0,0,70]) zcyl(l=20, r=7); } } difference() { union() { translate([0,60,-38]) cuboid([30,17,6], rounding=3); translate([0,-60,-38]) cuboid([30,17,6], rounding=3); } translate([0,60,-38.5]) zcyl(l=10, r=2.25); translate([0,60,-37]) rotate([180,0,0]) DIN931("M4"); translate([0,-60,-38.5]) zcyl(l=10, r=2.25); translate([0,-60,-37]) rotate([180,0,0]) DIN931("M4"); } } // Cover * translate([0,0,-44.5]) { difference() { cuboid([50,160,7], rounding=5, edges=[TOP,FRONT+RIGHT,FRONT+LEFT,BACK+RIGHT,BACK+LEFT]); translate([0,60,3.5]) { zcyl(l=10, r=2.25); translate([0,0,-5]) zcyl(l=4, r=3.3); } translate([0,-60,3.5]) { zcyl(l=10, r=2.25); translate([0,0,-5]) zcyl(l=4, r=3.3); } } translate([0,15,4]) { zcyl(l=2, r=5.5); tube(od=11, wall=1, h=5); } translate([0,-15,4]) { zcyl(l=2, r=5.5); tube(od=11, wall=1, h=5); } }