Catégories
Liens
Ceci est une ancienne révision du document !
“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)
// Unité = millimètre // Vecteur = point en 3D = [x,y,z] // CUBE // Arguments : dimensions (un nombre ou un vecteur), center (booléen) cube(5, true); translate([5,0,0]) rotate([45,0,0]) cube([5,10,2]); // SPHERE // Arguments : rayon, résolution ($fn), fragment angle ($fa), fragment size ($fs) translate([0,15,0]) sphere(5); translate([0,15,10]) sphere(5,$fn=5); translate([0,15,25]) scale(2) sphere(5,$fn=50); // CYLINDRE // Arguments : hauteur, rayon, rayon1, rayon2, center, $fa, $fs, $fn translate([0,-15,0]) color([1,0,0]) cylinder(h=10, r1=5, r2=10, center=true); // POLYHEDRE translate([0,-35,0]) polyhedron( points=[ [10,10,0],[10,-10,0],[-10,-10,0],[-10,10,0], // the four points at base [0,0,10] ], // the apex point triangles=[ [0,1,4],[1,2,4],[2,3,4],[3,0,4], // each triangle side [1,0,3],[2,1,3] ] // two triangles for square base );
// 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); }
** difficulté pour extruder un .dxf ? > voir plugin Inkscape .scad converter
// 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");
Possible aussi en python avec Freecad et Blender. difficulté pour extruder un .dxf ? > voir plugin Inkscape .scad converter
/* * 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); } }