
En coulisse
Impression 3D - quatre réponses utiles pour les débutants
par Marc Schaffer
Vous pouvez acheter des adaptateurs, s'il y en a. Ou vous pouvez en concevoir un et l'imprimer en 3D vous-même. Dans ce cas, je veux monter une station de base HTC Vive sur un pied de micro. Malheureusement, les deux ont des filetages de tailles différentes (anglais/impérial), il faut donc trouver un adaptateur.
Dans ce tutoriel, je vais vous montrer comment programmer rapidement et facilement un objet avec OpenSCAD. OpenSCAD est un logiciel qui vous permet de créer des modèles 3D. Le logiciel est gratuit et fonctionne sous Linux, Windows et Mac. Au lieu des programmes de CAO habituels, vous ne dessinez pas un objet, mais vous le saisissez avec votre clavier sous forme de code. Mais ne vous inquiétez pas, ce n'est pas très compliqué et vous n'avez pas besoin de plus de connaissances en mathématiques que pour les autres programmes de dessin. Pour vous aider à vous souvenir, vous trouverez ici une feuille de calcul.
Le processus de travail est divisé en quatre étapes :
Avant de commencer à dessiner, ou dans ce cas à programmer, vous devez rassembler le matériel disponible. Utilisez ensuite différents outils comme une règle, une équerre ou un pied à coulisse pour prendre des mesures précises. Plus vous serez précis à cette étape, moins vous aurez de problèmes pour assembler les objets.
Le support que j'ai mesuré à l'étape précédente a les dimensions suivantes : longueur = 84,2 mm ; largeur = 44 mm. La vis a un diamètre de 3 mm et une longueur de 18 mm. Pour obtenir le parallélépipède de base, tapons ce qui suit dans la zone de texte : cube([84.2,44,18],center=true);
Il ne nous reste plus qu'à appuyer sur "F5" et le parallélépipède est visible sous forme de modèle 3D.
L'instruction "center=true" a permis de centrer l'objet. Le point zéro est donc exactement au centre. C'est très pratique dans notre cas, car l'objet est symétrique, c'est-à-dire que les deux côtés ont la même taille. Ainsi, les trous pour le filetage et la vis sont au centre et nous devons moins calculer pour les trous M5 suivants.
Nous pourrions maintenant ajouter les trous, mais ce n'est pas aussi carré que cela pour le Lighthouse.
Comme seuls les bords extérieurs sont arrondis, nous utilisons la fonction "hull", qui trace une enveloppe autour des objets. Maintenant, les choses deviennent un peu mathématiques : l'arrondi a un rayon de 10 mm, nous plaçons donc 4 cylindres aux coins et nous tendons l'enveloppe autour :
hull(){
translate([(84.2/2)-10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(84.2/2)-10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
};
Pour un cylindre, en partant de l'origine au centre (center), je vais à l'extérieur de la moitié de la longueur et de la moitié de la largeur en m'éloignant de l'origine ("translate" détermine la nouvelle position) et je soustrais le rayon. Je n'ai besoin d'écrire cela qu'une seule fois et je peux ensuite le réutiliser pour les autres cylindres - tantôt en plus du point zéro, tantôt en moins du point zéro. (Ah, si seulement on nous avait expliqué les mathématiques à l'école de manière aussi claire et facile à comprendre. Il suffit de les appliquer pour les comprendre.)
On peut rendre des objets transparents en écrivant un "%" devant eux, sans quoi un objet plein devrait être visible.
Ajoutons maintenant les trous en ajoutant différents cylindres. Ceux-ci sont ensuite calculés ("percés") à partir du grand objet :
SILF=0.6;
translate([0,0,0]) cylinder(r=5+SILF, h=50,center=true);
Il est important que les objets à décompter (moins) soient plus grands et dépassent, sinon les bords ne seront pas beaux et l'imprimante 3D essaiera de boucher le trou avec une fine couche.
L'imprimante 3D, ou plutôt certains slicers qui calculent les objets pour l'imprimante 3D, ont la particularité gênante d'imprimer des trous plus petits que ceux indiqués. Ainsi, le trou doit être planifié plus grand de cette quantité manquante. J'ai appelé cela "erreur de trou intérieur du slicer" et j'ajoute cette variable "SILF" au trou. Vous pouvez nommer la variable comme vous le souhaitez, mais vous ne devez pas programmer le montant de la correction de manière fixe. Chaque imprimante est différente et les programmes changent. En cas de changement, il faut seulement modifier la variable au début et non pas tous les trous tout de suite.
Cela ne nécessite que 1 ligne pour les objets :
for (i = [0 :.5:7]) { translate([(ii2)+i*2,0,0]) cylinder(r=i, h=5+i,center=true) ; }
Les boucles "for" sont un outil pratique pour la programmation, mais revenons à l'adaptateur. "Perçons" maintenant le trou en faisant la différence entre A moins B. Grand objet hull moins cylindre de vis avec la fonction "difference":
difference(){
hull(){
translate([(84.2/2)-10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(84.2/2)-10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
};
translate([0,0,0]) cylinder(r=5+SILF, h=50,center=true);
}
Ajoutons maintenant les deux trous pour les vis M5. Pour cela, nous étendons la partie "B", qui ne comprend que le cylindre pour le filetage, en un groupe :
group(){
translate([0,0,0]) cylinder(r=5+SILF, h=50,center=true) ; //Tarauds du trépied
translate([32,0,0]) cylinder(r=2.5+SILF, h=50,center=true) ; //M5 vis
translate([-32,0,0]) cylinder(r=2.5+SILF, h=50,center=true) ; //M5 vis
}//group
Un conseil important : Le texte après les "//" sont des commentaires et sont ignorés par le programme. Si l'on veut adapter quelque chose deux mois plus tard, cela permet de gagner beaucoup de temps, car on peut lire dans les commentaires ce qu'il fallait faire et pourquoi, par exemple, il fallait ajouter 1 mm à cet endroit!
Il ne manque plus que le trou pour la grande vis. Pour cela, nous ajoutons les deux cylindres (pour la vis et un pour le bord). Ceux-ci ne doivent cependant pas être continus, mais reposer sur 3 mm de matériau. Ainsi, l'axe Z doit être adapté :
translate([0,0,-(18/2)+3]) cylinder(r=(15.5/2)+SILF, h=25,center=false) ; //Adapter
translate([0,0,-(18/2)+3+10]) cylinder(r=(18/2)+SILF, h=10,center=false) ; //Adapter marge
Nous avons presque terminé. L'objet pourrait être imprimé tel quel, mais la vis devrait être serrée laborieusement et pour la dévisser, il faudrait tout démonter, car la vis n'a pas de butée et tournerait de manière lâche. Nous ajoutons donc un point de butée et nous scions une partie du bord de la vis pour obtenir une "coupe en D".
Enfin, ajoutons le point de butée sur l'objet - une ligne unique à la fin :
translate([(15.5/2)+0.3,-10,(18/2)-5]) cube([4,20,5],center=false) ; //D-Coupe appui
Ceci doit cependant être fait à la fin, car cela augmente le temps de calcul. Vous pouvez d'ailleurs l'utiliser pour générer des hexagones par exemple : cylinder(d=20,h=10,$fn=6);
.
Il ne reste plus au programme qu'à calculer le modèle 3D en haute résolution. Cela s'appelle le rendu et peut être exporté avec "F6" et en tant que STL. Le fichier STL peut ensuite être converti par le slicer pour l'imprimante 3D et l'impression peut commencer ! Vous pouvez lire ici comment cela fonctionne exactement:
Une fois que vous avez travaillé de manière modulaire, vous pouvez réutiliser le fichier et l'adapter à d'autres applications. Comme par exemple comme support pour une lampe de chantier.
Si vous souhaitez reproduire cet adaptateur vous-même, vous pouvez copier le code source complet et le coller dans votre OpenSCAD.
$fn=150 ; // nombre d'arêtes d'un cercle
SILF=0.6 ; // erreur de trou intérieur du slicer si le slicer imprime les trous intérieurs trop petits
//%cube([84.2,44,18],center=true);
//#cube([68.4-5,44,18],center=true) ; //Test de distance
.
difference(){
hull(){
translate([(84.2/2)-10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(44/2)-10,0]) cylinder(r=10, h=18,center=true);
translate([(84.2/2)-10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
translate([(-84.2/2)+10,(-44/2)+10,0]) cylinder(r=10, h=18,center=true);
};
group(){
translate([0,0,0]) cylinder(r=5+SILF, h=50,center=true) ; //filetage du trépied
translate([0,0,-(18/2)+3]) cylinder(r=(15.5/2)+SILF, h=25,center=false) ; //Adaptateur
translate([0,0,-(18/2)+3+10]) cylinder(r=(18/2)+SILF, h=10,center=false) ; //Adapter marge
translate([32,0,0]) cylinder(r=2.5+SILF, h=50,center=true) ; //M5 vis
translate([-32,0,0]) cylinder(r=2.5+SILF, h=50,center=true) ; //M5 vis
}//group
}//diff
translate([(15.5/2)+0.3,-10,(18/2)-5]) cube([4,20,5],center=false) ; //D-Coupe édition
Bonne chance!
.
Je suis un autochtone numérique de la génération Commodore 64, en ligne depuis le cadran et le coupleur acoustique. En plus des jeux vidéo, j'aime faire entrer des choses du cyberespace dans le making-of avec l'imprimante 3D. La technologie est tout simplement fascinante.