Un Crash Course pour l'impression 3d.


Introduction.

Nous avons tous maintenant entendu parlé des imprimantes 3d et de toutes les choses qu'elles peuvent imprimer. Récemment, j'ai procédé à l'impression 3d d'une pièce, inusinuable par ailleurs. C'était la première fois que je concevais un objet par cette technique qui attire beaucoup d'attention ces jours-ci. Il se trouve que de la cuillère à la bouche, il y a du chemin à faire et concevoir et imprimer une pièce nécessite la maitrise d'une chaine assez longue que j'ai appris sur le tas au fur et à mesure. J'écris donc ce guide pour éviter à d'autres le même parcours aléatoire dans la jungle du web/forums/wiki/blogs, ... Le public à qui ce guide s'adresse est celui d'un chercheur qui a besoin de concevoir rapidement une pièce nécessaire à son expérience, sans des connaissances techniques avancées dans les logiciels de CAD du genre SolidWorks. Ceci dit, avant de vous y lancer, il faut être conscient des limitations de l'impression 3d, et ne pas attendre monts et merveille.

Commençons par la fin.

Une fois l'objet conçu par CAO, vous avez un fichier en main et souhaitez l'imprimer. La solution la plus simple consiste à l'imprimer sur le site d'un marchand comme sculpteo. Il existe des dizaines de marchand, mais c'est le meilleur que j'ai trouvé. Ces sites fonctionnent comme les sites d'impression photo : télécharger le fichier, sélectionner la matière (plastique, cire,résine, argent, ...) et la couleur, ajouter au panier, payer, et le recevoir sous 5-6 jours. Le prix est seulement proportionnel au poids, la compléxité du design n'intervient pas : compter ~50€ pour un cube plein de 40mm en plastic de base.

Si vous avez investi dans une imprimante 3d comme le RepRap ou le pléthore des modèles existants, vous devez quelque peu manipuler le fichier de l'objet avant de l'imprimer sur place.

La Jungle des formats de fichier

Je n'ai encore rien dit sur le format de fichier que vous pouvez utiliser. Il y'en a des centaines, et il faut parfois naviguer entre 3 ou 4 logiciels pour passer d'un format à un autre. Je ne parlerai ici que des formats 3d. Les format 2d comme celui d'autocad (.DXF) n'ont pas d'utilité pour nous.

Constructive Solid Geometry

L'arrivée des ordaniteurs suffisemment puissants il y a 20 ans a induit la généralisation de la repréntation volumique des objets, connu sous le sigle du CSG. On représente un volume comme un assemblage d'objets simples (cube, cylindre, sphére, ...) sur lesquels nous avons effectué des transformations (translation, rotation, ..., intersection, difference,union). Chaque logiciel a son format propre de stockage de cette information.
Les volumes.
Heureusement, quelques standards d'échange se sont généralisés. Parmis cela, les deux formats .STEP et .IGES sont les plus répandus. Vous n'avez bien sûr pas à savoir comment ces fichiers sont fait. Vous devez juste savoir choisir ce format quand vous demandez à votre logiciel de CAO d'exporter vers un format d'échange. Un fichier .STEP généré par FreeCAD sera lisible par SolidWorks par exemple.
Les surfaces.
Pour pouvoir afficher un objet, l'information volumique n'est pas suffisant. Les surfaces de l'objet sont moélisées par un ensemble de triangle (un mesh) et ce sont ces triangles qui s'affichent sur l'écran. A vrai dire, pour les imprimantes 3d, ce sont ces triangles qui sont importants. Le format le plus courant pour représenter l'information surfacique est le format .STL. C'est le format que tous les imprimeurs accetpent. Votre logiciel de CAO peut bien évidemment transformer votre fichier volumique en fichier STL. L'inverse n'est pas vrai.
Piloter sa machine
Si vous imprimez sur place, vous devez fournir à votre machine un code pour piloter la tête de l'imprimante. Le format le plus développé (de façon générale pour les machines à commande numérique, CNC) et le g-code. De nombreux programmes sauront transformer vos fichier .STL en G-code (voir ci-dessous).
Résumons les formats essentiels
Format Voumique Format Surfacique Code Machine
pour le CAO pour l'imprimeur pour l'imprimante
STEP, IGES STL G-code

