Outils pour utilisateurs

Outils du site


issue179:inkscape

They did it again! Literally the day after the deadline for last month’s article, the Inkscape developers released a new version. It’s only a maintenance and bugfix release (version 1.1.2) with no new features, so I won’t be covering it in any more detail, but if you’ve already upgraded to the 1.1 series, it’s probably worth installing this latest version for improved stability. Alongside this release was an alpha version of Inkscape 1.2. If you have the time and inclination, I do recommend giving this release a try and reporting any issues you find, particularly in the new features. The more that users report problems with the alpha and beta releases, the more stable the final release is likely to be. Information about both these releases can be found on the official Inkscape news page: https://inkscape.org/news/ This month, I’ll be looking at just one Live Path Effect (LPE) that was added in version 1.0: Measure Segments. This LPE operates so differently to most that I won’t have enough space to cover everything in one article. This time, I’ll look at the practical functionality of the effect, and next month, I’ll dig into some of the more technical details of how it works.

Ils l'ont encore fait ! Carrément au lendemain de la date limite de l'article du mois dernier, les développeurs d'Inkscape ont publié une nouvelle version. Il s'agit uniquement d'une version de maintenance et de correction de bogues (la version 1.1.2) sans nouvelles fonctionnalités ; je ne la couvrirai donc pas plus en détail, mais si vous avez déjà effectué une mise à niveau vers la série 1.1, il est probablement utile d'installer cette dernière version pour une meilleure stabilité. Cette version s'accompagne d'une version alpha d'Inkscape 1.2. Si vous avez le temps et l'envie, je vous recommande d'essayer cette version et de signaler tout problème que vous trouveriez, en particulier dans les nouvelles fonctionnalités. Plus les utilisateurs signalent de problèmes avec les versions alpha et bêta, plus la version finale sera susceptible d'être stable. Vous trouverez des informations sur ces deux versions sur la page officielle des actus d'Inkscape : https://inkscape.org/news/.

Ce mois-ci, je me pencherai sur un seul Live Path Effect (LPE - Effet de chemin interactif) qui a été ajouté dans la version 1.0 : Mesure des segments. Ce LPE fonctionne si différemment de la plupart des autres que je n'aurai pas assez de place pour tout couvrir en un seul article. Cette fois-ci, j'examine la fonctionnalité pratique de l'effet et, le mois prochain, j'entrerai dans les détails techniques de son fonctionnement.

Measure segments At first glance, the Measure Segments LPE seems fairly straightforward – albeit with a lot of parameters to consider. It measures the straight line distance between the nodes of your path, and annotates your image with those dimensions. This is definitely a case where a picture is worth a thousand words: in this image my original path is the red line, and the rest of the content has been generated by the LPE. The most interesting thing about this image is that I was able to color my original path in red without the need to use the Clone Original LPE, or any equivalent technique or workaround. The styling of the original path is distinct from the styling of the dimensions. Long-term readers of this column will know that this flies in the face of everything we know about LPEs. Historically, the output from an LPE has been a single path – albeit often a very complex one – meaning that all the different parts of an effect would have to adopt the same styling. Clearly there’s something very different going on in this case, but I’ll get back to that next month. For now, let’s just take the effect at face value, and have a look at some of the parameters we can tweak in order to adjust its output. For this LPE, there are so many that they have been split across three tabs – plus a fourth “Help” tab that doesn’t really provide any more information than can be gleaned from the tooltips.

Mesure des segments

À première vue, le LPE Mesure des segments semble assez simple, bien qu'il faille tenir compte de nombreux paramètres. Il mesure la distance en ligne droite entre les nœuds de votre chemin et annote votre image avec ces dimensions. C'est un cas où une image vaut mille mots : dans cette image, mon chemin original est la ligne rouge, et le reste du contenu a été généré par le LPE.

L'aspect le plus intéressant de cette image est que j'ai pu colorer mon chemin d'origine en rouge sans avoir besoin d'utiliser le LPE Clone Original ou toute autre technique équivalente ou solution de contournement. Le style du chemin original est distinct du style des dimensions. Les lecteurs de longue date de cette rubrique savent que cela va à l'encontre de tout ce que nous savons sur les LPE. Historiquement, la sortie d'un LPE est un chemin unique - bien que souvent très complexe - ce qui signifie que toutes les différentes parties d'un effet devraient adopter le même style. Il est clair qu'il se passe quelque chose de très différent dans ce cas, mais j'y reviendrai le mois prochain.

