difference() { positif(); negatif(); } //POSITIF module positif() { cube([5,25,40],center=true); translate([-2.5,15,0]) cube([10,5,40],center=true); translate([8.5,1.5,-9]) equerre(); } module equerre() { translate([-.1,0,0]) cube([12,20,5],center=true); translate([-.5,9,10]) renforts(); translate([-.5,-9,10]) renforts(); } module renforts() { difference() { cube([12,1,15],center=true); translate([6,0,5]) rotate([0,-41,0]) cube([15,2,20],center=true); } } //NEGATIF module negatif() { translate([8.75,1.5,-5]) vis_ressort(); translate([-1.5,-7,15]) vis_fixation(); translate([-1.5,-7,-15.75]) vis_fixation(); } module vis_fixation() { rotate([0,-90,0]) { cylinder(r=2,h=10,$fn=20,center=true); translate([0,0,-5]) cylinder(r=4,h=3.5,$fn=20,center=true); } } module vis_ressort() { cylinder(r=2,h=10,$fn=20,center=true); translate([0,0,-5]) cylinder(r=4,h=3.5,$fn=6,center=true); }