====== De Stl vers Svg ====== {{{project picture: {{:usager:tdasse:obj2svg:stl2svg1.png?200|}} machines: materiaux: logiciels: Blender Python gdesign sources: liens: tags: usager:thierry_dasse licence:cc-by-nc }}} Un utilisateur a récupéré un fichier stl d'une pièce de type 2D extrudée (forme plane qui a juste subi une mise en volume par translation). L'impression 3D n'a pas donné de résultats satisfaisants et il souhaitait plutôt fabriquer la pièce en découpe laser. La problématique est donc de transformer un fichier stl en svg. Pour réaliser cette opération, j'ai modifié le fichier 3D avec Blender et écrit un script python pour générer le fichier svg. ===== Première étape : récupérer une forme 2D dans un fichier 3D stl ===== On lance Blender et on importe le fichier stl(file/import/Stl(.stl)). Ensuite, on fait <1> et <5> pour se placer en vue de face ortho puis et pour être en mode edit transparent puis pour tout déselectionner et enfin pour selectionner en rectangulaire les points de la face du dessous par exemple. Un petit vertices nous permet d'éliminer les faces à l'exception de la face du dessus. Enfin <7> nous permet de nous mettre en vue de dessus. Il faut maintenant simplifier le maillage pour ne garder que les edges(arêtes) de contour. Un pour repasser en mode objet et l'application d'un modificateur decimate avec l'option planar fait déjà la majeure partie du boulot. On repasse en mode edit () pour admirer et on supprime les dernières arêtes intérieures pour ne garder que les contours. Enfin, on exporte la forme au format obj (file/export/Wavefront(.obj)). Ce format est sobre et il est facile d'écrire un programme pour traiter ses données. {{:usager:tdasse:obj2svg:stl2svg1.png?200|}} {{:usager:tdasse:obj2svg:stl2svg2.png?200|}} {{:usager:tdasse:obj2svg:stl2svg3.png?200|}} {{:usager:tdasse:obj2svg:stl2svg4.png?200|}} ===== Deuxième étape : transformer le fichier obj en svg ===== Pour transformer le fichier obj, j'ai écrit un petit programme python qui créé un fichier svg à partir des edges(arêtes) du fichier obj en utilisant les coordonnées des points sans la composante z. Pour cela, vous avez besoin de python sur votre ordinateur ce qui est déjà le cas si vous êtes sous linux et d'installer le package gdesign. ==== installation de gdesign ==== Télécharger le package {{:usager:tdasse:gdesign:gdesign_021py.zip|}}. Le décompresser et ouvrir une fenêtre de commande dans le répertoire créé (qui doit contenir le fichier setup.py) Installer le package avec la commande python3 setup.py install ==== convertir le fichier obj en svg ==== Télécharger {{:usager:tdasse:obj2svg:obj2svg.py.zip|}} et le décompresser dans le répertoire contenant le fichier .obj exporté précédemment. Dans une fenetre de commande, executer python3 obj2svg.py .obj Un fichier svg est généré et devrait être utilisable, notamment pour une découpe laser.