Aller au contenu principal

Dia

Soumis par lulu le sam 25/03/2023 - 11:09

Présentation

Dia est un logiciel de dessin permettant de faire des plans et des schémas à la manière de Microsoft Visio. Il permet en standard de faire des schémas UML, des schémas électroniques, des chronogrammes, schémas SADT / IDEF0, etc. Il possède aussi des modèles (templates) pour le schéma du génie civil et bien d'autres.

Dia permet de sauvegarder les schémas créés dans son propre format (.dia) mais également dans de nombreux autres comme en TEX (script pour reproduire le schéma), en DXF, en PNG, en EPS, et bien d'autres encore.

Image adaptative

Installation

Pour installer Dia, utilisez simplement votre gestionnaire de paquets :

$ apt install dia

 Utilisation

Pour créer un graphique, on sélectionne des objets dans la colonne de gauche et on les amène dans la zone principale du diagramme. Dia distingue deux familles d'objets (voir copie d'écran ci-dessus) :

  • Les objets de base. Ces objets (nommés également "formes", ou "shapes") sont ceux le plus couramment utilisés (boîte, polygone, texte, ligne...). Ils disposent pour chacun d'entre eux d'options de configuration (par exemple, changer la taille, la police ou la couleur d'un texte).

  • Les objets spéciaux.  Ces objets répondent à des besoins de diagrammes spécifiques (par exemples diagrammes UML, SDL, GRAFCET, Graphes de flux...), ils sont donc regroupés dans des catégories (nommées également "feuilles"ou "sheets") correspondant à ces différents usages. Certains de ces objets peuvent être trouvés dans le répertoire partagé "/usr/share/dia/shapes/", et il est alors possible de les copier et les modifier pour créer des objets personnalisés. C'est notamment le cas pour les objets de la catégorie SDL ("Specification and Description Language") :

usr/  
│  
└─── share/  
    │  
    └─── dia/  
         │  
         ├─── samples/  
         │  
         ├─── Shape_Design/  
         │  
         ├─── shapes/    ("objets", "formes")  
         │    ├─── AUTOSAR  
         │    ├─── BPMN  
         │    ├─── ...  
         │    ├─── CH-1  ("CH-1 notation")  
         │    ├─── ...  
         │    ├─── Flowchart ("Graphes de flux")  
         │    ├─── ...  
         │    ├─── Misc  ("Divers")  
         │    ├─── ...  
         │    └─── SDL  
         │         ├─── block.shape  
         │         ├─── block.png  
         │         ├─── decision.shape  
         │         ├─── decision.png  
         │         ├─── function.shape  
         │         ├─── function.png  
         │         ├─── ...  
         │         ├─── task.shape  
         │         └─── task.png  
         │  
         ├─── sheets/    ("catégories", "feuilles")  
         │    ├─── ER  
         │    ├─── GRAFCET  
         │    ├─── Istar  
         │    ├─── Jackson  
         │    ├─── KAOS  
         │    └─── UML  
         │  
         ├─── ui/  
         │  
         └─── xslt/

Certains objets spéciaux ne sont toutefois pas trouvés dans le répertoire partagé "/usr/share/dia/shapes/", c'est le cas par exemple des objets de la catégorie "UML", de la catégorie "Database" ("Nom de la donnée"), ou de certains objets de la catégorie "Graphes de flux" (par exemple l'objet "Flowchart - Box"). Pour ce dernier, on pourra trouver son code à l'intérieur de la librairie partagée /usr/lib/x86_64-linux-gnu/dia/libflowchart_objects.so

S'il n'est évidemment pas possible de modifier cette librairie partagée pour personnaliser l'objet, il reste néanmoins possible de lister les différentes librairies partagées  via le menu "Fichier > Plugins..." :

Image adaptative

Création de catégories personnalisées et insertion d'objets

Pour créer ses propres objets ou catégories, aller dans le menu "Fichier > Sheets and Objects...", puis cliquer sur bouton "Nouveau" :

Image adaptative
  • Nous allons tout d'abord créer une catégorie ("feuille") nommée "Algorigramme" dans laquelle nous pourrons ensuite regrouper tous les objets nécessaires à la réalisation de ce type de schéma. Sélectionner le bouton radio "Nom de la feuille" et indiquer un nom (cela sera le nom du fichier *.sheet créé) ainsi qu'une description (qui apparaîtra dans Dia) :

