Enregistrer une succession d'actions (sans python)

Inkscape est un logiciel de dessin vectoriel basé sur le format SVG.
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Enregistrer une succession d'actions (sans python)

Message par Seve »

Bonjour,
Je travaille dans un laboratoire d'archéologie.
Habitués à Illustrator, nous essayons de passer progressivement à Inkscape
Nous avons besoin, de réaliser des polygones adjacents facilement (pour la cartographie et les plans, notamment les dessins pierre à pierre). Pour cela, j'ai crée un script à partir des pathfinder dans illustrator. J'essaye de reproduire la même chose dans Inkscape mais je n'y arrive pas.
(dans la partie polygones adjacents de ce doc https://www.mom.fr/sites/mom.fr/files/i ... trator.pdf)
En gros l'idée c'est pouvoir partir de ça :
Image
appliquer un outil pour arriver là :
Image

C’est valable aussi pour le pierre à pierre et pour les stratigraphies

Image

Image
dans illustrator c'est une succession de pathfinder (attribut graphique, division, pochoir, degroupement) qu'on associe à une touche.
J'ai bien compris qu'inkscape ne pouvait réaliser les boléens que sur 2 chemins à la fois. Mais en appliquant une série d'actions, j'arrive à peu près au même résultat. Mais c'est super fastidieux et j'aurais bien voulu enregistrer ces actions pour les reproduire à chaque fois que je rajoute une forme. Est-ce que c'est possible de faire ça sans passer par un script python ?
en gros, l'idée c'est de dessiner un premier polygone fermé puis un segment fermé par le premier polygone. Puis
- dupliquer la première forme,
- rajouter manuellement le segment à la sélection,
- executer un boléen différence.
En réalité il faudrait, dans le cas où le segment serait fermé par plusieurs autres formes, après avoir sélectionné le segment,
- inverser la sélection
- dupliquer
- ajouter manuellement le segment à la sélection
- boléen union
- boléen différence.

Si vous voyez une solution pour scripter le tout (ou une autre solution pour réaliser ces *%$$¤ de polygones adjacents), je pense que la communauté archéologique vous en sera éternellement reconnaissante.

merci et prenez soin de vous.

Séverine
undertaker
Messages : 1495
Inscription : 05 janv. 2005, 19:58
Localisation : LIEGE - BELGIQUE

Re: Enregistrer une succession d'actions (sans python)

Message par undertaker »

Bonjour Seve,

Malheureusement ce n'est pas possible dans Inkscape. L'enregistrement d'une série d'actions dans un script n'est pas (encore) possible comme cela se fait dans d'autres logiciels de dessin vectoriel.

Il est toute fois possible de réaliser, manuellement, le type de carte que tu souhaites créer :
1. Tu disposes d'un croquis vectoriel dans Inkscape et tu l'as ouvert dans un calque.
2. Tu ajoutes un nouveau calque par-dessus et tu te places dans ce calque.
3. Avec l'outil "pot de peinture" activé (outil pot de peinture renversé ou Maj + F7), tu cliques à gauche dans une surface fermée.
4. Tu sélectionne la surface nouvellement créée avec l'outil de sélection et tu règle le fond et le contour à ta convenance. Ce réglage sera conservé pour les actions suivantes.
Le remplissage ne couvre pas entièrement la surface car la surface couverte pas un éventuel contour est réservée. En définissant un contour puis en ajustant sa largeur de trait, tu peux couvrir entièrement la surface fermée.
5. Placer un motif dans la surface, il faut :
a. Choisir un motif existant ...
b. créer un motif personnel :
- dans un nouveau calque, dessiner le motif avec les outils de dessins dans Inkscape
- sélectionner le dessin du motif puis transformer le dessin réalisé en motif qui sera intégré aux surfaces via le menu "Objet - Motif - Objet en motif" ou Alt + I
- Notre ami Imppao réalise de très nombreux tutos Inkscape dont celui-ciconcernant les Motifs.
- Il te sera aussi possible de créer un motif qui sera placé sur le contour si nécessaire.

Malheureusement, il faudra répéter 3, 4, 5 autant de fois qu'il y a de surfaces à créer. Mais tu disposera ainsi d'un pavage d'éléments de surfaces séparés que tu peux ensuite manipuler aisément.

Un autre tuto de notre ami Imppao concernant les motifs

A+
COGITO ERGO SUM.
Linux DEBIAN 10, Inkscape 0.92, Scribus 1.4.8 et aussi Gimp, Blender, ...
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Bonjour Undertaker et merci beaucoup pour tes conseils.
C'est effectivement une technique qui fonctionne pas mal du tout.
Cependant, j'aurais vraiment souhaité que les limites entre mes différentes surfaces soient parfaitement superposées pour différentes raisons, ce qui me paraît difficile avec cette technique puisqu'il y a forcement la largeur du contour entre chaque objet. En fait j'ai besoin parfois réunir des formes, de récupérer des contours uniques entre des formes pour leur appliquer un attribut de contour particulier (pointillé par exemple), de récupérer ces polygones dans des logiciels SIG dans lesquels la géométrie est très importante (notamment qui touche quoi etc...), tout ça de façon la plus automatique possible...
Dans tous les cas, nous allons devoir nous adapter ! Et cela me paraît être la technique la plus appropriée.
Peut être bien qu'il va falloir que je me mette à Python un jour...
Merci beaucoup !
Prends soin de toi,
Séverine
undertaker
Messages : 1495
Inscription : 05 janv. 2005, 19:58
Localisation : LIEGE - BELGIQUE

Re: Enregistrer une succession d'actions (sans python)

Message par undertaker »

Seve a écrit :Bonjour Undertaker et merci beaucoup pour tes conseils.
... En fait j'ai besoin parfois réunir des formes, de récupérer des contours uniques entre des formes pour leur appliquer un attribut de contour particulier (pointillé par exemple), de récupérer ces polygones dans des logiciels SIG dans lesquels la géométrie est très importante (notamment qui touche quoi etc...), tout ça de façon la plus automatique possible...
...
Là, on quitte la spécificité de Inkscape pour rejoindre celle du dessin industriel. Inkscape n'a pas été prévu pour faire cela, il est plus orienté vers le dessin "artistique".

A+
COGITO ERGO SUM.
Linux DEBIAN 10, Inkscape 0.92, Scribus 1.4.8 et aussi Gimp, Blender, ...
Eskejesais
Messages : 321
Inscription : 13 mars 2011, 14:02

Re: Enregistrer une succession d'actions (sans python)

Message par Eskejesais »

Bonjour
Par jeu, j'ai testé ( à ma façon, est-ce "une autre solution" ? ) en utilisant les frontières de la zone à dessiner (à partir des "traits rouges" indispensables). Ce fut fastidieux (quelle surprise !), mais précis:
Une des frontières est prolongée très grossièrement pour englober la forme finale. Soustraction de chacune des autres frontières (éventuellement étalée)...
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Là, on quitte la spécificité de Inkscape pour rejoindre celle du dessin industriel. Inkscape n'a pas été prévu pour faire cela, il est plus orienté vers le dessin "artistique".
Je te rejoins tout à fait, le plus simple serait de dessiner directement dans le logiciel SIG mais mes collègues ont des habitudes qu'il est souvent difficile de bousculer et Illustrator donnait cette possibilité.
J'essaye de trouver des chaînes opératoires à peu près cohérentes et pas trop contraignantes pour que mes collègues chercheurs s'y collent sans trop de difficultés et que les données restent interopérables.

Merci pour tes conseils !
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Par jeu, j'ai testé ( à ma façon, est-ce "une autre solution" ? ) en utilisant les frontières de la zone à dessiner (à partir des "traits rouges" indispensables). Ce fut fastidieux (quelle surprise !), mais précis:
Une des frontières est prolongée très grossièrement pour englober la forme finale. Soustraction de chacune des autres frontières (éventuellement étalée)...
Bonjour Eskejesais !
Je crois que je comprends : tu fais en sorte que le premier polygone soit entièrement contenu dans la seconde frontière si elle avait un fond ?

Je vais faire quelques essais et je reviens...

Merci beaucoup en tout cas de te pencher sur mon problème.

à très bientôt,
Eskejesais
Messages : 321
Inscription : 13 mars 2011, 14:02

Re: Enregistrer une succession d'actions (sans python)

Message par Eskejesais »

Une image ?
Image
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Eskejesais, je ne vois pas l'image...

En définitive, il semble que le moyen le plus simple (mais qui n'est pas toujours possible), c'est de dessiner l'intégralité de la "région"
Image

Puis de dessiner les contours des communes en commençant pas celles qui sont sur les bords en les faisant dépasser à l'extérieur puis de découper petit à petit la forme globale avec le modificateur division...

Image

Image

La technique d'Eskejesais, fonctionne aussi très bien dans le cas où on veut pouvoir rajouter des éléments.

Merci à tous !
Eskejesais
Messages : 321
Inscription : 13 mars 2011, 14:02

Re: Enregistrer une succession d'actions (sans python)

Message par Eskejesais »

Image disparue peut-être pendant que je faisais une "édition" du message (aperçu -> image réelle), désolé :-/
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Oui ! ça y est, elle est revenue ! Du coup, ça marche ! Je rajouterais que pour garder la première forme, il faut d'abord la dupliquer par dessus et lorsqu'elle est fermée par plusieurs, dupliquer toutes les formes qui la ferment, faire une réunion, sélectionner le segment et appliquer la soustraction.

et voilà !

merci, ça fait 3 manières de faire.

éventuellement, si je fais un tuto complet, je viendrai le poster pour en faire bénéficier les autres...
Eskejesais
Messages : 321
Inscription : 13 mars 2011, 14:02

Re: Enregistrer une succession d'actions (sans python)

Message par Eskejesais »

Tu sembles dessiner directement les polygones (pourquoi pas).
Les exemples montrés dans le tuto Illustrator semblent indiquer une première étape, le traçage (répétitif, mais assez simple) de toutes les frontières -> tous les traits rouges. Non ?

Ensuite vient le travail (long) de dessin de chaque polygone.
Sélection des frontières concernées, duplication, (transfert dans un autre calque pour limiter le bazar ?), puis combinaisons... c'est là qu'un script doit simplifier la vie :roll:

Dans mon exemple, je ne parle pas de la première partie, j'utilise les "traits rouges" déjà tracés précédemment.

D'autres idées ?
(J'ai d'abord essayé de couper le "surplus" des frontières avec "Découper le chemin"; En dessinant d'abord une forme englobante passant par "Intersection de chemins" (magnétisme). Mais il y avait de légers décalages, les nouvelles extrémités ne se superposaient pas exactement - en zoomant fortement ! Bougés de ma part ? Après plusieurs essais, j'ai abandonné )
imppao
Messages : 478
Inscription : 01 oct. 2008, 16:54
Contact :

Re: Enregistrer une succession d'actions (sans python)

Message par imppao »

Bonjour Seve
voici un tuto (un peu vieux) Refaire une carte :
https://www.dailymotion.com/video/x9lr6 ... ion=273844
A
Imppao
Tutos vidéos : inkscape, gimp, blender
http://imppao.wordpress.com
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Merci Imppao,
Mais du coup, est-ce que c'est vraiment toujours nécessaire de fermer la forme qui découpe ? J'ai l'impression que ça marche aussi bien avec juste un chemin... C'est peut être une amélioration récente...
Seve
Messages : 10
Inscription : 23 mars 2020, 13:09

Re: Enregistrer une succession d'actions (sans python)

Message par Seve »

Eskejesais
Ensuite vient le travail (long) de dessin de chaque polygone.
Sélection des frontières concernées, duplication, (transfert dans un autre calque pour limiter le bazar ?), puis combinaisons... c'est là qu'un script doit simplifier la vie
Alors c'est vrai que cette partie dans illustraor est hyper simple : tu sélectionnes tout, tu appliques une division (en prenant garde à ce que tes objets n'aient pas de fonds) puis tu leur donnes un fond et tu appliques un boléen pochoir, un dégroupage et hop tout est divisé. Pour peu que tu en fasses un script que tu associes à une touche, c'est magique. Du coup, j'ai l'habitude de d'abord dessiner toutes mes limites puis d'appliquer le script.
Je peux dessiner mes limites petit à petit sans problèmes. Du coup, je peux adapter directement le dessin des limtes pour qu'il englobe bien la totalité de la forme. Le problème c'est vraiment le fait que le boléen ne peuvent être appliqués qu'à 2 objets en même temps et qu'il soit impossible (pour moi) de scripter l'opération...

:idea: et sinon, vous savez si on peut enregistrer une succession de raccourci clavier dans un seul ?
Répondre