2. Conception Assistée par Ordinateur (CAO)#
Cette semaine, j’ai appris à modéliser un objet digital 3D avec des logiciels de modélisation, et à licencier ma création ainsi qu’à créditer celle d’un autre.
Sélection du logiciel#
Le premier cours de la semaine, on nous a présenté 2 logiciels de modélisation 3D. On avait le choix entre OpenSCAD et FreeCAD. OpenSCAD est un logiciel qui permet de modéliser sous forme de codage tandis que FreeCAD permet de modéliser de manière un peu plus intuitive. J’ai choisi OpenSCAD car cela parait plus précis et plus facile à paramétriser (mais c’est long à coder par contre).
Utiliser OpenSCAD#
Le deuxième cours de la semaine, on nous a laissés commencer notre modélisation. Pour utiliser OpenSCAD, il m’a fallu apprendre plusieurs commandes. Celles que j’ai utilisées pour pouvoir modéliser mon objet sont les suivantes :
Commandes | Descriptions |
---|---|
cylinder(hauteur,rayon de la base du bas,rayon de la base du haut); |
Crée un cylindre correspondant aux coordonnées rentrées |
$fn=nombre de fragments; |
Détermine le nombre de fragments des formes (plus il y en a, plus vos cylindres et vos sphères sont ronds) |
translate([x,y,z]){} |
Déplace par translation ce que vous mettez entre accolades de x,y,z |
union(){} |
Assemble les formes entre accolades |
difference(){} |
Soustrait les formes entre accolades |
hull(){} |
Comble l’espace entre les formes qui sont entre accolades |
Licences#
Une fois mon objet modélisé, je l’ai licensié. C’est-à-dire que l’objet m’appartient officiellement et que je peux décider de ce que les autres en font en fonction du type de licence choisi. J’ai choisi la license CC BY-NC. Cela signifie que les autres peuvent utiliser mon objet et le modifier mais ne peuvent ni le rendre commercial, ni l’utiliser sans me créditer. J’ai donc ajouté la licence au début de mon codage :
// File : trou_lego.scad
// Author : Edwin Van Landuyt
// Licence : Licensed via [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
Ma pièce#
Il nous a été demandé de modéliser un objet flexible. Au début, je voulais faire un FlexLink simple avec une tige incurvée mais au final, je me suis retrouvé avec deux tiges (je maitrise pas assez OpenSCAD). Voici donc le résultat final :
// File : trou_lego.scad
// Author : Edwin Van Landuyt
// Licence : Licensed via [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
$fn=100;
epsilon=0.1;
distance_base=10; //distance entre les contours d'une paire de trous
rbase=5; //rayon des contours des trous
rtrou=3; //rayon des trous
distance_trou=10; //distance entre 2 trous d'une paire
hauteur=3; //hauteur de l'objet
distance_embouts=16; //distance qui sépare les 2 paires de trous
epaisseur_tige=0.5; //épaisseur des tiges qui maintiennent les 2 paires ensemble
union(){
difference(){
hull(){
translate([distance_base,0,0])
cylinder(hauteur,rbase,rbase);
cylinder(hauteur,rbase,rbase);
}
translate([0,0,-epsilon])
cylinder(hauteur+2*epsilon,rtrou,rtrou);
translate([distance_trou,0,-epsilon])
cylinder(hauteur+2*epsilon,rtrou,rtrou);
}
translate([0,distance_embouts,0]){
difference(){
hull(){
translate([distance_base,0,0])
cylinder(hauteur,rbase,rbase);
cylinder(hauteur,rbase,rbase);
}
translate([0,0,-epsilon])
cylinder(hauteur+2*epsilon,rtrou,rtrou);
translate([distance_trou,0,-epsilon])
cylinder(hauteur+2*epsilon,rtrou,rtrou);
}
}
translate([distance_base/2,distance_embouts/2,0]){
difference(){
cylinder(hauteur,rbase+distance_embouts/2,rbase+distance_embouts/2);
translate([0,0,-epsilon])
cylinder(hauteur+2*epsilon,rbase+distance_embouts/2-epaisseur_tige,rbase+distance_embouts/2-epaisseur_tige);
}
}
}
Vous pouvez voir qu’en dessous de ma licence, j’ai paramétrisé toutes mes valeurs afin de pouvoir adapter les dimensions plus facilement.
La pièce de Julien#
Ensuite, comme il a été demandé d’assembler sa pièce avec celle d’un autre lorsque celle-ci sera imprimée, j’ai montré ma pièce à Julien. Il a alors décidé de faire une sorte de poignée à deux cylindres de sorte que ceux-ci puissent rentrer dans les trous de ma pièce (voir module 2 de Julien pour plus de détails). Vous pouvez voir qu’il a lui aussi licencié sa création par CC BY 4.0, qui signifie que l’on peut en faire ce qu’on veut tant que l’on crédite son travail et que l’on ne restreint pas les autres quant à son utilisation.
// File : Handle.scad
// Author : Julien Desuter
// Date : 22/11/2023
// Licence : Creative Common Attribution Non-Commercial 4.0 International [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
$fn=100;
h=3;
d=6;
eps=0.1;
l=16;
module stud(height, diameter, epsilon){
cylinder(h=height*2, d=diameter-epsilon);
}
module handle(height, diameter, epsilon, length){
hull(){
translate([0,0,height*2])
cylinder(h=height, d=diameter-epsilon);
translate([0,length,height*2])
cylinder(h=height, d=diameter-epsilon);
}
}
stud(h, d, eps);
translate([0,l,0])
stud(h, d, eps);
handle(h, d, eps, l);