OpenSCAD¶
OpenSCAD est un outil de modélisation 3D original puisqu’au lieu de dessiner il faut programmer ....
des points d’informations:
- http://www.openscad.org/
- http://eleydet.free.fr/openscad/
- http://fablab-lannion.org/wp-content/tutos/openscad/#/scale
Installation¶
Il existe sur www.openscad.org plusieurs installateurs pour linux et windows
Sous debian on peut faire
apt-get install openscad
Mais la version du package est très ancienne, il est donc préférable de l’installer en utilisant les dernières sources disponibles sur le site
su - root
mkdir openscad
cd openscad
wget http://files.openscad.org/openscad-2014.03.x86-32.tar.gz
tar -xvf openscad-2014.03.x86-32.tar.gz
./install.sh
Note
après l’extraction on peut lancer openscad sans l’installer via le répertoire bin
Pour lancer OpenSCAD
openscad
Il peut être utile d’installer le plugin vim permettant la coloration synthaxique des fichiers openscad
wget https://github.com/sirtaj/vim-openscad/archive/master.zip
unzip master.zip
cd vim-openscad-master
cp ftplugin/* /usr/share/vim/vim73/ftplugin/
cp syntax/* /usr/share/vim/vim73/syntax/
mkdir /usr/share/vim/vim73/ftdetect/
cp ftdetect/* /usr/share/vim/vim73/ftdetect/
Utilisation¶
J’ai la chance d’avoir 2 écrans:
- premier écran: vi avec mon fichier scad ouvert
- deuxième écran: openscad ouvert sur le fichier scad avec Design/Automatic Reload and Compile d’activé et Hide Editor
Comme cela dès que j’enregistre mon fichier dans vi , openscad me fournit le visuel en automatic
Openscad peut être utilisé avec deux philosophies:
- scultpeur: j’ai un bloc et j’enlève de la matière
- potier: j’ajoute et je façonne de la matière
Coding¶
écrire et utiliser un module
module test()
{
cube(size=[15,40,1]);
}
test();
un module avec paramètre
module hole(distance, rot, size) {
rotate(a = rot, v = [1, 0, 0]) {
translate([0, distance, 0]) {
cylinder(r = size, h = 100, center = true);
}
}
}
hole(0, 90, 10);
ajout de commentaire
// Ceci est un commentaire sur une ligne
cube(size=20);
/* UN DEUXIEME COMMENTAIRE
sur deux lignes... ;)
*/
translate([20,20,20]) cube(size=20);