Conception d'une imprimante 3D (partie 2)

Mise en place d'un projet complexe

Une imprimante 3D est une machine complexe, attention je ne dis pas compliqué ! Je dis complexe, dans le sens où il va y avoir une multitude de pièces simple qui seront en interaction les unes avec les autres. Car au final une imprimante 3D n'est qu'un ensemble de moteurs, poulies, courroies, axes de guidage etc ... La difficulté se situera dans le fait que toutes ces pièces devront respecter des contraintes les unes par rapport aux autres.

Le logiciel que j'utilise pour modéliser en 3D est OpenSCAD, il a l'avantage d'être très simple d'utilisation sans pour autant être limité. Une bonne pratique pour simplifier le problème des contraintes entre les pièces est de commencer par créer un fichier qui contiendra toutes les cotes (parametres.scad), puis de créer un nouveau fichier pour chaque pièce qui fera appel à ce fichier parametres.scad. De cette manière toutes les pièces utiliseront les mêmes paramètres et lorsqu'on effectue une modification d'un de ces paramètres alors toutes les pièces seront modifiées de manière cohérente !

Le premier fichier doit donc ressembler à quelque chose comme ça

La partie :

include <../../../openscad/meca.scad>

include <../../../openscad/math.scad>

use <../../../openscad/Nema17.scad>

est là pour lister tous les fichiers dans lesquels ont pourra piocher des paramètres, des modules, des fonctions etc ... Puis viennent les données à proprement parlé :

courroie_larg = 10;

chariot_X_ecart_LM8LUU = 40;

chariot_X_epaisseur = 3;

chariot_X_marge = [4, 2, 6];

Ici vous pouvez également voir l'habitude que j'ai pris, c'est à dire toujours commencer le nom d'un paramètre par le nom de la pièce. chariot_X, chariot_Y, fixation, Moteur, etc ... Cela permet de voir immédiatement à quelle pièce ce paramètre fait référence. Il faut ensuite choisir la suite du nom de la variable de manière à ce qu'il soit évoquant et sans ambiguïté. J'insiste sur le fait qu'il doit être SANS AMBIGUÏTÉ !! C'est réellement important, surtout au vu du nombre de pièces qui vont devoir être prises en compte dans ce projet.

Bien sûr là je montre un fichier déjà bien remplis pour donner une idée, mais ce fichier se construit au fur et à mesure de l'avancé du projet. Pour ma part j'essaye de faire en sorte que si j'utilise deux fois la même cote lors d'une modélisation alors j'en fais un paramètre. J'admets que ce n'est pas toujours le cas, mais c'est l'idée à laquelle j'essaye de me tenir. Ça permet de simplifier la lecture car lorsqu'on lit un nombre on ne peut pas savoir d'où il vient, alors qu'une variable comme "fixation_epaisseur" on sait immédiatement ce que cela signifie.

Quand on se lance dans la conception d'un objet complexe comme une imprimante 3D, il faut bien se rendre compte d'une chose, c'est qu'on va faire des allers-retours ! Ce que je veux dire par là, c'est qu'il faut bien commencer par une pièce, par exemple j'ai décidé de commencer par le chariot de l'axe X. En faisant ce choix je vais nécessairement imposer des contraintes sur le chariot de l'axe Y comme le prouve cette ligne :

chariot_Y_ecart_LM8LUU = chariot_X_ecart_LM8LUU + LM8LUU_diam_ext + 8 + 2;

qui va à son tour imposer des contraintes sur le bloc qui tiendra le moteur, comme ici par exemple :

Moteur_taille = [22.5 + Moteur_axes_Y_delta_X + chariot_Y[0] + Moteur_position[0], fixation_long, chariot_Y_ecart_LM8LUU + Moteur_marge_Z];

Mais qu'est ce qui vous dit qu'une fois arriver à la conception du bloc pour le moteur le choix du paramètre chariot_X_ecart_LM8LUU ne vas pas vous poser problème ? C'est dans ce sens que je vous avertis que lorsque des pièces sont en interaction les unes avec les autres il faudra nécessairement faire des allers-retours entre les pièces pour apporter quelques modifications, souvent mineurs mais nécessaire. Tout ça pour dire qu'on ne peut pas penser à tous les détails dès le début et que nécessairement les différents fichiers vont devoir évoluer durant tout le processus de modélisation. C'est également une raison de l'existence de ce fichier parametres.scad, il va permettre d'effectuer des modifications plus simplement et rapidement.

Création de la première pièce

Rentrons dans le vif du sujet, créer une pièce. Il existe autant de manière de faire que de personne et loin de moi l'idée de dire que ma façon de faire est la meilleure. Quand on est face à un nombre important de pièces (là je parle des pièces que j'ai acheté comme les guides, les roulements, les courroies, etc ...) et qu'il faut créer une nouvelle pièce qui s'adapte à tout ça je procède de la manière suivante. Vu que j'ai déjà une bonne idée des pièces qui seront présente, je commence par créer une empreinte, en d'autres termes je ne fais que placer les différentes pièces là où je pense qu'elle seront au final. Ce qui nous donne ceci :

chariot_X_empreinte

Vous pouvez voir sur cette capture, les roulements linéaires (LM8LUU), les guides de 8mm de diamètre, les courroies ainsi que des vis de fixations. Créer une telle empreinte permet dans un premier temps de s'éclaircir les idées et de vérifier si on a effectivement pensé à toutes les pièces. Une fois ceci fait et que le tout est bien empaqueté dans un module, l'étape suivante est quand à elle très simple, il y a toujours des subtilités mais grossièrement ça consiste à faire :

difference()

{

cube(chariot_X);

chariot_X_empreinte();

}

Il s'agit d'une opération booléenne pour laquelle on va simplement soustraire à un cube, l'empreinte créée précédemment. Il faut donc ne jamais oublié d'ajouter quelques marges aux différentes pièces dans le module empreinte. En faisant ainsi on s'assure que toutes les pièces se trouvant dans le module empreinte auront bien leur place dans la pièce finale. Et dans le cas d'un oubli (parce que oui ça arrive toujours), un simple ajout dans le module empreinte réglera le problème. D'où l'utilité de découpé un maximum vos pièces en petits modules pour après les combiner les uns avec les autres. Voici, après quelques ajustement la première pièce :

chariot_Xchariot_X2

Sont rôle est de tenir le laser qui permettra de faire des gravures, elle devra s'ajuster avec une autre pièce (portant une tête d'impression) se refermant ainsi sur les roulements et permettant ainsi la création du chariot se déplaçant sur l'axe X.

Vous trouverez les différents fichiers dans le git. Je les ajouterai au fur et à mesure en les commentant sur ce blog. La suite au prochain épisode.

Next Post Previous Post