Ahlala ! CURA n'arrive pas à "trancher" le magnifique objet que vous avez mis tant de temps à modéliser avec Sketchup : WTF ? CURA c'est de la m%@&e ! Le problème vient plus surement de Sketchup que de CURA, explications : Retour aux sources.
Avant de parler de Sketchup et de CURA on va parler STL.
Les fichiers STL décrivent des objets par leurs surfaces externes. Cette surface doit nécessairement être fermée et définie par une série de triangles.
cf. : https://fr.wikipedia.org/wiki/Fichier_de_stéréolithographie
Prenons pour exemple un des objets les plus simples que vous aurez à modéliser : un cube.
En STL, un cube a 12 facettes car chaque chaque face du cube est défini par 2 triangles (cf. image ci-dessous)
Ceci un cube transparent au format STL Une sphère en STL
Pareil, des triangles partout, que des triangles, uniquement des triangles
Ok, partons du principe que vous avez compris qu'un STL défini la surface externe d'un objet avec des triangles...
Attention, à partir de maintenant, ça se complique
Un objet défini en STL doit être "étanche"
C'est la deuxième condition pour que l'objet généré soit correctement interprété : il ne doit pas y avoir de "trou" sur sa surface au sens de "il manque un triangle", démonstration :
Ceci est un cube dessiné dans Sketchup, il est beau hein !
Maintenant, supprimons volontairement la face supérieure pour voir ce qui se passe...
... on a un cube avec la face supérieure qui manque donc en gros, une boite avec des murs dont l'épaisseur est de 0 (zéro, rien, nada, que dalle...)
Exportons cette boite en STL maintenant et admirons le résultat dans Meshmixer :
On voit qu'il manque bien les 2 facettes du dessus qui permettent de définir la face qui manque.
Le problème c'est que notre cube n'est pas "étanche" du coup... en gros, si on le met dans l'eau, il coule. (là, j'ai perdu 25% de l'audience....)
Meshmixer est sympa : il dispose d'une fonction "inspector" qui permet de mettre en évidence les erreurs dans un objet (les lignes en bleu dans l'image ci-dessous) mais nous en parlerons en détail plus tard...
C'est bon jusque là ?
Revenons à notre cube dans sketchup avec ça :
C'est quoi le problème ? On a un cube avec 12 arêtes et 6 faces ! Tout est normal !
Ouvrons notre STL dans CURA pour voir...
Oups, "Houston, on a un problème !"
Comparons avec notre cube en STL du début et regardons le résultat dans CURA...
Vous voyez la différence ?
Mais nom d'un petit bonhomme, que c'est il passé entre ces deux cubes ?
Le cube que l'on voit dans CURA avec la face ROUGE, si il a bien 6 faces, l'une d'entre elle, celle du dessus est inversée. Mais c'est quoi une face "inversée" ?
Un face "inversée" est une face dont la "normale" est dirigée vers l'intérieur de l'objet.... et la je perds encore 25% de l'audience...
C'est quoi cette histoire de normale ?
On va faire simple : une "normale" est un vecteur qui indique la "direction" par laquelle une face va recevoir de la lumière.
Su l'image ci-dessus, la face "A" a sa "normale" tournée vers l'intérieur, la face est donc non éclairée.
La face "B" sur l'autre cube est tournée vers l'extérieur et donc elle est éclairée.
Vous me direz que c'est un détail : je réponds non, c'est une anomalie qui a des conséquences dramatiques... voir mortelles.... (je rigole).
Le fait d'avoir la normale d'un face inversée n'a pas beaucoup de conséquences dans un objet simple comme un cube... c'est plus embêtant avec des objets complexes.
Faisons un trou dans une face inversée, juste pour voir le résultat...
Et paf ! Non seulement la face d'origine est inversée mais toutes les faces du trou le sont également et là, il y en a un paquet...
Exportons notre cube troué en STL et admirons le résultat dans CURA :
ok, ça ressemble beaucoup à notre cube précédent (face en rouge) mais le trou est pas mal, non ?
Passons en mode "preview" dans CURA... : oups, le trou a disparu !
...et si on regarde à l'intérieur.... "a pu trou".
Ouais, je sais, c'est chiant.
Mais ça aussi c'est chiant, la face interne :
vue dans Sketchup... il y a une face dans le cube dans la diagonale... vous voyez ?
vue dans CURA...
no comment
C'est chiant, hein !
C'est surtout Sketchup qui est chiant car pour TOUS les objets dessinés il faut vérifier :
1. que toutes les faces sont présentes.
2. qu'il n'y a pas de faces a l'intérieur de l'objet.
3. que les normales sont bien dirigées vers l'extérieur.
4. que les sommets se touchent. (celui là, j'en parle même pas...) Conclusion
Si vous modélisez avec sketchup, avant de demander pourquoi votre magnifique machin ne peut pas être slicé correctement, vérifiez le avec "Solide Inspector" qui affichera un magnifique cercle a l'endroit ou il y a un problème... et vérifiez l'alignement des normales AVANT de faire des trous sur une face ! Merci à ceux qui utilisent Sketchup et qui auront lu cet article jusqu'au bout et qui du coup ne vont pas demander pourquoi leur objet n'est pas correctement "affiché" dans CURA...