Tutoriel OpenSCAD 9 – Import-Export

Page suivante : Choses & autres

import() importe des fichiers DXF (2D) ou STL (3D). use et include importent du code provenant d’un autre script. Validité d’un fichier exporté en STL.

Importation de fichier DXF

Une élévation peut être donnée par linear_extrude() à une forme importée depuis un fichier DXF avec la commande import(). Celle-ci prend deux paramètres, dont les noms peuvent être ignorés : file pour le nom du fichier importé, avec chemin éventuel, et layer pour le nom de la couche à importer. Ce paramètre est facultatif, la couche 0 est importée s’il n’est pas précisé. Exemple avec deux formes contenues dans deux couches d’un même fichier DXF :

  color ("red")
    linear_extrude (height=60)  // élévation de 60 mm
      import (file="untitled.dxf", layer="calque-1", $fn=100);

  color ("seagreen")
    linear_extrude (100)  // élévation de 100 mm
      import ("untitled.dxf", "calque-2");

Rendu d’OpenSCAD avec importation de fichier DXF

Importation de fichier STL

Avec le seul paramètre file, import() permet d’importer un fichier STL. Cela peut servir à le modifier, ou à combiner différents fichiers à imprimer ensemble. Exemple de rotation et centrage en vue d’une impression :

  translate ([-13,0,0]) import ("dosette.stl");

  translate ([13,0,0]) rotate ([0,0,180]) import ("dosette.stl");

Rendu d’OpenSCAD montrant deux fichiers STL importés

use et include

use permet d’utiliser dans le script courant des modules figurant dans un autre script. include a un effet plus large et agit comme si le code importé était directement écrit dans le script courant : les variables et commandes sont également importées. Les commandes use et include ne sont pas suivies de parenthèses, mais par des chevrons entourant le nom du fichier concerné. La ligne les contenant ne se termine pas par un point-virgule.

  use <chemin/vers/fichier.scad>  // importation des modules de fichier.scad

  include <chemin/vers/fichier.scad>  // importation de la totalité de fichier.scad

Exportation en STL

Dans le format STL les surfaces des objets sont représentées par un ensemble de triangles. Exemple de triangulation d’un cylindre dont le pourtour se compose de 20 faces ($fn=20) :

Triangulation STL d'un cylindre

Chaque triangle doit partager une arête avec chacun des triangles adjacents, soit deux sommets. L’objet doit être correctement dessiné pour que cette règle soit respectée et pour que l’exportation en STL soit possible. Si ce n’est pas le cas, OpenSCAD indique « Simple: no » dans la zone de messages, lors du rendu par F6. Si l’exportation est demandée par le menu Design > Export as STL, OpenScad indiquera « Object isn't a valid 2-manifold! Modify your design. See http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export ».

Les deux causes habituelles de dessin incorrect sont l’extraction d’une forme ne débordant pas de celle dont elle est extraite, par la commande difference(), et le dessin de deux objets différents mais partageant une arête :

  color ("red") translate ([-20, -20, 0]) cube (20);
  cube (20);

Rendu d’OpenSCAD avec

La solution est de séparer ces deux objets ne serait-ce que d’un millième de millimètre :

  color ("red") translate ([-20.001, -20, 0]) cube (20);
  cube (20);

Page suivante : Choses & autres

• Publié le 19/07/2013