// Верхняя часть крепления для детских автокресел Maxi Cosi $fn=64; w = 63; h1 = 75; w2 = 75; h2 = 59; r2 = 41; notch = 39; //mirror() difference() { union() { rotate([0, atan(1.5/5), 0]) { difference() { union() { cube([w, 29, h1]); translate([w/2-w2/2, 0, -50]) cube([w2, 35, h1-h2+50]); } translate([-0.01, 29.01, h1+0.01]) rotate([90, 180, 90]) linear_extrude(100) polygon([[0, 0], [0, 8], [5, 0]]); translate([w+0.01, 50, h1+0.01]) rotate([90, 180, 0]) linear_extrude(100) polygon([[0, 0], [0, 8], [8, 0]]); translate([-0.01, -50, h1+0.01]) rotate([90, 180, 180]) linear_extrude(100) polygon([[0, 0], [0, 8], [8, 0]]); translate([w/2, 29+10-4.5, h1-49+notch/2]) rotate([90, 0, 0]) cylinder(h=10, d=notch, $fn=64); translate([w/2-notch/2, 29+10-4.5, h1-49+37/2]) rotate([90, 0, 0]) cube([notch, 100, 10]); translate([w/2, 29+20-0.01, r2]) rotate([90, 0, 0]) cylinder(h=20, r=r2, $fn=128); translate([w/2-50/2, 4, 0]) cube([50, 29-6-6, h1+10]); } translate([17, 23, h1-39]) rotate([90, 90, 0]) linear_extrude(20) polygon([[0, 11.5], [5, 19], [10, 20.5], [11, 19], [8.5, 12.5], [9.5, 11.5], [6.5, 1.5], [2.5, 0], [0, 2.5]]); } translate([-120, 0, -75]) difference() { cube([235, 40, 30]); translate([20, 50, 15]) rotate([90, 0, 0]) cylinder(r=2.5, h=100); translate([215, 50, 15]) rotate([90, 0, 0]) cylinder(r=2.5, h=100); } } translate([-120, 0, -75]) union() { translate([-1, -1, -1]) cube([101, 42, 31]); //translate([100, -1, -1]) cube([30, 42, 11]); translate([0, 20-0.4, -1]) cube([120+0.4, 10+0.8, 31]); translate([110, 10-0.4, -1]) cube([10+0.4, 20+0.8, 31]); } } //mirror() translate([-150, 0, -75]) intersection() { difference() { cube([235, 40, 30]); translate([20, 50, 15]) rotate([90, 0, 0]) cylinder(r=2.5, h=100); translate([215, 50, 15]) rotate([90, 0, 0]) cylinder(r=2.5, h=100); } union() { translate([-1, -1, -1]) cube([102, 42, 32]); //translate([100, -1, -1]) cube([30, 42, 11]); translate([0, 20-0.2, -1]) cube([121+0.2, 10+0.4, 32]); translate([111, 10-0.2, -1]) cube([10+0.2, 20+0.4, 32]); } }