Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


logiciels:openscad:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
logiciels:openscad:accueil [2015/09/16 18:07]
resonance [Primitives 3D et transformations]
logiciels:openscad:accueil [2018/02/11 22:31] (Version actuelle)
resonance [Description]
Ligne 1: Ligne 1:
 ====== OpenSCAD ====== ====== OpenSCAD ======
-  * Porteur du projet : OpenSCAD is maintained by Marius Kintel - marius[at]kintel.net 
-  * General inquiries can be sent to info@openscad.org 
-  * Licence : GPL v2 
-  * Fichiers : {{:logiciels:openscad:openscad_init.zip|tous les codes de cette page}} 
-  * Lien : http://www.openscad.org 
  
-===== Description ===== 
 {{:logiciels:openscad:window.small.png|}} {{:logiciels:openscad:window.small.png|}}
  
-"OpenSCAD est un logiciel de modélisation tridimensionnelle rudimentaire. C'est un logiciel libre qui fonctionne à la fois sous Linux, Mac OS et Microsoft Windows. Le projet a débuté en Février 2010. OpenSCAD a pour particularité de fonctionner de façon entièrement paramétrique, c'est-à-dire que la conception passe par la rédaction d'un script dans une sous-fenêtre située à gauche, tandis qu'une sous-fenêtre à droite permet de visualiser l'objet en 3D, mais pas de l'éditer.(wikipedia)+<blockquote>OpenSCAD est un logiciel de modélisation tridimensionnelle rudimentaire. C'est un logiciel libre qui fonctionne à la fois sous Linux, Mac OS et Microsoft Windows. Le projet a débuté en Février 2010. OpenSCAD a pour particularité de fonctionner de façon entièrement paramétrique, c'est-à-dire que la conception passe par la rédaction d'un script dans une sous-fenêtre située à gauche, tandis qu'une sous-fenêtre à droite permet de visualiser l'objet en 3D, mais pas de l'éditer. (wikipedia)</blockquote> 
 + 
 + 
 +  * Fichiers : {{:logiciels:openscad:openscad_init.zip|tous les codes de cette page}} 
 +  * Lien : http://www.openscad.org
  
 ===== Ressources===== ===== Ressources=====
Ligne 23: Ligne 21:
  
 ===== Installation===== ===== Installation=====
