Simplifier les fichiers de configuration ?

Nous l’avons vu dans la page précédente, un fichier de compilation peut rapidement avoir un nombre de lignes important. Il devient alors un peu fastidieux de chercher ce que nous voulons y modifier. Pour remédier à ce problème, plusieurs solutions sont possibles.

Diviser les thconfig en fonction de leur caractéristiques

Si notre thconfig est gros parce qu’il permet de gérer la production d’un plan, production d’un atlas, d’une coupe développée et qu’il définit aussi de nouveaux symboles, alors, une première chose qui peut être faite, c’est de faire un fichier thconfig spécifique pour le plan, un autre pour la coupe développée, et enfin un dernier pour l’atlas. Dans chacun, nous ne gardons que les blocs layout nécessaire.

Sur les gros projets, ça peut être une première étape qui facile le travail.

Créer un(des) fichier(s) de configuration global(aux) au projet

Ce point est en fait fondamental si nous travaillons sur de gros projets où nous avons plusieurs thconfig qui ont des commandes identiques dans les blocs layout.

Ce que nous pouvons faire, c’est créer un fichier de configuration maître à la racine du projet (c’est à dire dans le dossier le plus haut). Dans ce fichier là, nous allons définir des layouts globaux que nous appellerons dans les layouts des thconfigs.

Nous pourrions donner à ce fichier l’extension .thconfig, mais pour le différentier des fichiers de compilation, nous pouvons l’appeler par exemple config.thc (en fait, le nom des extensions, ce n’est pas si important que ça, du moment que nous savons ce qu’il y a dedans…).

Prenons un exemple. Nous avons un dossier qui correspond à un système karstique avec plusieurs grottes non connectées. Appelons ce dossier « Systeme ». Les données topographiques, les fichiers de compilation et les dessins de chaque grotte sont dans un dossier spécifique pour chaque grotte, et à l’intérieur du dossier « Systeme ». Dans ce dossier système, nous allons avoir par exemple un dossier « grotte1″ qui contient grotte1.th, grotte1.th2 et grotte1.thconfig. Chaque grotte a ainsi son dossier.

Pour générer les plans, tous les layouts  plan » des thconfig de chaque grotte ont par exemple ces instructions identiques, par exemple pour le fichier grotte1.thconfig :

source grotte1-global.th # contient les données topo et le dessin

layout planG
  language fr
  cs utm32N
  doc-author "Vulcain"
  scale 1/1000
  base-scale 100 m
  ...
endlayout

export map -proj plan -layout planG -o Grotte1.pdf

Nous pouvons alors copier les instructions qui sont identiques dans un nouveau fichier config.thc qui sera dans le dossier « Système » (donc au dessus de tout le reste). Ce fichier config.thc aura donc la structure :

layout planglobal
   language fr
   cs utm32N
   doc-author "Vulcain"
   scale 1/1000 
   base-scale 100 m
endlayout

Dans chacun des thconfig des grottes, nous effaçons (ou commentons dans un premier temps si vous voulez sécuriser le transfert en cas où). Le fichier grotte1.thconfig deviendra (il est commenté pour expliquer comment nous faisons) :

# Appel des données
source grotte1-global.th # contient les données topo et le dessin

# importation du fichier de configuration
input ../config.thc 
# ../ signifie que le fichier config.thc est dnas le dossier juste au dessus. S'il fallait remonter de 2 dossiers, nous aurions écrit ../../

layout planG
   # importer les choix globaux. Ils sont dans le layout planglobal du fichier config.thc importé au dessus
   copy planglobal
   #language fr           # Commenté !!!
   #cs utm32N             # Commenté !!!
   #doc-author "Vulcain"  # commenté
   #scale 1/1000          # commenté
   #base-scale 100 m      # commenté
   ...
endlayout

export map -proj plan -layout planG -o Grotte1.pdf

Il suffit de faire ça une fois pour chaque fichier thconfig pour chaque grotte. Comme ça, pour tous les changements ou ajouts globaux qui vont s’appliquer à tout le monde, il suffit de modifier uniquement le config.thc.

Créer un config.thc peut vraiment être complexe. Nous avons mis à disposition (sous licence CCby-nc-sa) un tel fichier sur le template exemple.