Les logiciels de CAO

Il est temps maintenant de dessiner votre objet 3d par un logiciel de CAO. Le vrai CAO est le boulot du bureau d'étude et la maitrise d'un logiciel comme SOlidWorks nécessite un sérieux investissement en temps, ... ET en argent. Il existe heuresement des logiciels openssource extrémement performant et qui sont très simple à utiliser pour un débutant. Les deux meilleurs sont openSCAD et FreeCAD.

Personnellement, je trouve que openSCAD est vraiment un très bon logiciel. Maheureusement, les formats auxuquels il exporte sont très limités ou bugués (ne pas utliser l'export vers STL pour une vrai impression, le résultat est catastrophique). Cette limitation le cantonne plutôt à un rôle d'enseignement de la géométrie 3d.

Le logiciel sur lequel je me suis fixé après maint tatonnement (il y 'en a une dizaine assez répandu) est le FreeCAD. C'est un logiciel très sophistiqué qui s'approche pas mal de SolidWorks, et où on peut tout dessiner avec la souris. Le logiciel a bien sûr son propre format de fichier, mais exporte de façon très propre vers STEP and STL.

Le très gros avantage de ce logiciel est que l'on peut taper au clavier ce que l'on veut. Voyons un exemple. lançons le logiciel, et choisissons dans l'option "macro", de créer un nouveau macro appelé toto.

entrons quelques lignes de commandes pour générer un cube et une sphère, et un cylindre et appuyons sur "execute".
 

import Part;
from FreeCAD import Base;
a = 10;

b1 = Part.makeBox(a,a,a);
b2 = Part.makeSphere(a);
b3 = Part.makeCylinder(a/2,a);

u= Base.Vector(1,0,0);
o=Base.Vector(a/4,0,0);
b3.rotate(o,u,90);

Part.show(b1);
Part.show(b2);
Part.show(b3);

Les trois premières lignes sont des déclarations ; les trois suivantes (b1=...) construisent effectivement un cube, une sphère et un cylindre ; ayant déclaré un vecteur u et un point o, la ligne d'après tourne le cylindre autour du vecteur u de centre o. Enfin, les trois dernières lignes affichent les objets.

Pour la clarté de l'affichage, j'ai un peu bricolé leur couleurs et leur transpanrence : en effet, tous les objets ont des propriétés directement modifiable.

Faisons maintenant un peu plus compliqué, un cube, une sphère et trois cylindre (2ème colonne):
 

import Part;
from FreeCAD import Base;
a = 10;

b1 = Part.makeBox(a,a,a);
u = Base.Vector(-a/2,-a/2,-a/2);
b1.translate(u);
b2 = Part.makeSphere(3*a/4);
b3 = Part.makeCylinder(0.40*a,a);
o = Base.Vector(0,0,0);
u = Base.Vector(1,0,0);
b4 = Part.makeCylinder(0.40*a,a);
b4.rotate(o,u,90);
b5 = Part.makeCylinder(0.40*a,a);
u = Base.Vector(0,1,0);
b5.rotate(o,u,90);

Part.show(b1);Part.show(b2);
Part.show(b3);Part.show(b4);
Part.show(b5);
L'intersection du cube et de la sphère, moins les trois cylindres est montré dans la troisième colonne. Au lieu de le faire en ligne de commande, je l'ai fait via l'interface graphique.

Comme vous l'avez probablement remarqué, le script est du langage python (très à la mode de nos jours) et on peut effectivement définir des classes d'objets à réutiliser, des boucles, des conditions, ... Je détaillerai ces possibilités dans un autre document.

Le logiciel de tranchage

Si le but est d''imprimer sur une imprimante locale, il faut générer du g-code pour le pilotage de la tête de l'imprimante. L'opération consiste à découper le volume en tranche fine, et imprimer chaque tranche comme une imprimante 2d, puis lui superposer la prochaine tranche. Le logiciel opensource qui effectue cette opération est le slic3r, qui connait les caractéristiques de la plupart des imprimantes 3d (comme le RepRap par exemple). Une fois qu'on lui précise des paramètres tel que la précision souhaité, ..., slic3r, à partir du fichier stl, génère un fichier G-code en quelques minutes.