Bonjour,
Je travaille avec Inkscape, un logiciel de dessin vectoriel qui génère des fichiers de dessin au format XML.
Pour déplacer un élément ou groupe d'éléments d'un calque vers un autre, il y a deux possibilités :
1. Couper (Ctrl + x) l'élément (le chemin, le groupe de chemins, ...) sélectionné avec l'outil de sélection puis se déplacer dans le second calque (en cliquant dessins dans la fenêtre des calques, puis coller.
Et là, le travail n'est pas terminé car il faut encore réaligner l'élément déplacé avec les autres.
2. Autre solution : ouvrir l'outil appelé "éditeur XML" contenu dans Inkscape et ensuite, en cliquant sur l'élément, mettre son nom en sur-birillance dans l'arbre SVG du fichier XML (pour retrouver l'objet parmi la multitude d'objets que j'ai déjà dessinés) puis déplacer cette sélection dans l'arbre SVG jusqu'à sa position dans le second calque.
Avec quelques éléments peu nombreux, ça va; mais quand on en a une cinquantaine à déplacer, c'est déjà moins gai !
Je voudrais donc pouvoir, à partir d'une extension dans Inkscape, faire déplacer mes éléments "automatiquement".
Pour ce faire, je dois "simplement déplacer la ligne de code se rapportant à un élément d'un emplacement (dans un calque) vers un autre emplacement (un autre calque) dans l'arborescence SVG du document.
Ma ligne de code, qui est un élément fils du calque 1 doit remonter l'arborescence d'un ou plusieurs niveaux, atteindre le calque 2 et là, aller s'y placer comme fils de ce calque.
Et c'est là que je suis bloqué.
Comment puis-je faire, depuis Python, pour "déplacer" une ligne de code XML d'un emplacement vers un autre dans l'arborescence SVG du fichier XML de mon dessin ?
Dans Inkscape, il est possible d'avoir accès directement aux éléments qui constituent le fichier de dessin ainsi qu'à leurs attributs.
Ca, je l'ai déjà assimilé mais je n'arrive pas à déplacer un élément dans l'arborescence des éléments du fichier.
Un petit exemple :
Mon dessin contient 3 calques qui contiennent chacun des éléments.
Mon dessin
***|------ Calque 1 ----- Elément 1
***|*************|-- Elément 2
***|*************|-- Elément 3
***|------ Calque 2 ----- Elément 01
***|*************|-- Elément 02
***|------ Calque 3 ----- Elément 001
*****************|-- Elément 002
Mon dessin
***|------ Calque 1 ----- Elément 1
***|************|-- Elément 2
***|************|-- Elément 02
***|************|-- Elément 3
***|------ Calque 2 ----- Elément 01
***|------ Calque 3 ----- Elément 001
****************|-- Elément 002
J'espère que vous comprendrez mieux avec un petit dessin.
Mon "Elément 02" (en rouge) qui se trouve dans le "Calque 2", je voudrais qu'il se retrouve dans le "Calque 1"
Et cela doit se faire en déplaçant la ligne de code correspondant à cet "Elément 02", dans le fichier SVG écrit en XML, dans l'arborescence des éléments du dessin.
C'est ça que je n'arrive pas encore à faire.
Merci d'avance.
---------------
Cogito Ergo Sum.