Image adaptative
  • À ce stade, la nouvelle catégorie apparaît dans Dia, mais elle ne comporte encore aucun objet :

Image adaptative
  • Dans le répertoire de l'utilisateur, on trouvera un dossier .dia qui contient la définition de la nouvelle catégorie :

home/    
│    
└─── myUser/    
    │    
    └─── .dia/    
         │    
         ├─── objects/    
         │    
         ├─── shapes/    ("objets", "formes")    
         │    
         └─── sheets/    ("catégories", "feuilles")    
              └─── algorigramme.sheet

  •  On peut éditer ce fichier algorigramme.sheet, afin de voir sa structure (c'est un fichier XML), et constater qu'aucun objet n'y est encore défini :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>   
<sheet xmlns="http://www.lysator.liu.se/~alla/dia/dia-sheet-ns">   
<!--Dia-Version: 0.97+git-->   
<!--Fichier : /home/myUser/.dia/sheets/algorigramme.sheet-->   
<!--Date : Sat Mar 25 17:58:51 2023-->   
<!--Pour : myUser--> 

<name>algorigramme</name>   
<description>Algorigramme</description>   
<contents>   
<!--ajoutez des formes ici-->   
</contents></sheet>

  •  Nous allons maintenant revenir dans le menu "Fichier > Sheets and Objects..." afin d'ajouter des objets dans notre catégorie. Dans un premier temps, nous allons simplement récupérer des objets existants dans d'autres catégories. Plusieurs objets utiles pour notre nouvelle catégorie se trouvent dans la catégorie SDL. Dans la partie droite de l'écran "Feuilles et Objets", nous sélectionnons donc tout d'abord la catégorie SDL, puis nous sélectionnons l'objet à importer dans notre catégorie (ci-dessous l'objet nommé "Décision Forme"), et enfin nous cliquons sur le bouton "Copier" :

Image adaptative
  • De la même manière, nous ajoutons ensuite les objets "Action en cours d'exécution" et "Appel de fonction", puis nous sélectionnons la catégorie "CH-1 notation" et ajoutons l'objet "Department".

  • À ce stade, nous cliquons sur le bouton "Nouveau" et sélectionnons le bouton radio "Rupture de ligne" : nous souhaitons en effet que les objets suivants, concernant les "exécutions de fonctions", se trouvent sur une nouvelle ligne.

  • Nous revenons maintenant sans la catégorie "SDL" et ajoutons les objets relatifs aux  "exécutions de fonctions" : "En-tête de fonction" et "Retour de procédure". L'écran "Feuilles et Objets" se présente alors de la manière suivante :

Image adaptative
  • Nous pouvons constater que le contenu du fichier "algorigramme.sheet" a été mis à jour, il contient maintenant les noms des objets que nous avons importés :

<name>algorigramme</name>  
<description>Algorigramme</description>  
<contents>  
<!--ajoutez des formes ici-->  

<object name="SDL - Decision">  
<description>Décision</description></object><object name="SDL - Task">  
<description>Action en cours d'exécution</description></object><object name="SDL - Function">  
<description>Appel de fonction</description></object><object name="CH-1 - Department">  
<description>Department</description></object><object name="SDL - Function Header">  
<description>En-tête de fonction</description></object><object name="SDL - Return">  
<description>Retour de procédure</description></object> 

</contents></sheet>

Création de nouveaux objets

Il peut être utile de créer ses propres objets, si l'on ne trouve dans aucune catégorie existante d'objet correspondant à ses besoins, ou bien si l'on souhaite juste modifier de manière mineure un objet existant pour l'adapter à notre besoin.

Pour notre catégorie "Algorigramme", nous allons juste reprendre les six objets que nous avons importés, afin de modifier leur dénomination et l'icône qui les représente.

Voici le tableau qui liste les six objets et les modifications à apporter :

Tableau
Catégorie d'origine Nom système de l'objet Nom français de l'objet Chemin d'accès du fichier Nouveau nom système Nouveau nom français
SDL SDL - Decision Décision /usr/share/dia/shapes/SDL/decision.shape Algo - Choice Choix
SDL SDL - Task Action en cours d'exécution /usr/share/dia/shapes/SDL/task.shape Algo - Action Action
SDL SDL - Function Appel de fonction /usr/share/dia/shapes/SDL/function.shape Algo - Function Fonction
CH-1 CH-1 - Department Department /usr/share/dia/shapes/CH-1/department.shape Algo - StartEnd Début/Fin
SDL SDL - Function Header En-tête de fonction /usr/share/dia/shapes/SDL/header.shape Algo - StartFunction Début de fonction
SDL SDL - Return Retour de procédure /usr/share/dia/shapes/SDL/return.shape Algo - EndFunction Fin de fonction

