x=80; vy=30; vz=6; difference() { union() { cube([vx, vy, 3]); translate([0, 0, 3]) cube([vx, vy, vz]); //translate([0, 0, 3]) cube([vx, vy/3, vz]); //translate([0, 2*vy/3, 3]) cube([vx, vy/3, vz]); } union() { translate([0, 1.5*vy/3-3, 3]) cube([vx, 6, vz+0.1]); translate([15, 1.5*vy/3-5, 3]) cube([25, 10, vz+0.1]); translate([0, 0, 3]) rotate([0,0,30]) cube([vy, 3, vz+0.1]); translate([vx-20, 0, 3]) rotate([0,0,180-30]) cube([vy, 3, vz+0.1]); translate([-5.9, vy, 3]) rotate([0,0,-30]) cube([vy, 3, vz+0.1]); translate([-5.9+vx-20, vy, 3]) rotate([0,0,-180+30]) cube([vy, 3, vz+0.1]); translate([-5.9+vx-20+2, vy, 3]) cylinder(d=6, h=vz+0.1); translate([15, vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); translate([vx/2, vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); translate([vx-15, vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); translate([15, 2*vy/3+vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); translate([vx/2, 2*vy/3+vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); translate([vx-15, 2*vy/3+vy/6, 0]) cylinder(d=3.5, h=vz*3, $fn=4); } } translate([0, vy+5, 0]) difference() { union() { cube([vx, vy, 3]); // translate([0, 0, 0]) cube([vx, vy/3+1, 2]); // translate([0, 2*vy/3-1, v0]) cube([vx, vy/3+1, 2]); translate([0, vy/2-2.5, 0]) cube([vx, 5, 4]); } union() { translate([15, vy/6, 0]) cylinder(d=5, h=vz*3); translate([vx/2, vy/6, 0]) cylinder(d=5, h=vz*3); =éíčšč as translate([vx-15, vy/6, 0]) cylinder(d=5, h=vz*3); translate([15, 2*vy/3+vy/6, 0]) cylinder(d=5, h=vz*3); translate([vx/2, 2*vy/3+vy/6, 0]) cylinder(d=5, h=vz*3); translate([vx-15, 2*vy/3+vy/6, 0]) cylinder(d=5, h=vz*3); } } for (x=[0: 30: 60]) for (y=[0: 7: 21]) // projektily translate([0+x, (vy+5)*2+y, 0]) difference() { union() { cube([20, 5, 4.5]); translate([20, 2.5, 0]) cylinder(d=5, h=4.5); translate([-4, 1.4, 0]) cube([4.1, 2.2, 4.5]); } union() { translate([-1.1, 0, 2.25]) rotate([-90,0,0]) cylinder(d=2.5, h=6, $fn=9); } }