2. Conception Assistée par Ordinateur (CAO)#
L’objectif de ce deuxième module est d’apprendre à utiliser des logiciels de design CAD (Computer Assisted Design) et de se familiariser avec les licenses de droit d’auteur Creative commons.
Pour se faire, l’exercice de cette semaine consiste à désigner et modéliser un kit de construction paramétrique Flex Links
2.1 Logiciels de CAD#
Les logiciels CAD sont des programmes qui permettent la création, l’analyse et la simulation de dessins techniques en 2D et 3D. L’utilisation de ces logiciels est très courante dans de nombreux domaines (aéronautique, architecture, conception de machine/produits,.. ).
Dans ce cours, nous allons nous concentrer sur l’utilisation de logiciels 3D afin de pouvoir pour créer notre Flex Links, que l’on pourra par la suite imprimer !
2.1.1 Logiciels 2D#
Les logiciels 2D, également connus sous le nom de logiciels de conception en deux dimensions, sont des applications informatiques qui permettent la création, l’édition et la manipulation d’images ou de graphiques en deux dimensions. Ces outils sont largement utilisés dans divers domaines tels que le design graphique, l’illustration, l’animation, la modélisation de personnages, la cartographie, et bien d’autres. Voici quelques exemples de logiciels 2D que je vais pour ma part utilisé dans ce cours :
-
Inkscape : logiciel de dessin vectoriel open source adaptée à la création d’illustrations, de logos et de schémas. Il gère des fichiers conformes aux standards XML, SVG et CSS du W3C.
-
Gimp : logiciel d’édition et de retouche d’image, libre et gratuit. Il possède de nombreux outils pour retravailler une image et permet de réaliser des photomontages ou encore des dessins à la main. Ce logiciel peut être considéré comme une alternative à Photoshop car il dispose de fonctions similaires.
2.1.2 Logiciels 3D#
Les différents logiciels 3D vont se distinguer en 2 groupes :
-
ceux qui traitent des images vectorielles
-
ceux qui traitent des images matricielles
Quel est la différence entre les deux ?
-
Une image matricielle est formée de nombreux pixels colorés qui se combinent pour former l’image globale. La taille de ces pixels est tellement petite que pour les voir il faut agrandir considérablement le fichier. Mais c’est grâce à leurs petites tailles que les pixels permettent aux images matricielles d’être aussi lumineuses et colorées.
Il est par contre très difficile de redimensionner ce type d’image sans perdre la qualité. Il faudra pour cela utiliser des logiciels qui s’attaquent directement aux pixels :
Pour traiter ce type d’image, voici les 2 logiciels que j’utilise :
- Paint
- GIMP
-
Une image vectorielle, sera elle, composées de formes géometriques (cercle, rectangle,..) individuels créées à partir d’un code spécial. Ce code déterminera la forme du tracé, sa bordure, son remplissage et surtout comment toutes ces formes géometriques sont connectées.
On voit que contraiement aux images matricielles, ce type d’image n’est pas composé de pixels. On peut donc agrandir, rétricir à volonté sans perdre la qualité, il suffit simplement de réajuster le code pour produire l’image en question à la taille souhaitée.
Pour traiter ce type d’image, voici les 2 logiciels que j’utilise :
- AutoCAD
- Inkscape (Remarque :permet seulement la création de dessin 2D)
2.1.3 OpenSCAD#
Afin de pouvoir imprimer nos pièces en 3D, il va falloir utiliser un logiciel 3D travaillant sur les images vectorielles. J’ai choisi de me familiariser avec OpenSCAD, qui est un logiciel open source destiné à réaliser des modèles 3D par codage.
L’une des différences avec AutoCAD est qu’il s’agit d’un modeleur 3D utilisant son propre “language”, c’est à dire que les pièces seront prévisualisées qu’une fois qu’on les aura correctement codées dans son language.
Pour commencer à réaliser notre pièce, il faut installer l’application et ensuite ouvrir un nouveau fichier. Comme tout type de logiciel nécessitant du codage, il va falloir s’habituer aux différentes fonctions. Je vous conseille de regarder des tutoriels dans un premier temps comme celui-ci, et utilisé également des Cheat Sheet.
Utilisation de OpenSCAD#
1. Les différentes formes géometriques de base et leur code:#
3D | 2D | Arguments |
---|---|---|
sphere |
circle |
radius or diameter |
cube |
square |
([width, depth,height],center) or (size,center) |
cylinder |
(height, radius, center) or (h, r1, r2, center) |
Voici un exemple sur OpensScad :
Remarque : On remarque que la forme est pixelisée. Pour y remedier, on peut utiliser la fonction $fn qui contrôle le nombre de facettes utilisées pour former un arc. On remarque qu’en l’augmentant, l’image est plus lisse mais le temps pour créer le rendu est par contre lui plus long.
2. Les opérations booléennes :#
code | Description |
---|---|
union() |
l’union de 2 formes |
difference() |
soustrait la première forme(écrite) par la deuxième |
hull() |
lie 2 formes de manière à ce qu’on ne voit pas la difference |
3. Les transformations :#
code | Description |
---|---|
translate() |
permet de déplacer une forme selon les axes [x,y,z] |
rotation() |
rotation d’une forme selon les axes [x,y,z] |
Voici un exemple de ces 2 transformations sur OpenScad :
Remarque : On voit que l’on peut faire deux transformations à la suite, il suffit simplement de mettre à la fin de la dernière un “;” (point virgule) pour indiquer que c’est notre dernière transformation à exécuter.
Je vous conseille de bien apprendre à utiliser toutes ces différentes fonctions avant de commencer à modéliser votre pièce, ce sera un gain de temps !
2.2 Modéliser notre Flexlinks#
Après avoir appris les principales fonctions de OpenSCAD, on peut s’attaquer au design de la pièce qu’on utilisera pour construire notre kit Flex Links.
J’ai choisi de modéliser une brique de Lego pour pouvoir, par la suite, l’assembler avec les pièces de mes camarades (Juliette Debure et Eva Pueyo) et former mon kit.
Je me suis inspirée de cette image pour designer mon Lego. J’aimerai pouvoir reproduire la même configuration par la suite.
Pour déterminer mes valeurs je me suis basée sur les deux images ci-dessous. Celle de gauche nous donne les valeurs de la pièce de Eva Pueyo (“flex link”) pour que ce soit plus facile lors de la mise en commun. Il faura malgré tout faire plusieurs tests avec d’autres valeurs par la suite pour s’assurer que nos pièces s’accordent. Quant à l’image de droite, il s’agit des valeurs répertoriées d’un véritable Lego pour être le plus proche de la réalité. Je n’utiliserai que certaines de ces valeurs.
Il est temps de modéliser notre Lego !
Pour commencer, paramétrisons chacunes de nos formes à l’aide des valeurs de nos 2 dessins:
$fn=50;
//Paramètres :
lon = 60; // longueur du cube
la = 10; //largeur du cube
ha = 9; // hauteur du cube
ha_cyl = 2.5; // hauteur des cylindres
rc = 2.5; //rayon des cylindres
ha_trou = 11; // hauteur des cylindres formant les trous
Une fois les paramètres définis à partir des valeurs souhaitées, il est temps d’effectuer les différentes fonctions apprises pour obtenir la forme souhaitée !
Pour que toutes mes formes soit bien combinées en une seule pièce, j’utilise en tout premier la fonction union()
.
Pour créer ma première rangée de cylindre au dessus, j’utilise une boucle for, elle va permettre de pouvoir repéter l’exécution autant de fois que l’on veut.
-
On prend comme variable i dans cette boucle for, celui-ci prendra chacune des valeurs de 0 à 6, on aura donc 7 valeurs au total qui représenteront nos 7 cylindres.
-
On remarque que la variable x a changé, c’est pour que nos 7 cylindres ne soient pas superposés les uns sur les autres => on remplace donc x par i* 8 (8 est la valeur entre chacun de nos cylindres).
union(){ // pour assembler toutes les formes de la pièce
cube([lon,la,ha]); //cube qui formera la base de mon Lego
translate([5,5]) // créer la rangée de cylindre du haut
for( i = [0:6]) {
translate([i*8,0,9])
cylinder(h=ha_cyl,r=rc);
}
}
La figure obtenue est celle-ci :
On fera ensuite appel à la fonction difference()
pour former nos différents trous, et à rotate
pour disposer nos cylindres comme on le souhaite.
difference(){
cube([lon,la,ha]);
translate([23,0,0])
for (i=[0:5]){
translate([i*10,10.5,4.5])
rotate([90,0,0])cylinder(h=ha_trou, r=rc);
}
}
La figure obtenue est celle-ci :
Pour finir on disposera 2 cylindres à côté de nos trous en utlisant le même principe que la rangée du dessus, il faudra simplement utiliser la fonction rotate()
pour placer correctement nos cylindres.
translate([3.5,0,0]) // créer la rangée de cylindre sur le côté
for (i=[0:5]){
translate([i*10.5,0,4.5])
rotate([90,0,0])cylinder(h=ha_cyl,r=rc); // rotation de 90 degrés selon x
}
On obtient notre Lego final ! Il y aura sûrement certains paramètres à changer mais ça on ne le verra qu’après l’impression.
Pour avoir une bonne vue d’ensemble, voici tout mon code ci-dessous ;) :
$fn=50;
lon = 60; // longueur du cube
la = 10; //largeur du cube
ha = 9; // hauteur du cube
ha_cyl = 2.5; // hauteur des cylindres
rc = 2.5; //rayon des cylindres
ha_trou = 11; // hauteur des cylindres formant les trous
union(){
translate([5,5])
for( i = [0:6]) {
translate([i*8,0,9])
cylinder(h=ha_cyl,r=rc);
}
difference(){
cube([lon,la,ha]);
translate([23,0,0])
for (i=[0:5]){
translate([i*10,10.5,4.5])
rotate([90,0,0])cylinder(h=ha_trou, r=rc);
}
}
translate([3.5,0,0])
for (i=[0:1]){
translate([i*10.5,0,4.5])
rotate([90,0,0])cylinder(h=ha_cyl,r=rc);
}
}
2.3 Creative Commons Licenses#
Les licences Creative Commons sont un ensemble de licences standardisées qui permettent aux créateurs de définir les conditions d’utilisation de leur travail.
Ces licences s’adressent aux auteurs souhaitant :
- Partager et faciliter l’utilisation de leur création par d’autres
- Autoriser gratuitement la reproduction et la diffusion (sous certaines conditions)
- Accorder plus de droits aux utilisateurs en complétant le droit d’auteur qui s’applique par défaut
- Faire évoluer une oeuvre et enrichir le patrimoine commun (les biens communs ou Commons)
Dans le cas de ce cours, déposer une creative license sur notre travail permettra à d’autres personnes de l’utiliser, le modifier et l’enrichir par la suite !
Il existe plusieurs types de licences CC (Creative Commons):
Types | Obligations |
---|---|
CC BY | créditer l’auteur original |
CC BY-SA | les adaptations de l’oeuvre doivent être diffusées sous les mêmes conditions (selon la même licence), créditer l’auteur |
CC BY-ND | aucune modification ou adaptation de l’oeuvre originale |
CC BY-NC | exploitation de l’œuvre (partager, copier, reproduire, distribuer, communiquer, réutiliser, adapter) sauf à des fins commerciales, créditer l’auteur |
CC BY-NC-SA | les adaptations de l’oeuvre doivent être diffusées sous les mêmes conditions (selon la même licence), aucune fin commerciale, créditer l’auteur |
CC BY-NC-ND | aucune modification ou adaptation, aucune fin commerciale, créditer l’auteur |
Pour nous familiariser avec l’utilisation de ces licenses, je vais licencier ma pièce modélisée lors de ce module. Il suffit de choisir le type de license que je souhaite utilisée et y inclure le lien sur mon travail.
// File : Lego_fablab_module2.scad
//Author : Noa Lipmanowcz
// Date : 16 octobre 2023
// License : Creative Commons Attribution-ShareAlike 4.0 International [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
À partir de maintenant mon lego pourra être utilisé par d’autres camarades ! Vous le retrouverez sous le nom de lego_final_module2 sur ma page gitlab.
2.4 Checkist du module#
- parametrically modelled some FlexLinks using 3D CAD software ✔️
- shown how you did it with words/images screenshots ✔️
- included your original design files ✔️
- included the CC license to your work ✔️
- documented how you used other people’s work and gave proper credit to complete your kit. ✔️