Aux chemins indiqués ci-dessus, nous allons nous rendre et copier les fichiers *.shape et *.png correspondants :

decision.shape   
department.shape   
function.shape   
header.shape   
return.shape   
task.shape  

decision.png   
department.png   
function.png   
header.png   
return.png   
task.png

Nous prenons ensuite le premier objet ("decision.shape") et renommons les deux fichiers correspondants en "choice.shape" et "choice.png". Puis, nous éditons le fichier renommé "choice.shape" et mettons à jour les balises <name>, <description> et <icon> :

<?xml version="1.0"?>  
<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns" xmlns:svg="http://www.w3.org/2000/svg">  
 <name>Algo - Choice</name>  
 <description>Choix</description>  
 <icon>choice.png</icon>  
 <connections>  
   <point x="1.25" y="0"/>  
   <point x="1.25" y="2.5"/>  
   <point x="2.5" y="1.25"/>  
   <point x="0" y="1.25"/>  
   <point x="1.25" y="1.25" main="yes"/>  
 </connections>  
 <textbox x1="0.65" y1="0.65" x2="1.90" y2="1.90"/>  
 <svg:svg width="2.5" height="2.5">  
   <svg:polygon points="1.25,0 2.5,1.25 1.25,2.5 0,1.25" style="fill: default"/>  
 </svg:svg>  
</shape>

 Enfin, nous modifions le fichier "choice.png" en personnalisant l'image.

Nous répétons ces étapes pour les cinq autres objets.

À l'issue de ces opérations, nous retournons dans le menu "Fichier > Sheets and Objects...", cliquons sur le bouton "Nouveau", sélectionnons le bouton radio "Forme SVG", et allons chercher l'un de nos six nouveaux fichiers *.shape :

Image adaptative

Nous répétons les étapes précédentes pour créer les cinq autres objets. À l'issue de ces opérations, la catégorie "Algorigramme" se présente comme suit :

Image adaptative

Utilisation d'objets contenant du texte

Lorsque l'on choisit un objet contenant du texte pour l'insérer dans notre diagramme, le curseur se positionne automatiquement à l'intérieur de l'objet, et il est alors possible de saisir son texte :

Image adaptative

Une fois le texte saisi, on peut sortir de l'objet en cliquant à l'extérieur de celui-ci, dans une zone vierge du diagramme.

Toutefois, si l'on souhaite modifier le texte saisi, un double-clic sur celui-ci ne le permet pas car cela ouvre la fenêtre des propriétés de l'objet :

Image adaptative

La solution pour modifier un texte consiste donc à sélectionner l'objet souhaité, puis cliquer sur l'icône "Édite le texte", dans la liste des icônes des objets de base :

Image adaptative

Utilisation de l'objet Zigzag

L'objet de base Zigzag permet de relier entre eux les différents éléments du diagramme ; il peut s'attacher aux points de connexion des différents objets, ce qui lui permet de suivre ces objets lorsqu'on les déplace dans le diagramme :

Image adaptative

Une fois le lien entre deux objets défini au moyen de l'outil Zigzag, un double-clic sur celui-ci permet d'afficher ses propriétés. On peut notamment définir la largeur, le style et la couleur des lignes, arrondir les angles des segments, ajouter des flèches de début et de fin dans différents styles.

Si l'option "Autoroute" est positionnée à "Oui", le lien entre deux objets prendra toujours le chemin le plus court.

Image adaptative

Il peut être utile d'ajouter un segment sur un Zigzag, par exemple pour contourner un nouvel objet. Cela se réalise en faisant un clic droit sur le Zigzag, puis en sélectionnant "Ajouter un segment". De la même manière, il est possible de "Supprimer le segment" créé :

Image adaptative

Le Zigzag ne dispose malheureusement pas d'option "Texte" intégré. Pour insérer un texte au début ou à la fin d'un Zigzag, il est donc nécessaire de cliquer sur l'icône "Texte" dans la palette des objets de base, et d'insérer le texte manuellement :

Image adaptative