====== De Inkscape à Openscad ====== {{{project picture:{{:gdesign:gdesign.png?200|}} machines: 3D materiaux: logiciels: Inkscape, Openscad sources: liens: https://github.com/tdasse/gdesign-inkscape.git tags: inkscape, openscad, gdesign usager:thierry_dasse licence:cc-by-nc }}} Gdesign et quelques plugins permettent de concevoir des objets 3D à partir d'Inkscape ===== Conception ===== Inkscape est un excellent outil de créaion de formes 2D qui permet de dessiner des formes à partir de segments, arcs et courbes de Bézier. Openscad est un outil très intéressant de modélisation 3D qui permet de réaliser des solides à parir de primitives. J'ai écrit le package gdesign afin de pouvoir intégrer des solides extrudés à partir de formes 2D créées sous Inkscape dans Openscad. Ce package est encore en développement. ===== Installation ===== Le package gdesign est disponible sur [[https://github.com/tdasse/gdesign-inkscape.git]] Copier les fichiers du dossier extensions dans le dossier des extensions d'Inkscape\\ Windows : "C:\Program Files\Inkscape\share\extensions"\\ Linux : "/usr/share/inkscape/extensions"\\ Mac : "/Applications/Inkscape.app/Contents/Resources/extensions"\\ Dans Enregistrer sous... apparaît Openscad File(.scad) qui permet d'exporter en Openscad. {{:projets:scad-save01.png?200|}} {{:projets:scad-save02.png?200|}} {{:projets:scad-save03.png?200|}} Openscad unit : convertit en mm, cm ou inches\\ number of digits : nombre de chiffres significatifs\\ header : entête du fichier .scad (utile pour y mettre des paramêtres type $fn= 60; ...)\\ header of path : entête de chaque chemin (on peut y mettre des commandes openscad comme linear_extrude() ou rotate_extrude())\\ footer of path : pied de chaque chemin\\ footer : pied du fichier .scad\\ error max : erreur max lors de la conversion des courbes de Bezier et des arcs en lignes polygonales\\ error unit en mm, cm, in, pt or px\\ includes definit les groupes et calques à inclure dans le fichier .scad\\ Si le champ est vide, tous les grooupes et calques seront inclus\\ Si le champ contient une liste séparée par des + et -, les éléments de la liste seront inclus(+) ou exclus.\\ all représente tous les groupes et calques. Par exemple 'all - calque1' représente tous les calques sauf calque1\\ les éléments et opérateurs doivent être séparés par un espace. Les noms de groupes et calques, eux, ne doivent pas comporter d'espaces.\\ Pour les calques, inkscape:label est utilisé à la place de id ===== Exemples ===== Exemple 1 {{:gdesign:ex01-svg.png?200|}} {{:gdesign:ex01-scad.png?200|}} Pour réaliser des solides en extrusion, on peut ajouter linear_extrude(//hauteur//) dans le champ //header of path// de l'enregistrer sous...\\ Si Openscad est paramétré de manière à recharger et recompiler le fichier automatiquement (menu Design), on peut modifier les points sur inkscape et voir les modifications à chaque enregistrement du fichier.\\ Attention, en cas de modifications, penser à les enregistrer aussi en svg. Exemple 2 {{:gdesign:ex02-svg.png?200|}} {{:gdesign:ex02-scad.png?200|}} Pour réaliser des solides de révolution, on peut ajouter rotate_extrude() dans le champ //header of path// de l'enregistrer sous... et éventuellement $fn = 50; dans le champ //header// pour ajuster la qualité. Exemple 3 {{:gdesign:ex03-svg.png?200|}} {{:gdesign:ex03-scad.png?200|}} Pour réaliser des modèles plus compliqués, il faut ajouter les commandes openscad directement dans les chemins.\\ Pour cela, sélectionner le chemin et utiliser extensions/scad parameters/définir.\\ On peut aussi créer et modifier les champs //scad-header//, //scad-footer// et //scad-pos// dans l'éditeur XML. scad-header est appliqué avant le chemin (transformé en polygone), scad-footer après.\\ scad-pos permet de repositionner le chemin, non pas à partir de sa position dans le svg mais à partir de l'origine.\\ Il peut prendre les valeurs //center//, //top-left//, //top//, //top-right//, //left, //right//, //bottom-left//, //bottom//, //bottom-right// ...\\ \\ Avantages:\\ * on peut mettre des commandes différentes par chemin\\ * on enregistre les paramètres scad directement dans le fichier svg\\ * on peut mixer avec le menu enregistrer sous... (les commandes de chemins seront appliquées d'abord)\\ \\ Attention:\\ On peut modifier les points d'un chemin après avoir ajoutés des paramètres scad. Par contre, lors d'opérations de type union, intersection, ...\\ inkscape élimine tous les champs inconnus donc les scad parameters.\\ Pour contourner le problème, on peut les enregistrer d'abord sur un fichier temporaire extensions/scad parameters/enregistrer et les restaurer après l'opération.\\