Pour l'instant, prenons l'effet au pied de la lettre et examinons certains des paramètres que nous pouvons modifier afin d'ajuster son résultat. Pour ce LPE, il y en a tellement qu'ils ont été répartis sur trois onglets - plus un quatrième onglet « Aide » qui ne fournit pas vraiment plus d'informations que celles qui peuvent être glanées dans les infobulles.

Starting with the General tab, the Unit pop-up is pretty self-explanatory. It’s restricted to the units that Inkscape uses throughout the software, so if you’re trying to create a scale drawing in miles or microns you might think you’re out of luck. In practice the format of the numeric labels is defined over on the Options tab, so you can get around this limitation by replacing the “{unit}” placeholder with a fixed string of your own. For example you could set the Label Format field to “{measure} miles” or “{measure}µm” to mark the dimensions in units that Inkscape doesn’t support. Back on the General tab, there is another field that should go hand-in-hand with the Unit pop-up, but which has been counter-intuitively put towards the bottom of the dialog: the Scale field. This acts as a multiplier for all the numeric values, so if your original drawing is half-size, you should set this to 2; conversely if your drawing is double-size, set it to 0.5, and so on. You can even enter a negative value here, though I’m not sure why you would want to. Most of the remaining fields on this tab simply adjust the specific appearance of the dimension lines and labels. You can use the Font pop-up to change the font and size; the Position field to adjust how far away the dimension line is from the path being measured; the Flip Side checkbox to select which side of the path the dimension is drawn; the Label Position field to change the position of the numeric value relative to the dimension line, allowing it to sit on top of or below the line (in which case you might also want to uncheck the “Hide line under label” option). To be honest, the best approach is just to play around with these fields in order to see what they do – using the tooltips if you need a hint – but in my experience the default values tend to give pretty good results.

En commençant par l'onglet Général, la liste déroulante Unité est assez explicite. Elle est limitée aux unités qu'Inkscape utilise dans tout le logiciel, donc si vous essayez de créer un dessin à l'échelle en miles ou en microns, vous pourriez penser que vous n'avez pas de chance. En pratique, le format des étiquettes numériques est défini dans l'onglet Options. Vous pouvez donc contourner cette limitation en remplaçant l'espace réservé « {unit} » par une chaîne fixe de votre choix. Par exemple, vous pouvez définir le champ Format de libellé avec « {mesure} miles » ou « {mesure} µm » pour marquer les dimensions dans des unités non prises en charge par Inkscape.

De retour dans l'onglet Général, il y a un autre champ qui devrait aller de pair avec le champ Unité, mais qui a été placé de manière contre-intuitive vers le bas de la boîte de dialogue : le champ Échelle. Il s'agit d'un multiplicateur pour toutes les valeurs numériques. Ainsi, si votre dessin original est en demi-format, vous devez le définir sur 2 ; inversement, si votre dessin est de taille double, définissez-le sur 0,5, et ainsi de suite. Vous pouvez même entrer une valeur négative ici, mais je ne vois pas pourquoi vous auriez à le faire.

