Skip to main content

Guilherme, Yago "Enigme des 3 maisons"

Coordonnées :

Ballanger, Yago (Yago.Ballanger@etu.sorbonne-universite.fr)
Vital Santos, Guilherme (Guilherme.Vital_Santos@etu.sorbonne-universite.fr)

LU1SXARE - SCIMAG
19/03/2025 - 09/04/2025

Introduction :

Dans le cadre de cet ARE-SCIMAG, notre projet final d'UE consistait à réaliser un tour de magie ou à produire un objet à l'aide de principes physiques et/ou mathématiques.
Le principe choisi par notre groupe était la topologie, et nous l'avons utilisé pour expliquer l'énigme des trois maisons. L'énigme des 3 maisons est une tentative de connecter une source d'électricité, de chauffage et d'eau pour 3 maisons de telle sorte que la ligne d'une source ne puisse pas passer sur la ligne d'une autre source, comme le montre le diagramme ci-dessous :

( https://en.wikipedia.org/wiki/Three_utilities_problem#/media/File:3_utilities_problem_plane.svg )

La résolution de ce problème varie en fonction de la surface sur laquelle il est posé, par exemple, la possibilité ou la manière de résoudre ce problème sur un plan est totalement différente du cas d'un tore, puisque sur le plan il est impossible de le résoudre et sur le tore il est possible de le faire.
Nous avons donc cherché à développer un objet qui puisse représenter le plus grand nombre de cas possibles entre les surfaces suivantes : plan, sphère, tore et bande de Möbius. Ainsi, en construisant une seule pièce divisée en trois parties (le corps de la pièce, cuboïde interne et plan mobile), nous avons pu développer un objet qui couvre l'énigme des 3 maisons sur un plan, une sphère et un tore et qui permet de réaliser le problème à l'aide d'élastiques et de piquets.

Construction :

Matériaux et outils :

  • Openscad (outil) ;
  • Prusa Slicer (outil) ;
  • Original Prusa MK4S (imprimante 3D) ;
  • PLA+ Noir 1,75mm Arianeplast (filament 3D) ;
  • PLA Starter Blanc (White) 1,75 mm ROSA 3D (filament 3D) . 

Pièces :

  • Plan mobile :

    • Contextualisation:
      • Le plan est la première partie du projet, il représente le problème des 3 maisons dans un plan. Pour ce faire, nous avons placé 6 piquets pour représenter l'énigme.
    • Code ( Openscad ) :
      • //Plan mobile
        
        rotate([0,-90,0])
        
        union(){
            
            // Base cuboïde
            
            cube([25,100,100]);
            
            // Piquets du côté gauche
            
            translate([24,10,90])
            rotate([0,90,0])      
            union(){
                cylinder(10,4,4);
                translate([0,0,10])
                cylinder(1,5,5);
            }
        
            translate([24,10,10])
            rotate([0,90,0])
            union(){
                cylinder(10,4,4);
                translate([0,0,10])
                cylinder(1,5,5);
            }
        
            // Piquets centrales
            
            translate([24,50,90])
            rotate([0,90,0])
            union(){
                cylinder(10,4,4);
                translate([0,0,10])
                cylinder(1,5,5);
            }
            
            translate([24,50,10])
            rotate([0,90,0])
            union(){
                cylinder(10,4,4);
                translate([0,0,10])
                cylinder(1,5,5);
            }
        
            // Piquets du côté droit
            
            translate([24,90,90])
            rotate([0,90,0])
            union(){
                cylinder(10,4,4);
                translate([0,0,10])
                cylinder(1,5,5);
            }
            
            translate([24,90,10])
            rotate([0,90,0])
            union(){
                cylinder(10,4,4);
            translate([0,0,10])
            cylinder(1,5,5);
            }
        
        }
    • Images ( Openscad ) :
    • Paramètres d'usinage ( Prusa Slicer ) :
      • Réglages d’impression - 0.20mm SPEED ;
      • Filament - Prusa PLA ;
      • Imprimante - Original Prusa MK4S HF0.4 nozzle ;
      • Densité de remplissage - 15% ;
      • Motif de remplissage - Gyroïde .
    • Filament, imprimante e poids final :
      • Filament - PLA+ Noir 1,75mm Arianeplast ;
      • Imprimante - Original Prusa MK4S ;
      • Poids final - 70g .
    • Images ( Production ) :

 

    • Code:
      // Tore de base
      
      difference(){
          difference(){
              cube(100);
              translate([25,25,-1])
              cube([50,50,102]);
          translate([75,-1,-1])
          cube([25,102,102]);
          }
      }
      
      // Piquets arrières
      
      translate([1,50,80])
      rotate([0,-90,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
      
      translate([1,50,20])
      rotate([0,-90,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
      
      // Piquets du côté droit
      
      translate([50,99,80])
      rotate([-90,0,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
      
      translate([50,99,20])
      rotate([-90,0,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
      
      // Piquets du côté gauche
      
      translate([50,0,80])
      rotate([90,0,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
      
      translate([50,0,20])
      rotate([90,0,0])
      
      union(){
          cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
      }
  • Cuboïde interne :
    • Image :
    • Code :
      // Cuboïde interne
      
      cube([50,50,100]);
  • Plan mobile :
    • Image:Plano_movel.png
  • Code :

    • //Plan mobile
      
      rotate([0,-90,0])
      
      union(){
          
          // Base cuboïde
          
          cube([25,100,100]);
          
          // Piquets du côté gauche
          
          translate([24,10,90])
          rotate([0,90,0])      
          union(){
              cylinder(10,4,4);
              translate([0,0,10])
              cylinder(1,5,5);
          }
      
          translate([24,10,10])
          rotate([0,90,0])
          union(){
              cylinder(10,4,4);
              translate([0,0,10])
              cylinder(1,5,5);
          }
      
          // Piquets centrales
          
          translate([24,50,90])
          rotate([0,90,0])
          union(){
              cylinder(10,4,4);
              translate([0,0,10])
              cylinder(1,5,5);
          }
          
          translate([24,50,10])
          rotate([0,90,0])
          union(){
              cylinder(10,4,4);
              translate([0,0,10])
              cylinder(1,5,5);
          }
      
          // Piquets du côté droit
          
          translate([24,90,90])
          rotate([0,90,0])
          union(){
              cylinder(10,4,4);
              translate([0,0,10])
              cylinder(1,5,5);
          }
          
          translate([24,90,10])
          rotate([0,90,0])
          union(){
              cylinder(10,4,4);
          translate([0,0,10])
          cylinder(1,5,5);
          }
      
      }