bh = 7.2; // base height l = 46.37; // length w = 21.21; // width t = 2; module clipside() { union () { cube(size=[1.8,12.1, bh]); difference() { translate(v=[0, 10.25, 0]) cube(size=[5, 1.85, bh]); translate(v=[4.75, 10, -.2]) rotate(a=45, v=[0, 0, 1]) cube(size=[4, 4, bh+.4]); } } } module clip() { translate (v=[7.3, 0, 0]) { clipside(); rotate(a=180, v=[0, 1, 0]) translate(v=[5.5, 0, -bh]) clipside(); } } module halfcube(d, h) { union() { cube(size=[d, d/2, h]); translate([d/2, 0, 0]) cylinder(h=h, r=d/2, $fs=.5); } } module pinouche(h, t) { rotate(a=[0, 0, 180+ 52]) { cube(size=[10, t, h]); cube(size=[t, 14, h]); } } union() { translate(v=[8.4, 0, 0]) clip(); translate(v=[27, 0, 0]) rotate(a=[0, 0, 90+52]) cube(size=[12, 2, bh]); translate(v=[18.5, -2, 0]) rotate(a=[0, 0, 35]) cube(size=[6, 3, bh]); difference() { translate(v=[0, -t, 0]) cube(size=[l, t, bh]); translate(v=[22.2, 1.3, -.2]) pinouche(bh+.4, 5); } difference() { translate([l-14.3, -10, 0]) cube(size=[14.4, 10, bh]); translate([l-8.2, -4.8, -.1]) halfcube(6.2, bh+.2); translate([l-14.35, -4.8, -.1]) { halfcube(6.2, bh+.2); translate([0, -3.1, 0]) cube(size=[6.2/2, 6.2, bh+.2]); } } translate(v=[22.5, .2, 0]) pinouche(bh, 2); } // 9.75 x 7.25, h = 12.1 // 8.7 x 11.4, h = 14.34 // 38, 52 deg