Une petite expérience d'impression 3D… en papier.

Les machines de découpe numérique sont capables de suivre des chemins avec une bonne précision. Pour indiquer ces chemins, nous utilisons principalement des outils de dessin vectoriel ou de vectorisation d'image. Plus généralement, toute information géométrique en deux dimensions peut être traduite en chemin de découpe. En découpant un objet 3D en tranches – ce qui est, d'ailleurs, le rôle des trancheurs comme UltiMaker Cura – nous obtenons des formes en deux dimensions. C'est ainsi que nous avons eu l'idée de reproduire des volumes – en l'occurrence, des visages – à partir d'empilement de feuilles papier découpées. Dans cet article, nous vous présentons rapidemment notre démarche, et partageons nos ressources afin que vous puissiez essayer par vous-même. Voici l'exemple que nous allons prendre : la « gravure » d'un visage dans la tranche d'un tout petit livre :

Une main tient un carnet d'une centaine de feuilles vertes découpées format un visage, face à la caméra.
Exemple de découpe en relief

Pour cette réalisation, nous allons avoir besoin :

  • d'un ordinateur avec MeshLab, Python et Inkscape,
  • d'une machine de découpe avec du papier un peu épais.

Pour cette réalisation nous utilisons du papier 160g, d'une épaisseur d'environ 0,23 mm. Pour graver ce visage dans un cadre de 3 cm de côté, il nous faut donc 128 feuillets. Avec des feuillets de 6 cm de long et 3 cm de large, il faut 5 feuilles A4 pour tout découper. Pour chaque feuillet, trois des quatres bords sont de simples lignes droites. La partie plus complexe consiste à reproduire, sur chaque feuillet, le contour d'une tranche visage. Pour cela, il nous faudra :

  1. Obtenir un modèle 3D d'un visage
  2. Obtenir une image du champ de hauteur de ce modèle
  3. Convertir cette image en lignes de découpe

Pour l'obtention d'un modèles, il nous suffit de chercher face ou head sur Thingiverse. Voici quelques résultats :

Une fois le modèle choisi, nous devons en obtenir un champ de hauteur, une image en nuances de gris représentant le relief d'une surface. Pour ce faire, nous importons le fichier dans le logiciel MeshLab, et appliquons la procédure suivante :

  1. Appuyer sur la touche 5 du pavé numérique pour passer en vue isométrique et effacer la perspective.
  2. Tourner la caméra de façon à être bien en face du visage, et que ce dernier soit bien visible dans l'écran.
  3. Afficher le champ de hauteur en allant dans le menu Render, Shaders puis depthmap.gdp. Régler les valeurs de zmax (profondeur maximale) et zmin (profondeur minimale) afin que la partie la plus éloignée du visage soit complètement blanche et la partie la plus proche – souvent, le nez – soit complètement noire.
  4. Exporter l'image en allant dans le menu File puis Save snapshot, en choisissant Solid white comme Background et une plus grande valeur de Screen Multiplier – typiquement, 4.
  5. À l'aide d'un logociel de traitement d'image, recadrer la photo afin de bien centrer le visage et rogner l'image afin d'obtenir un aspect carré.

Image en nuances de gris d'un visage, le fond de l'image est blanc, le nez est noir, les nuances de gris indiquent la profondeur de l'objet 3D.
Carte de profondeur obtenue pour le modèle face

À partir de cette image, nous allons utiliser un petit script Python qui va générer les plans de découpe, disponible sur GitHub. Les instructions sont reportées dans ce dépôt, mais nous les rappellons ici :

  1. Installer Python et Inkscape si ce n'est pas déjà fait
  2. Télécharger le dépôt et extraire l'archive ZIP vers un dossier
  3. Ouvrir un terminal dans ce dossier, et exécuter la commande suivante afin d'installer les dépendances :
    pip install -r requirements.txt
  4. Ouvrir le fichier mono.py avec un éditeur de texte – e.g. le bloc-note – et modifier les paramètres souhaités. Notamment, renseigner le chemin vers l'image de la carte de profondeur obtenue précédemment dans la variable depthmap_path et le chemin vers le fichier d'exécution d'Inkscape dans la variable inkscape_path.
  5. Exécuter le script mono.py avec la commande suivante :
    python mono.py

Un nouveau dossier va apparaître – nommé out par défaut – contenant des fichiers SVG et PNG. Les fichiers SVG sont les dessins vectoriels des feuillets à découper. Les fichiers PNG représentent la même chose, mais servent à contourner l'impossibilité d'ouvrir des fichiers SVG avec la version gratuite de Silhouette Studio.

Image générée de 5 feuilles A4 contenant les plans de découpe des 128 feuillets
Résultat de la génération des planches de découpe

Enfin, il ne reste plus qu'à charger chaque fichier dans le logiciel de découpe, pour nous, Silhouette Studio. Afin d'assurer la bonne mise à l'échelle du dessin, un petit carré est rajouté en bas à droite de chaque image : ainsi, les images occupent une surface équivalente à une page A4 entière ; en les chargeant dans Silhouette Studio, il suffit de les redimensionner à une taille de 210x297 mm et de supprimer le petit carré témoin. Enfin, nous pouvons lancer la découpe. Cette étape est la plus fastidieuse, car il y a beaucoup de parties à décoller et organiser, ainsi que les petites découpes de trous d'alignement à nettoyer. Pour ne pas se perdre, nous numérotons chaque feuillet dans l'ordre de la découpe.

Photo des premiers feuillets verts découpés et numérotés sur le support de découpe
Les premiers feuillets découpés

Pour l'assemblage, nous utilisons des aiguilles que nous passons dans les petits trous prévus à cet effet. En alignant bien les feuillets, l'effet fonctionne bien ! Voir le rendu au début de cet article. Pour aller plus loin, nous avons rajouté au dépôt GitHub un script tetra.py prenant non pas une mais quatre images de cartes de profondeur afin de graver un visage sur chaque face des feuillets. Voici le résultat :

Enfin, quelques idées pour la suite :

  • Imprimer ou dessiner sur les feuillets afin d'en faire également un folioscope
  • Convertir des volumes entiers en utilisant directement leurs lignes de contours

Si vous essayez de refaire la même chose, n'hésitez pas à nous partager le résultat !

Article précédent

Ajouter un commentaire

human test