logiciel:openscad
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
logiciel:openscad [2017/11/15 16:16] – [Transformations avancées] ahuet | logiciel:openscad [2017/11/16 16:20] – typo ahuet | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
OpenSCAD est un logiciel de modélisation 3D. Son originalité réside dans les faits que les volumes y sont décrit avec du code, ce qui est fort plaisant pour qui aime en écrire. | OpenSCAD est un logiciel de modélisation 3D. Son originalité réside dans les faits que les volumes y sont décrit avec du code, ce qui est fort plaisant pour qui aime en écrire. | ||
+ | Une archive contenant les exemples ci-dessous est disponible : {{logiciel: | ||
===== Liens utiles ===== | ===== Liens utiles ===== | ||
- | [[http:// | ||
- | [[http:// | + | *[[http:// |
+ | *[[http:// | ||
+ | *[[https:// | ||
+ | *[[https:// | ||
+ | *[[https:// | ||
+ | *[[https:// | ||
- | [[https:// | + | ===== Concepts de bases ===== |
- | [[https://www.thingiverse.com/thing:25036|Importer automagiquement les modèles Inkscape]] | + | * Les volumes créés doivent être Manifold : il faut donc faire attention à ne pas laisser exister de surface infiniment fines entres les volumes. |
- | + | * Les volumes créés doivent être Watertigh aka étanches : cela ne posent pas de problèmes avec les primitives de bases, mais il faut bien y veiller lorsque l'on définit des ensemble de vecteurs par leurs coordonnées. | |
- | + | * Bien que le pseudo-langage soit [[https://fr.wikipedia.org/wiki/ | |
- | ===== Concepts | + | * Lorsque l'on travaille sur on modèle, on utilise le mode de prévisualisation, |
+ | * Certains caractères sont des modificateurs, | ||
+ | * '' | ||
+ | * '' | ||
+ | * ''#'' | ||
+ | * '' | ||
+ | * Les instructions finissent par des points virgules. Un point virgule de trop peut provoquer des bugs peut aisés à diagnostiquer pour le débutant. Lorsque l'on oublie un point virgule, le compilateur souligne la ligne suivante. | ||
===== Installation ===== | ===== Installation ===== | ||
Ligne 24: | Ligne 35: | ||
===== Créer des volumes ====== | ===== Créer des volumes ====== | ||
- | Comme expliqué dans le [[http:// | + | Comme expliqué dans le [[http:// |
Bien que cela ne soit pas obligatoire, | Bien que cela ne soit pas obligatoire, | ||
Ligne 174: | Ligne 185: | ||
'' | '' | ||
===== Opération booléennes ===== | ===== Opération booléennes ===== | ||
+ | |||
+ | '' | ||
+ | |||
+ | <code c> | ||
+ | union() | ||
+ | difference() | ||
+ | intersection() | ||
+ | </ | ||
+ | |||
+ | Elle peuvent être combinées pour créer facilement des volumes complexes. On notera ici que '' | ||
+ | |||
+ | <code c> | ||
+ | // Intersection avec un cylindre à 6 facette, pour créer une tête hexagonale. | ||
+ | intersection() { | ||
+ | // Union entre la tête et le corps | ||
+ | union() { | ||
+ | translate([0, | ||
+ | // Difference pour le trou dans le corps | ||
+ | difference() { | ||
+ | $fn = 50; | ||
+ | cylinder(d = 25, h = 100); | ||
+ | translate([0, | ||
+ | } | ||
+ | } | ||
+ | $fn = 6; | ||
+ | #cylinder(d = 45, h = 110); | ||
+ | } | ||
+ | </ | ||
===== Boucles ===== | ===== Boucles ===== | ||
- | ===== Concepts importants | + | |
+ | Il est possible de définir des boucles '' | ||
+ | |||
+ | <code c> | ||
+ | // 10 cubes rouges de tailles différentes | ||
+ | color(" | ||
+ | |||
+ | // 4 sphères vertes différentes réunis par un bouclier | ||
+ | color(" | ||
+ | hull() { | ||
+ | for (ball_size | ||
+ | if (ball_size % 2) | ||
+ | translate([ball_size, | ||
+ | else | ||
+ | translate([-ball_size, | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | // 20 cylindre bleu en rotation | ||
+ | color(" | ||
+ | for (angle | ||
+ | translate([0, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Les boucles se prêtent bien aux jeux trigonométriques : | ||
+ | |||
+ | <code c> | ||
+ | $fn = 3; | ||
+ | |||
+ | // 12960 ensembles de cylindres qui changent de couleurs en parcourant une sphère | ||
+ | for (i = [0:1:360]) { | ||
+ | for (j = [0:10:359]) { | ||
+ | color([sin(i), | ||
+ | rotate([i, j, 0]) | ||
+ | translate([100, | ||
+ | union() { | ||
+ | cylinder(r | ||
+ | cylinder(r | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Export ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | Il est également possible d' | ||
+ | |||
+ | <code c> | ||
+ | projection() { | ||
+ | difference() { | ||
+ | cylinder(r = 4); | ||
+ | cylinder(r = 2); | ||
+ | } | ||
+ | } | ||
+ | </ |
logiciel/openscad.txt · Dernière modification : 2024/04/26 14:45 de 127.0.0.1