$fn=100; module fenetre() { // 4 cubes pour créer une fenêtre avec la différence translate([0, 0, 0]) cube([1.5, 4, 1.5]); translate([2, 0, 0]) cube([1.5, 4, 1.5]); translate([2, 0, 2]) cube([1.5, 4, 1.5]); translate([0, 0, 2]) cube([1.5, 4, 1.5]); } difference() { union() { cube([10, 10, 10]); // cube maison translate([5, -.5, 5]) rotate([-90, 0, 0]) cylinder(2, 2.5, 2.5); // contour 3D porte cercle } translate([1, 1, 1]) cube([8, 8, 10]); // cube pour vider la maison //translate([4, -2, 1]) cube([2, 4, 4]); // porte rectangle translate([5, -1, 5]) rotate([-90, 0, 0]) cylinder(3, 2, 2); // porte cercle translate([2, 3.25, 3.25]) rotate([0, 0, 90]) fenetre(); // fenetre gauche translate([12, 3.25, 3.25]) rotate([0, 0, 90]) fenetre(); // fenetre droite translate([3.25, 7.5, 3.25]) fenetre(); // fenetre arrière } difference() { translate([4.25, -1, 14.5]) rotate([0, 135, 0]) union() { // toit cube([10, 12, 1]); translate([0, 0, 0]) rotate([0, -90, 0]) cube([11, 12, 1]); } translate([5, 3, 12]) { // trous dans le toit pour qu'on puisse l'accrocher cylinder(4, .5, .5); translate([0, 3.5, 0]) cylinder(4, .5, .5); } } translate([1, 1, 10]) rotate([90, 0, 0]) linear_extrude(height=1) { // prisme qui bouche l'espace entre le mur avant et le toit polygon([[0, 0], [8, 0], [4, 4]]); } translate([1, 10, 10]) rotate([90, 0, 0]) linear_extrude(height=1) { // prisme qui bouche l'espace entre le mur arrière et le toit polygon([[0, 0], [8, 0], [4, 4]]); } translate([7, 2, 11]) cube([2, 2, 4]); // cheminée translate([2.75, .5, 8.5]) rotate([90, 0, 0]) linear_extrude(height=1) { text("TB", 3, "Figtree:style=Bold"); // initiales TB }