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:04]
resonance
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 65: Ligne 65:
  );  );
 </code> </code>
 +++++
 +
 +==== 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]]
  
-Les mots clés (tags) représentant votre travail +{{:logiciels:openscad:loft.png|}} 
-{{tag>[tag1 tag2 tag3]}}+{{:logiciels:openscad:loft1.png|}}
/home/resonancg/www/wiki/data/attic/logiciels/openscad/accueil.1442419497.txt.gz · Dernière modification: 2015/09/16 18:04 de resonance