La plupart des autres champs de cet onglet permettent simplement d'ajuster l'apparence spécifique des lignes de cote et des étiquettes. Vous pouvez utiliser le pop-up du champ Font pour modifier la police et la taille, le champ Position pour ajuster la distance entre la ligne de cote et le chemin mesuré, la case à cocher Changer de côté pour sélectionner de quel côté du chemin la dimension est dessinée ; le champ Position du libellé pour modifier la position de la valeur numérique par rapport à la ligne de dimension, en lui permettant de se situer au-dessus ou au-dessous de la ligne (dans ce cas, vous pouvez également décocher l'option « Cacher la ligne sous les libellés »). Pour être honnête, la meilleure approche est de jouer avec ces champs afin de voir ce qu'ils font, en utilisant les infobulles si vous avez besoin d'un indice, mais, d'après mon expérience, les valeurs par défaut ont tendance à donner d'assez bons résultats.

The one widget that I don’t understand is the Merge Overlaps field. No matter how I draw my paths, whether with long or short segments, or with tight or wide angles, I can’t get this field to have an effect. If anyone can provide some insight into what this field does, please let me know. I’m going to skip the Projection tab for now, and go straight to Options. This is a mish-mash of fields, some of which would seem to relate closely to those in the General tab, but which have been hidden away here instead. The Color and Opacity picker, for example, seems to me to be a sensible companion to the font picker. This widget sets a single color that is used not only for the dimension lines, but also the leader lines (“Help lines” as they are named in this extension), and the dimension text. In the same vein, the Precision and Label Format fields surely deserve to live alongside the Unit and Scale widgets. Note that the Precision field just sets the number of decimal places in the text labels. There’s no way to use significant figures rather than decimal places, and there’s no facility for engineering or scientific notation. Similarly misplaced is the “Multiply values < 1” checkbox, which is used to better display very small values by multiplying them by 100 and omitting the auto-inserted units from the text (but it won’t omit the units if you’ve used a fixed string in the Label Format field, as I described earlier). This should arguably also live with the Scale and Units fields. The Hide Arrows checkbox is just as deserving of a place on the General tab as most of the checkboxes at the bottom of that pane.

Le seul widget que je ne comprends pas est le champ Fusionner les chevauchements. Quelle que soit la façon dont je dessine mes chemins, que ce soit avec des segments longs ou courts, ou avec des angles serrés ou larges, je n'arrive pas à faire en sorte que ce champ ait un effet. Si quelqu'un peut m'éclairer sur la fonction de ce champ, faites-le moi savoir.

Je vais sauter l'onglet Projection pour l'instant et passer directement aux Options. Il s'agit d'un méli-mélo de champs, dont certains semblent étroitement liés à ceux de l'onglet Général, mais qui ont été cachés ici. Le sélecteur de couleur et d'opacité, par exemple, me semble être un compagnon judicieux du sélecteur de police. Ce widget définit une couleur unique qui est utilisée non seulement pour les lignes de cote, mais aussi pour les lignes de repère (« Help lines » comme elles sont appelées dans cette extension) et le texte de la cote.

Dans le même ordre d'idées, les champs Précision et Format de libellé méritent certainement de figurer aux côtés des widgets Unité et Échelle. Notez que le champ Précision définit simplement le nombre de décimales dans les étiquettes de texte. Il n'y a aucun moyen d'utiliser des chiffres significatifs plutôt que des décimales, et il n'y a aucune possibilité de notation technique ou scientifique.

La case à cocher « Multiplier inf. à 1 » est également mal placée. Elle permet de mieux afficher les très petites valeurs en les multipliant par 100 et en omettant les unités insérées automatiquement dans le texte (mais elle n'omettra pas les unités si vous avez utilisé une chaîne fixe dans le champ Format de libellé, comme je l'ai décrit précédemment). On peut dire que cela devrait également fonctionner près des champs Échelle et Unité. La case à cocher Cacher les flèches mérite tout autant de figurer dans l'onglet Général que la plupart des cases à cocher situées en bas de ce volet.

None of this arbitrary placement of widgets is a deal-breaker, but it’s useful to be aware that the Options tab provides these features. Perhaps a later release will tidy up this effect’s UI, and better group the controls into more logical sections. Also on the Options tab are what I consider to be the “sneaky” controls: three fields that radically increase the capabilities of this effect, albeit at the expense of a little extra effort on the part of the user. The most important of these is the Blacklist Segments field, which takes a comma-separated list of numbers, and uses those values to suppress the output of the LPE for specific path segments. Here’s how the earlier image looks when the string “1,2,4” is entered into this field and the tick button is clicked. You can see that there are no longer any dimension lines rendered for three of the path segments. The three segments are not, however, the first, second and fourth ones in this path. Rather they are the second, third and fourth: the values start at zero for the first path segment in a classic example of a programmer exposing the internal indexes that the software uses, rather than adjusting them to be more user-friendly to the layman.

Ce placement arbitraire des widgets n'est pas rédhibitoire, mais il est utile de savoir que l'onglet Options offre ces fonctionnalités. Peut-être qu'une version ultérieure mettra de l'ordre dans l'interface utilisateur de cet effet et regroupera les commandes en sections plus logiques.

Dans l'onglet Options se trouvent également ce que je considère comme des contrôles « sournois » : trois champs qui augmentent radicalement les capacités de cet effet, bien qu'au prix d'un petit effort supplémentaire de la part de l'utilisateur. Le plus important d'entre eux est le champ Segments en liste noire, qui prend une liste de chiffres séparés par des virgules et utilise ces valeurs pour supprimer la sortie du LPE pour des segments spécifiques du chemin. Voici à quoi ressemble l'image précédente lorsque la chaîne « 1,2,4 » est saisie dans ce champ et que le bouton de sélection est cliqué.

Vous pouvez voir qu'il n'y a plus de rendu des lignes de dimension pour trois des segments de chemin. Ces trois segments ne sont toutefois pas le premier, le deuxième et le quatrième de cette trajectoire. Il s'agit plutôt des deuxième, troisième et cinquième segments : les valeurs commencent à zéro pour le premier segment du chemin. C'est l'exemple classique du programmeur qui affiche les index internes utilisés par le logiciel, plutôt que de les ajuster pour les rendre plus conviviaux pour le profane.

As you might imagine, working out which segment index you need to use to target a specific part of the path can quickly get tricky with complex shapes, but this LPE does offer a feature to help. Enabling the “Show segment index” checkbox will prefix each dimension with the segment’s index, in square brackets. Be aware that it unfortunately doesn’t show the index for any segments that are already listed in the Blacklist field, so you may want to enable this option first, while that list is still empty. With no blacklisted segments, and this checkbox enabled, you can see that indexes 1, 2 and 4 do indeed correspond to the omitted dimensions on the previous image. One thing to be very conscious of is that the segment indexes are based on the direction in which the path is drawn. If you use the Path > Reverse menu entry, you’ll find that the indexes run in the opposite direction, probably requiring you to adjust the blacklist. Similarly, if you add or remove any nodes then the indexes of some of the segments will also change.

Comme vous pouvez l'imaginer, déterminer l'indice de segment à utiliser pour cibler une partie spécifique du chemin peut rapidement devenir délicat avec des formes complexes, mais ce LPE offre une fonction pour vous aider. En activant la case « Afficher le numéro du segment », chaque dimension sera précédée de l'index du segment, entre crochets. Sachez que, malheureusement, l'index ne s'affiche pas pour les segments déjà répertoriés dans le champ Liste noire. Vous pouvez donc activer cette option en premier lieu, tant que cette liste est encore vide. Sans aucun segment sur la liste noire, et avec cette case à cocher activée, vous pouvez voir que les index 1, 2 et 4 correspondent bien aux dimensions omises sur l'image précédente.

Une chose dont il faut être très conscient est que les index des segments sont basés sur la direction dans laquelle le chemin est dessiné. Si vous utilisez l'entrée de menu Chemin > Inverser, vous constaterez que les index vont dans la direction opposée, ce qui vous obligera probablement à ajuster la liste noire. De même, si vous ajoutez ou supprimez des nœuds, les index de certains segments seront également modifiés.

Due to the political sensitivity around certain terms used in computing, there’s a good possibility that the “Blacklist segments” field might be renamed in future. Often “blocklist” is used instead, but I think in this case calling it “Skip segments” or something similar would give a better idea of its functionality. I’m mentioning this because of the last of the sneaky controls: Invert Blacklist. Checking this turns the blacklist into a whitelist – or, more descriptively, turns the “skip segments” list into a “draw these segments” list. This may save you having to enter a long list of segment indexes when you only want the LPE to render a small number of segments from a complex path. With this applied, you can see that my list of “1,2,4” actually results in only those segments being drawn, rather than those segments being omitted. So why do I consider these three fields (Blacklist segments, Invert blacklist, Show segment index) to be “sneaky”? It’s because they allow you to apply this same LPE to a path multiple times, each using different parameters, using the blacklist fields to ensure that each copy of the effect targets a different subset of the path segments. Perhaps you need to color-code different measurements, alter the label format for one segment, or simply move the position of some dimensions so that they don’t clash with other parts of the image. Using these fields will let you achieve all that and more.

En raison de la sensibilité politique de certains termes utilisés en informatique, il est fort possible que le champ « Segments en liste noire » soit renommé à l'avenir. On utilise souvent « liste de blocage » à la place, mais je pense que dans ce cas, l'appeler « Sauter les segments » ou quelque chose de similaire donnerait une meilleure idée de sa fonctionnalité. Je mentionne cela à cause du dernier des contrôles sournois : Inverser la liste noire. En cochant cette case, la liste noire se transforme en liste blanche - ou, de manière plus descriptive, la liste « sauter les segments » se transforme en liste « dessiner ces segments ». Cela peut vous éviter d'avoir à saisir une longue liste d'index de segments lorsque vous souhaitez que le LPE ne rende qu'un petit nombre de segments d'un chemin complexe. Cela étant appliqué, vous pouvez voir que ma liste de « 1,2,4 » a pour résultat que seuls ces segments sont dessinés, plutôt qu'omis.

Alors, pourquoi je considère que ces trois champs (Segments en liste noire, Inverser la liste noire, Afficher le numéro du segment) sont « sournois » ? C'est parce qu'ils vous permettent d'appliquer plusieurs fois à un même chemin ce même LPE, chacun utilisant des paramètres différents, en utilisant les champs de la liste noire pour vous assurer que chaque copie de l'effet cible un sous-ensemble différent des segments du chemin. Vous devrez peut-être coder les mesures avec des couleurs différentes, modifier le format de l'étiquette pour un segment ou simplement déplacer la position de certaines dimensions afin qu'elles n'entrent pas en conflit avec d'autres parties de l'image. L'utilisation de ces champs vous permettra de réaliser tout cela et bien plus encore.

Here, for example, I’ve used two copies of the LPE. The first colors three of the dimensions in purple. The second uses the same blacklist, but with the Invert box checked, in order to target the remaining dimensions. These are then drawn in blue, with a thicker line width, arrows on the outside of the extension lines, and a tolerance value added by manually altering the Label Format field. Now let’s return to the Projection tab that we skipped earlier. I’ll admit that this one has me a little stumped. When the “Activate projection” checkbox at the top is enabled, every node in your path is projected in an invisible straight line along the specified “Angle of projection”, with the final dimension lines showing the distances between those projected lines. As you can see from this screenshot, however, the default behaviour may not be terribly useful, depending on the shape you’re trying to measure, and the angle of projection you use.

Ici, par exemple, j'ai utilisé deux copies du LPE. La première colorie trois des dimensions en violet. La seconde utilise la même liste noire, mais avec la case Inverser cochée, afin de cibler les dimensions restantes. Celles-ci sont alors dessinées en bleu, avec une largeur de ligne plus importante, des flèches à l'extérieur des lignes d'extension et une valeur de tolérance ajoutée en modifiant manuellement le champ Format de libellé.

Revenons maintenant à l'onglet Projection que nous avons sauté précédemment. J'avoue que j'ai un peu de mal avec celui-ci. Lorsque la case du haut « Activer la projection » est activée, chaque nœud de votre trajectoire est projeté en une ligne droite invisible le long de l'« Angle de la projection » spécifié, avec les lignes de dimension finales montrant les distances entre ces lignes projetées. Comme vous pouvez le voir sur cette capture d'écran, le comportement par défaut peut ne pas être très utile, selon la forme que vous essayez de mesurer et l'angle de projection que vous utilisez.

There is a section in this tab to which you can add other objects, by copying them to the clipboard and using the Link to Item button, as happens in other LPEs. According to the tooltip, the nodes of those objects should then be projected onto your path in order to produce datum points for additional measurements. In practice, I haven’t been able to get this feature to work at all, regardless of what I tried. If anyone has some insight into how to use this facility, please do get in touch. The Blacklist Segments field can be used with projection mode, but the numbers in there are no longer the indexes of the path segments. Instead this allows you to turn off individual projected measurements. Once again the “Show segment index” checkbox can be used to identify the correct numbers to use. Also once again, this allows you to combine multiple copies of this LPE, with different projection angles, or mixing both projected and non-projected dimensions to produce the result that best suits your needs. While the Projection tab might initially look useful, in cases where you only want to project dimensions along the horizontal or vertical directions you may well find that the Orientation pop-up on the General tab lets you achieve a better result – though you’re likely to need to use multiple instances of the LPE, each targeting specific segments, in order to get things exactly as you want them. Here’s another copy of our dimensioned path, this time using the Orientation pop-up to produce the green dimensions at the top left. In this case I had to add two more instances of the LPE, one for each orientation, with both targeting the same single segment.

Cet onglet comporte une section à laquelle vous pouvez ajouter d'autres objets, en les copiant dans le presse-papiers et en utilisant le bouton Lier à l'objet, comme cela se fait dans d'autres LPE. Selon l'infobulle, les nœuds de ces objets devraient ensuite être projetés sur votre chemin afin de produire des points de référence pour des mesures supplémentaires. En pratique, je n'ai pas réussi à faire marcher cette fonction, quoi que j'aie essayé. Si quelqu'un a une idée de la façon d'utiliser cette fonction, n'hésitez pas à me contacter.

Le champ Segments de liste noire peut être utilisé avec le mode projection, mais les nombres qui y figurent ne sont plus les index des segments de chemin. À la place, cela vous permet de désactiver les mesures projetées individuelles. Une fois encore, la case à cocher « Afficher le numéro du segment » peut être utilisée pour identifier les bons chiffres à utiliser. Une fois encore, cela vous permet de combiner plusieurs copies de ce LPE, avec différents angles de projection, ou en mélangeant les dimensions projetées et non projetées pour produire le résultat qui convient le mieux à vos besoins.

Si l'onglet Projection peut sembler utile au premier abord, dans les cas où vous ne souhaitez projeter des dimensions que dans les directions horizontale ou verticale, vous trouverez peut-être que la fenêtre contextuelle Orientation de l'onglet Général vous permet d'obtenir un meilleur résultat - même si vous devrez probablement utiliser plusieurs instances du LPE, chacun ciblant des segments spécifiques, afin d'obtenir exactement ce que vous voulez. Voici une autre copie de notre chemin coté, cette fois en utilisant la fenêtre pop-up Orientation pour produire les dimensions vertes en haut à gauche. Dans ce cas, j'ai dû ajouter deux instances supplémentaires du LPE, une pour chaque orientation, les deux visant le même segment unique.

This really is a very powerful LPE, with a lot of flexibility built into it. It’s a shame that there’s not also a corresponding LPE for measuring angles, but perhaps that will come in future. Although this may give the impression of adding more CAD features into Inkscape, I see it more as a means of annotating simple sketches, rather than producing production ready designs. I’ve always maintained that Inkscape is a primarily artistic program, and if you want real CAD capabilities then you’re better off learning to use FreeCAD or some other dedicated application. In this article, we’ve seen what this LPE is capable of – including different fonts and multiple colours that aren’t the same as the source path. The way it achieves this is radically different to the way most LPEs work, and I’ll be looking at the details of that – together with the problems it brings – next time.

Il s'agit vraiment d'un LPE très puissant, doté d'une grande flexibilité. C'est dommage qu'il n'y ait pas aussi un LPE correspondant pour mesurer les angles, mais peut-être que cela viendra dans le futur. Bien que cela puisse donner l'impression d'ajouter plus de fonctionnalités de CAO dans Inkscape, je le vois davantage comme un moyen d'annoter des croquis simples, plutôt que de produire des dessins prêts à la production. J'ai toujours maintenu qu'Inkscape est un programme principalement artistique et que, si vous voulez de vraies capacités de CAO, vous feriez mieux d'apprendre à utiliser FreeCAD ou une autre application dédiée.

Dans cet article, nous avons vu ce dont ce LPE est capable - y compris des polices différentes et des couleurs multiples qui ne sont pas les mêmes que celles du chemin source. La façon dont il réalise cela est radicalement différente de la façon dont la plupart des LPE fonctionnent, et je vais examiner les détails de cela - ainsi que les problèmes qu'il apporte - la prochaine fois.

issue179/inkscape.txt · Dernière modification : 2022/04/01 14:47 de andre_domenech