Création de forme (shape)

La création de forme dans Dia est compliqué, longue et ennuyeuse. Beaucoup de fonctionnalités sont absentes pour facilité sa création. On doit presque toujours les modifier manuellement pour avoir un résultat à la hauteur. De plus, il n'est pas possible de les rééditer.

La documentation qui vient avec Dia n'est pas complète et introduit en erreur. On doit utiliser la documentation du dépôt "Git" pour avoir les dernières fonctionnalités même si elle fonctionne avec les derniers Dia. Il ne faut pas utiliser le lien suivant: http://projects.gnome.org/dia/custom-shapes mais bien celui-ci http://git.gnome.org/browse/dia/tree/doc/custom-shapes . Les balises <default-width> et <default-height> sont décrites dans le dernier. Il n'y a pas de renseignements sur les versions qui doivent être utilisées avec ces balises.

Par défaut, les proportions d'un objet sont étrangement fixé et n'utilise pas les coordonnées inscrites dans la forme. Par exemple, si nous créons un polygone avec les points suivants: {(0,1) (4,5) (4,1) (0,5) et un autre polygone avec les mêmes points. Et si nous ajoutons une ligne qui va jusqu'au point (5, 0.5) au premier et (3,0.1) au second, les deux polygones n'auront pas la même taille même si les deux utilisent les mêmes nombres. Par exemple, avec une grille de 0,1 x 0,1, le premier polygone aura une largeur de 0,35 unités et une hauteur de 0,4 unités. Le second aura une largeur de 0,4 unités et une hauteur de 0,3. Ainsi, la taille totale des deux formes sera de 0,4 x 0,4 même si les deux non pas la même taille totale.

Forme 1

Les polygones en gras sont identiques dans les deux formes, mais pas à l'affichage par défaut dans Dia.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns" xmlns:svg="http://www.w3.org/2000/svg">
  <name>chemeng - manual valve - progysm</name>
  <icon>valmanual.png</icon>
  <connections>
    <point x="0" y="3"/>
    <point x="4" y="3"/>
    <point x="2" y="3" main="yes"/>
  </connections>
  <svg:svg>
    <svg:polygon style="fill:default; stroke:none" points="0,1 4,5 4,1 0,5 "/>
    <svg:polygon points="0,1 4,5 4,1 0,5 "/>
    
    <svg:line x1="2" y1="3" x2="2" y2="0.5" />
    <svg:line x1="2" y1="0.5" x2="5" y2="0.5" />
  </svg:svg>
</shape>

Forme 2

Les polygones en gras sont identiques dans les deux formes, mais pas à l'affichage par défaut dans Dia.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns" xmlns:svg="http://www.w3.org/2000/svg">
  <name>chemeng - regval manual - progysm</name>
  <icon>regval-manual.png</icon>
  <connections>
    <point x="0" y="3"/>
    <point x="4" y="3"/>
    <point x="2" y="0"/>
    <point x="2" y="3"/>
    <point x="2" y="2.25" main="yes"/>
  </connections>
  <svg:svg>
    <svg:path style="fill: default; stroke:none" d="M 1 1 C 1,-0.35 3,-0.35 3,1z"/>
    <svg:polygon style="fill:default; stroke:none" points="0,1 4,5 4,1 0,5 "/>
    
    <svg:polygon points="0,1 4,5 4,1 0,5 "/>
    <svg:line x1="2" y1="3" x2="2" y2="1"/>
    <svg:line x1="1" y1="1" x2="3" y2="1"/>
    <svg:path d="M 1 1 C 1,-0.35 3,-0.35 3,1"/>
  </svg:svg>
</shape>

Changement de couleur

Il est possible de créer un polygone (<svg:polygon>) qui change de couleur en utilisant l'attribut style="fill:default".

Ratio

<aspectratio type="fixed"/> dans la balise <shape> permet de garder le ratio largeur/hauteur de la forme. Cependant, il utilise toujours le redimensionnement effectué initialement lors de l'ajout sur le diagramme.

Étape pour la création d'une forme

1. sélectionner une shape de base, exemple: /usr/share/dia/shapes/ChemEng/regval.shape
2. copier la dans le dossier ~/.dia/shapes/,  (exemple ~/.dia/shapes/regval-manual.shape)
3. modifier la copie
3.1 modifier le nom <name>
3.2 modifier l'icône
3.3 enregistrer
4. ouvrir ~/.dia/sheets/Misc.sheet
4.1 dans la balise <contents></contents> ajouter un <object name=""><description></description></object>
4.2 note: le name="" devrait correspondre à la balise <name> du fichier shape.
5. ouvrir dia