-  -   [[http://www.openscad.org/downloads.html|Téléchargement]] +  [[http://www.openscad.org/downloads.html|Téléchargement]] 
-  -   Bibliothèques à télécharger : +  Bibliothèques à télécharger : 
-   * [[https://github.com/elmom/MCAD|MCAD]] très pratique pour les pièces mécaniques (engrenages, moteurs, formes, etc.) +    * [[https://github.com/elmom/MCAD|MCAD]] très pratique pour les pièces mécaniques (engrenages, moteurs, formes, etc.) 
-   * [[http://www.thingiverse.com/thing:16193|Write.scad]] pour l'écriture de texte. +    * [[http://www.thingiverse.com/thing:16193|Write.scad]] pour l'écriture de texte. 
-   * [[https://github.com/JohK/nutsnbolts|nutsnbolts]] pour écrous et boulons. +    * [[https://github.com/JohK/nutsnbolts|nutsnbolts]] pour écrous et boulons. 
-   * [[http://libregraphicsworld.org/blog/entry/inkscape-gets-openscad-converter|Convertertisseur .dxf pour Inkscape]] +  * Plugins Inkscape 
-   * [[http://www.thingiverse.com/thing:25036|Inkscape to OpenSCAD converter]]+    * [[http://libregraphicsworld.org/blog/entry/inkscape-gets-openscad-converter|Convertertisseur .dxf pour Inkscape]] 
 +    * [[http://www.thingiverse.com/thing:25036|Inkscape to OpenSCAD converter]]
  
 ===== Exemples===== ===== Exemples=====
 ==== Primitives 3D et transformations==== ==== Primitives 3D et transformations====
 {{:logiciels:openscad:exemple_1.png|}} {{:logiciels:openscad:exemple_1.png|}}
- ** exemple_1.scad** +++++ exemple_1.scad | 
-+++++
 <code c> <code c>
 // Unité = millimètre // Unité = millimètre
Ligne 67: Ligne 66:
 </code> </code>
 ++++ ++++
-Les mots clés (tagsreprésentant votre travail + 
-{{tag>[tag1 tag2 tag3]}}+==== Modélisation simple avec opérations booléennes==== 
 +{{:logiciels:openscad:exemple_2.png|}} 
 +++++ exemple_2.scad | 
 + 
 +<code c> 
 +// DIFFERENCE 
 +difference()
 +    cube(10, true); 
 + 
 +    cylinder(h=15, r=2,$fn=20,center=true); 
 +    rotate([90,0,0]) cylinder(h=15, r=2,$fn=20,center=true); 
 +    rotate([0,90,0]) cylinder(h=15, r=2,$fn=20,center=true); 
 +
 + 
 +// INTERSECTION 
 +translate([20,0,0]) 
 +intersection() { 
 +    sphere(6); 
 +    cube(10,true); 
 +
 + 
 +//UNION 
 +translate([40,0,0]) 
 +union() { 
 +    sphere(6); 
 +    cube(10,true); 
 +
 +</code> 
 +++++ 
 + 
 +==== Extrusion d'une forme 2D en 3D==== 
 +{{:logiciels:openscad:exemple_3.png|}} 
 +** difficulté pour extruder un .dxf ? > voir [[http://libregraphicsworld.org/blog/entry/inkscape-gets-openscad-converter|plugin Inkscape .scad converter]] 
 +++++ exemple_3.scad | 
 + 
 +<code c> 
 +// Rotation = révolution 
 +rotate_extrude($fn=20) polygon( points=[ [0,0],[2,6],[0,8] ] ); 
 + 
 +// Linéaire 
 +linear_extrude(height = 2) 
 +translate([3, 0, 0]) 
 +square(5); 
 + 
 +// Extrusion d'un fichier DXF 
 +linear_extrude(height = 2) 
 +scale (0.5) 
 +translate([20, 0, 0])  
 +import (file = "ohw.dxf"); 
 +</code> 
 +++++ 
 + 
 + 
 +==== Avantages du paramétrique ==== 
 +Possible aussi en python avec Freecad et Blender. 
 +{{:logiciels:openscad:exemple_4.png|}} 
 +difficulté pour extruder un .dxf ? > voir [[http://libregraphicsworld.org/blog/entry/inkscape-gets-openscad-converter|plugin Inkscape .scad converter]] 
 +++++ exemple_4.scad | 
 + 
 +<code c> 
 +/*  
 + * EXEMPLE 4 : avantages d'un logiciel paramétrique 
 + * Accès aux principes de bases de la programmation : 
 + * Structures et fonctions 
 + */ 
 + 
 +// --------- Programme principal ---------------- // 
 +// Appel des modules, etc. 
 + 
 +difference(){ 
 +    support(); 
 +    trous(); 
 +
 + 
 +// --------- Variables (ou plutôt constantes) -- // 
 +longueur = 50; 
 +hauteur = 5; 
 +profondeur = 15; 
 +trou_rayon = 2; 
 +trou_nb = 6; 
 +$fn=20; 
 + 
 +// --------- Modules --------------------------- // 
 +module support() { 
 +    union(){ 
 +        cube([longueur,profondeur,hauteur]); 
 +        color ([0,1,0])  
 +            translate ([0,profondeur/2,0])  
 +                cylinder(h=hauteur, r=profondeur/2); 
 +    } 
 +
 + 
 +module trous() { 
 +    for (i=[0:trou_nb-1]) { 
 +        translate([i*5,profondeur/2,-1])  
 +            cylinder(h=hauteur+2, r=trou_rayon); 
 +    } 
 +
 +</code> 
 +++++ 
 + 
 + 
 +==== Utilisation des bibliothèques ==== 
 +[[https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries|References]] 
 +Il suffit de décompresser le dossier et de le mettre dans le dossier de travail, puis d'importer le fichier voulu dans le document openscad avec include <nombibliotheque/fichier.scad> 
 +{{:logiciels:openscad:exemple_5.png|}} 
 + 
 +++++ exemple_5.scad | 
 + 
 +<code c> 
 +/* 
 + * Utilisation des bibliothèques  
 + * - MCAD pour les engrenages et bien d'autres choses : https://github.com/elmom/MCAD 
 + * - nutsnbolts pour les écrous et boulons : https://github.com/JohK/nutsnbolts 
 + * - Write.scad pour le texte : http://www.thingiverse.com/thing:16193. 
 + * -- Attention, il faut placer les fichiers Letters.dxf et Write.scad dans le répertoire de travail 
 + */ 
 + 
 +// Importer les bibliothèques 
 +include <MCAD/motors.scad> 
 +include <MCAD/gears.scad> 
 +include <nutsnbolts/cyl_head_bolt.scad> 
 +include <Write.scad> 
 + 
 +// Moteur pas à pas Nema 17 
 +stepper_motor_mount(17); 
 + 
 +// Engrenages 
 +translate([0,0,15]) gear(number_of_teeth=51,circular_pitch=200); 
 +translate([0,0,15]) linear_extrude(height = 10, center = true, convexity = 10, twist = -45)  
 +    gear(number_of_teeth=17,diametral_pitch=1); 
 + 
 +// Écrous et boulons 
 +$fn=60; 
 +translate([35,10,0]) screw("M5x10"); 
 +translate([35,-10,0]) nut("M4"); 
 + 
 +// Lettres 
 +translate([0,0,35])  
 +rotate(90,[1,0,0]) 
 +write("Lieu de Fabrication Ouvert", h=4, t=1, center=true); 
 +</code> 
 +++++ 
 + 
 + 
 +==== Autres exemples ==== 
 + 
 +{{:logiciels:openscad:exemple_6.png|}} 
 + 
 +++++ exemple_6.scad | 
 + 
 +<code c> 
 +for(i=[0:36]) 
 +    translate([i*10,0,0]) 
 +       cylinder(r=5,h=cos(i*10)*50+60); 
 +</code> 
 +++++ 
 + 
 +{{:logiciels:openscad:exemple_7.png|}} 
 +[[http://golancourses.net/2014/category/13-parametric-object/|computational design]] 
 +++++ exemple_7.scad | 
 + 
 +<code c> 
 +seashell(5,2); 
 + 
 +module seashell(turns, spine) { 
 +    for ( i = [0 : 0.2 : turns] ) 
 +    { 
 +        rotate( i * 360/6, [100 * i, i, 0]) 
 +        difference () { 
 +            cylinder(h=i, r=i*spine/10, center = true); 
 +            cylinder(h=i/2, r=i*2, center = true); 
 +        } 
 +    } 
 +
 +</code> 
 +++++ 
 + 
 +==== Extrusion complexe ==== 
 + 
 +{{:logiciels:openscad:exemple_8.png|}} 
 + 
 +++++ exemple_8.scad | 
 + 
 +<code c> 
 +// Example009.scad from OpenSCAD examples 
 + 
 +bodywidth = dxf_dim(file = "example009.dxf", name = "bodywidth"); 
 +fanwidth = dxf_dim(file = "example009.dxf", name = "fanwidth"); 
 +platewidth = dxf_dim(file = "example009.dxf", name = "platewidth"); 
 +fan_side_center = dxf_cross(file = "example009.dxf", layer = "fan_side_center"); 
 +fanrot = dxf_dim(file = "example009.dxf", name = "fanrot"); 
 + 
 +% linear_extrude(height = bodywidth, center = true, convexity = 10) 
 +    import(file = "example009.dxf", layer = "body"); 
 + 
 +% for (z = [+(bodywidth/2 + platewidth/2), 
 +        -(bodywidth/2 + platewidth/2)]) 
 +
 +    translate([0, 0, z]) 
 +    linear_extrude(height = platewidth, center = true, convexity = 10) 
 +        import(file = "example009.dxf", layer = "plate"); 
 +
 + 
 +intersection() 
 +
 +    linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot) 
 +        import(file = "example009.dxf", layer = "fan_top"); 
 +         
 +    // NB! We have to use the deprecated module here since the "fan_side" 
 +    // layer contains an open polyline, which is not yet supported 
 +    // by the import() module. 
 +    rotate_extrude(file = "example009.dxf", layer = "fan_side", 
 +        origin = fan_side_center, convexity = 10); 
 +
 +</code> 
 +++++ 
 + 
 +  * [[https://www.thingiverse.com/thing:34348|ex.1 fractal]] 
 +  * [[http://www.thingiverse.com/thing:156984|ex.2 fractal]] 
 +  * [[http://www.thingiverse.com/thing:19304|ex. gyroCube]] 
 +  * [[https://gist.github.com/t-paul/7171783|ex. parametrique]] 
 + 
 +{{:logiciels:openscad:loft.png|}} 
 +{{:logiciels:openscad:loft1.png|}}
/home/resonancg/www/wiki/data/attic/logiciels/openscad/accueil.1442419623.txt.gz · Dernière modification: 2015/09/16 18:07 de resonance