Comment utiliser des chemins relatifs dans un modèle ?
On utilise fréquemment des composants tableaux, par exemple la CombiTable1Ds de la librairie standard. Or, cela devient embêtant lorsqu’on partage une bibliothèque, car le receveur n’a pas le même chemin vers le même fichier.
Enregistrer dans plusieurs dossiers et fichiers
Commençons d’abord par une bonne pratique : ne pas tout enregistrer dans un seul fichier, mais dans plusieurs fichiers, en décochant l’option « Save contents of package in one file » dès la création d’un package.
![](https://dps-fr.com/wp-content/uploads/2021/10/etape-1-1.png)
Ainsi tous les fichiers sont séparés. Par exemple, la bibliothèque SDF 0.4.2 :
![](https://dps-fr.com/wp-content/uploads/2021/10/etape-2-1.png)
Ensuite, il est très utile de créer un dossier appelé Resources. Ce dossier est présent dans la très grande majorité des bibliothèques un brin développées. Le but de ce dossier étant de regrouper toutes les ressources nécessaires à la librairie : les scripts, images (icônes et documentation), documents divers et variés, et… les données pour les tableaux. Un exemple de fichier Resources (Modelica 4.0.0) :
![](https://dps-fr.com/wp-content/uploads/2021/10/etape-3-1.png)
Utilisation dans Dymola
Une fois ce dossier créé et dûment complété par les fichiers en question, vous pouvez y faire appel depuis le composant de votre modèle Dymola.
![](https://dps-fr.com/wp-content/uploads/2021/10/etape-4-1.png)
Ici, on a choisi de créer une bibliothèque LibraryName, où on a créé un dossier, nommé ‘Files’, dans le répertoire ‘Resources’, pour y placer le fichier de données qui s’appelle ‘data.txt’. Il apparaîtra alors une ligne comme celle-ci dans le champ :
ModelicaServices.ExternalReferences.loadResource(“modelica://LibraryName/Resources/Files/data.txt”)
Ou, alternativement :
Modelica.Utilities.Files.loadResource(“modelica://LibraryName/Resources/Files/data.txt”)
Et le tour est joué. Il suffit alors de partager le dossier global, plus de problème de chemins erronés !