infty = 1000; eps = 0.01; /* desticka: 13mm x 50mm, tl. 1.25mm, vyska i s valci 5.25mm otvor 7.5mm od okraje, prumer 7.5mm, tl. steny tak 1.2-1.5mm maly otvor prumer 5.5mm, vnejsi 7.9 mm, 5 mm od okraje, roztec 40 mm */ difference() { union () { hull() { translate([-7.5/2, 7.75, 5.25/2]) cube([1.25, 1.25, 5.25], center=true); translate([7.5/2, 7.75, 5.25/2]) cube([1.25, 1.25, 5.25], center=true); translate([-12, 7.75, 1.25/2]) cube([1.25, 1.25, 1.25], center=true); translate([12, 7.75, 1.25/2]) cube([1.25, 1.25, 1.25], center=true); }; translate([-50/2, 0, 0]) cube([50, 13, 1.25]); translate([0, 7.75, 0]) cylinder(r = (10.2+0.6)/2, h = 5.25); for (x = [1, -1]) scale([x, 1, 1]) { translate([20, 5, 0]) difference() { cylinder(r = (7.9+0.5)/2, h = 5.25); cylinder(r1 = 3.5/2, r2 = (5.5+0.7)/2, h = 5.5); }; }; }; translate([0, 7.75, -1]) { cylinder(r = (7.75+0.6)/2, h = 10); }; for (x = [-17, 17]) rotate([0, 0, x]) translate([-infty/2, 17, -1]) cube(infty); }; /* difference() { cube(10); translate([0, 0, -0.5]) cylinder(r1 = 5, r2 = 10, h =11); }; */