fr:tbe:wiki3

Ce chapitre décrit comment aborder un projet de topographie de grotte, et discute des problèmes qui découlent du découpage des scraps entre eux pour former une topographie de grotte.



La topographie d’une grande grotte ou d’un système de grottes est un grand projet, et nécessite une organisation des données pour faciliter sa gestion. La topographie est généralement découpée en plusieurs fichiers, que ce soit pour les mesures topographiques ou les scraps (portions de dessin). Ce qui suit ne représente que de simples suggestions, vous pouvez trouver de meilleures solutions ! [N’hésitez pas à me communiquer vos idées, ainsi je pourrais améliorer la documentation].

centerlines

3.1.1 Mesures topo (Centrelines)

Chaque visée topographique d’une même séance topo est écrite dans un fichier topo (extension .th) et elles sont regroupées dans un bloc survey/endsurvey (début/fin de topo). Le nom de la topo est le même que celui du fichier. Par exemple, le fichier gm0.th contient la topo “survey gm0”. C’est pourquoi la station topo “23” sera nommée “23@gm0”.

Les séances topo (Centerlines) d’une même branche de réseau peuvent être regroupées dans un seul fichier (extension .th), avec le nom de la branche, et une commande “equate” qui permettra de connecter les visées entre séances topo. Le nom du fichier pourrait également être “index.th” s’il regroupe la liste des fichiers topo du répertoire.

En suivant cette voie, vous avez une structure hiérarchique de topographies, de la racine de l’arbre (qui représente toute la cavité), jusqu’au feuilles (qui représentent les galeries). Cette structure logique peut être reproduite sur le disque dur, c'est-à-dire dans la structure des fichiers .th et des répertoires. Par exemple, un répertoire correspond à une branche de la cavité.

Toutes les mesures des séances topo d’un projet doivent être connectée pour former un unique arbre de séances topo (centerlines), ou doivent au minimum avoir un point fixe, c'est-à-dire un point avec des coordonnées géographique.

scrap
map (.th command)

3.1.2 Scraps et cartes

La subdivision de la topographie en scraps (portions de cartes, une feuille en gros) et en cartes doit être faite avec soin, en essayant de prévenir les problèmes qui pourraient survenir quand vous les assemblerez pour former la topographie générale de la grotte. Cela requière un plan, c’est pourquoi une expérience de therion est une aide précieuse.

Le découpage de la topo en scraps ne correspond pas obligatoirement avec le découpage en séances topo. Les séances topo se terminent généralement sur une des intersections, des carrefours dans la grotte, et peuvent se superposer en plusieurs niveaux, ou s’enrouler en colimaçon (les galeries topographies). D’un autre coté, les scraps, doivent contenir des passages simples afin de pouvoir les joindre facilement. Les galeries ne doivent pas se superposer dans un même scrap. Mais deux, ou plus, scraps peuvent être utilisés pour dessiner des zones de surplomb ou de superposition. Un carrefour doit être représenté sur un seul scrap (les jonctions entre les scraps se faisant sur des portions de galerie simple.

Il est intéressant de mettre les fichiers scrap à un autre niveau de hiérarchie que les fichiers de données (visées topo), ainsi, chaque scrap pourra faire référence à n’importe quel fichier de topo. Un fichier regroupant tous les cartes (include des fichiers) est nécessaire pour collecter toutes les cartes (et/ou scraps). Il sera situé au plus haut niveau (le premier) de la hiérarchie des répertoires.

Les fichiers scrap sont repartis dans différents répertoires et chaque répertoire peut regrouper dans un fichier “index.th2” la liste des scraps (le fichier peut aussi être nommé avec le nom de la branche de la cavité). Ce fichier “inclue” les différents fichiers scraps, spécifie les raccords entre scraps (joins) et définit ainsi une carte (map).

Le nommage des scraps, cartes et autres éléments graphiques peut suivre une règle simple de format permettant d’indiquer simplement a quelle partie de la grotte le dessin se réfère. Par exemple, les scraps du fichier topo gm0.th2 pourraient avoir comme nom de fichier “gm0_s1”, “gm0_s2” etc, … Les sections de galeries pourraient s’appeler “gm0_c1” etc. Le nom des lignes pourrait être “gm0_l1”, les points “gm0_p1” et ainsi de suite.

En situation normale (si les scraps s’arrêtent toujours au milieu d’une galerie) la simple instruction “join” avec le nom des deux scraps permet de joindre les deux scraps. Vous pouvez ajouter un paramètre pour indiquer le nombre de connexions. Cette solution fonctionne dans la plus part des cas, et elle est plus simple que d’ajouter des noms (id) à tous les objets (et garder leur traces pour les jointer).

Par exemple le code ci-dessous joint le scrap “testF1s” et le scrap “testF2s” En deux points (l’option “-count” a été ajoutée avec la valeur 2). Le résultat est présenté dans la figure suivante (avec l’option de debug du format activée) Les deux topo sont positionnées en fixant la station topo nommée “1” sur chacun. Chaque visse est de 10 m et la commande “equate” n’a pas été utilisée.

  survey testF
    input testF1.th
    input testF2.th
    join testF1s@testF1 testF2s@testF2 -count 2
  endsurvey

 Jonction en deux points

3.1.3 Exemple

Comme exemple, nous allons utiliser une petite topo d’une cavité fictive avec deux branches. Nous supposons que nous avons deux séances topo pour chacune des branches et trois scraps pour le dessin : une pour l’intersection et une pour chacune des branches. La figure ci-dessous présente cette subdivision.

Exemple

La structure hiérarchique des données est la suivante

    cave
      +-- branch1
      |     +-- survey1
      |     +-- survey2
      |     +-- scrap1
      +-- branch2
      |     +-- survey3
      |     +-- survey4
      |     +-- scrap2
      +-- scrap3
  

Les quatre topos (séries de mesures) sont contenues chacune dans un fichier. Par exemple “survey1” (topo1) est contenue dans le fichier survey1.th:

    survey survey1
    centerline
    data normal from to length compass clino
    1 2 5.00   0 0
    2 3 5.00  45 0
    3 4 5.00  90 0
    endcenterline
    endsurvey

Les topos sont regroupées dans les branches. Par exemple survey1 et survey2 composent branch1 avec scrap1, comme indiqué dans le fichier “branch1.th”. Ce fichier importe les deux fichiers topo et le fichier scrap, identifie les stations dans les topos (commande “equate”), et définissent une carte map1, contenant uniquement le scrap scrap1.

    survey branch1
    input survey1.th
    input survey2.th
    input scrap1.th2
    equate 4@survey1 1@survey2
    map map1
       scrap1
    endmap
    endsurvey

break (.th command)
Les deux branches et le troisième scrap (scrap3) sont rassemblées dans le fichier “cave.th” qui identifie les stations à l’interconnexion et définie comment les lignes de scrap3 doivent se joindre avec celles des topos branch1 et branch2. Enfin, il définit la carte map3, avec les trois scraps.

    survey cave
    input branch1.th
    input branch2.th
    equate 2@survey3.branch2 1@survey1.branch1
    input scrap3.th2
    join line1@branch1:0   line2:end
    join line2@branch1:end line3:0
    join line1@branch2:0   line1:end
    join line2@branch2:end line2:0
    map map3
      scrap3
      break
      scrap1@branch1
      break
      scrap2@branch2
      #preview below map2@branch2
    endmap
    endsurvey

Notez le nommage des stations dans les scraps. Par exemple scrap1 a les stations de survey1 et survey2. C’est pourquoi, dans la définition des points de type “station” vous devez donner le nom complet de la station, cad, “1@survey1”. C’est ainsi que le nom complet doit être utilisé dans la commande “equate” du fichier “branch1.th”. Dans scrap3et dans le fichier “cave.th”, qui est placée a un niveau plus élevé, les stations sont référencées avec le suffixe de la branche, ex :, “2@survey3.branch2”.

Enfin le fichier de configuration (thconfig) a les commandes

    source cave.th
    select map3@cave
    export map ...
  

La première commande dit d’utiliser le fichier “cave.th”. La seconde de sélectionner la carte map3 (dans le survey, ou topo cave) pour le dessin. La troisième indique quelle carte générer et comment. Le résultat est présenté dans la figure suivante.

select (commande de thconfig)
La commande “select” est importante lorsque vous voulez une sortie (génération de PDF) avec une partie spécifique de la topographie. L’argument de la commande “select” doit être une map. Il n’est pas possible de “sélectionner” un scraps. S’il y a plusieurs maps, et qu’il n’y a pas de commande “select”, le résultat de la génération contiendra toutes les cartes (maps), y compris les maps partielles qui sont commentées dans le fichier maps général [thwiki 13, 16]. S’il y a des maps, mais que des scraps ne sont inclus dans aucune map, ces scraps n’apparaîtront pas dans la carte finale. Il est possible de répéter la commande “select” plusieurs fois dans le fichier de configuration. Toutes les cartes (maps) sélectionnées apparaîtront dans le résultat.

Il n’y a qu’une seule sélection dans le fichier de configuration. C’est pourquoi, il n’est pas possible de sélectionner une carte (map), exporter dans un fichier, désélectionner la carte, en sélectionner une autre et exporter dans un autre fichier. Pour avoir plusieurs sorties avec différentes sélections, vous devez avoir plusieurs fichier de configuration.

Avec un double clique sur le nom de la carte dans la “structure de carte” (dans le panneau de compilation de la fenetre xtherion), une commande “select” sera automatiquement insérée, pour cette map, dans le fichier de configuration.

 Résultat de l'exemple

names

3.1.4 Les noms

prefix
Organiser les noms des stations topo et garder une cohérence peut devenir difficile dans une grande cavité. La commande prefix permet d’ajouter un préfixe pour tous les noms de station importes (dans le fichier topo) avec la commande input, ce qui permet de réduire les risques de conflits de nom.

Voici un échange de mails qui pourra peut être vous éclairer sur le nommage des stations topos.

Par exemple (A. Atkinson 2005-12-22):
>> prefix name1  
>> input filename1.th2  
>> endprefix  
>>  
S. Mudrak répond :
Je ne suis pas sur d’avoir compris. Pour moi, tout ce que vous avez indiqué devrait fonctionner – sans avoir besoin de connaitre l’ensemble de la structure de données. En supposant le scénario suivant :
Vous avez un fichier topo. Il n’y a qu’une séance topo (et un fichier “entree”) et les stations sont nommées de 0 à 10. Dans therion, vos données (entrance.th) vont être (… en supposant que dans le fichier entrance.th2 il n’y a pas de préfixe aux noms de stations, juste 0,1,..,10):
>     import entrance.3d -surveys use
> 
>   survey entrance
>     input entrance.th2
>   endsurvey
>  


Maintenant nous avons deux répertoire identiques: entree et continuation par exemple. Dans survex, vous avez un fichier global nommée cave.3d ou les stations du fichier entrée se nomment cave.entree.1 et celles du second fichier topo cave.continuation.1 et cave.3d> est au niveau supérieur du répertoire.
Maintenant le fichier cave.th> correspondant dans ce répertoire sera:
>    import cave.3d -surveys use
> 
>   survey cave
>     input entrance/entrance.th
>     input continuation/continuation.th
>   endsurvey
>  


Et c’est tout. Vous pouvez travailler sur une partie de la topo sans connaître la structure globale de la topo. Vous pouvez envoyer uniquement le répertoire continuation à quelqu’un sans aucun fichier du répertoire de niveau supérieur, et cela marchera. Il pourra les éditer, et vous les renvoyer et cela marchera toujours. S’il renomme ses points topos, vous n’aurez qu’à changer les références dans cave.th et c’est tout. Je ne comprends pas le problème que vous décrivez.
Si je vous comprend bien, je devrais éditer les fichiers de topo pour changer les noms de toutes les stations dans les fichiers th2. >
Certainement pas. J’ai du manquer quelque chose. Je m’interrogeais sur le fait que vous choisissiez des noms de station topo aussi long. Je dois vérifier les fichiers sources une nouvelle fois, peut être que votre problème est différent.
Du point de vu d’un utilisateur, une possible solution est d’utiliser une sorte de commande prefix name - endprefix qui utiliserait le structure de nommage survex c’est à dire add name.* à toutes les stations.
Les scraps ont déjà cette possibilité via l’option station-names. Vous pouvez ajouter des préfixes ou suffixes si vous voulez.
OK, Je vais vérifier vos fichier une nouvelle fois en détail, peut être que je vais comprendre. Mais j’ai du mal à réfléchir cette nuit, j’ai bu un truc la nuit dernière et je n’ai dormis que 3 heures. Peut être que ce sera plus clair demain matin au réveil.



outline
L’option “outline” indique de quel cote de la ligne se trouve le rocher (par exemple pour une ligne délimitant la parois d’une galerie : s’agit-il d’une bordure avec la roche mère ou avec un simple pilier ?). En général il a la valeur “out” pour les murs des galeries et la valeur “in” pour les parois (type “wall”) de piliers ou colonnes entre deux branches d’une boucle de galerie … Cette information est surtout utile pour le calcul du volume en 3D

colors
foreground
En outre, les contours des scraps ne doivent pas se recouper. Si cela arrive, MetaPost indique un message d’erreur : “Warning: scrap outline intersects itself”. Vous pouvez voir ce que therion pense être l’intérieur des galeries en colorant le dessin grâce aux options de layout “-color map-fg X” (où X est la couleur, ou bien le mot “altitude”). La couleur peut être un simple nombre entre 0 et 100 pour un niveau de gris (0 noir, 100 blanc), ou trois nombre de 0 a 100 pour les trois composantes RGB (red, green, blue ou rouge, vert, bleu). Par exemple “color map-fg 80” donne un gris clair, “color map-fg [100 0 0]” donne du rouge vif.

preview
Il y a également une option pour la couleur de l’arrière plan, “map-bg”. D’autres objets peuvent être colores et sont “preview-above” (visualisés au dessus) et “preview-below” (visualisés au dessous).

reverse (line)
pit
chimney
En fait, il semble que même sans l’option “-outline” tout marche bien. Egalement : la question quel est l’intérieur ? Ne dépend ni de la direction de la ligne (commande “reverse” du contrôle “Lines”). La direction de la ligne est importante pour les tirets des lignes de type “pit” (puits) et “overhang” (surplomb). Le petit trait jaune dans l’éditeur de carte indique le cote où apparaitrons les tirets sur la topo. Les cheminées sont dessinées avec des tirets.

C’est comme si therion complétait les lignes des galeries pour les joindre entre elles en prolongeant leurs extrémités (pour les lignes de type “wall”, avec des lignes invisibles afin de faire un contour fermé. L’intersection des contours est autorisée (malgré les messages MetaPost). Les points des lignes intérieurs sont ceux proches des contours dont la découpe fait un nombre impair de tours. Les autres sont des points extérieurs (Rem du traducteur : je n’ai pas compris le sens de la phrase).

3.2.1 Exemple 1

Le premier exemple est une partie d’une grotte fictive avec un passage connecté sur le bord de la galerie principale, et passant ensuite en dessous de celle-ci. Les données sont (la galerie latérale débute a la visée 11-12)

<code>
  1 2  5.00  90  0
  2 3 10.00  45 10
  3 4 10.00  90  0
  2 11 2.00  90 -10
 11 12 15.00 45 -20
 11 21 5.00 120 10
</code>  

La figure suivante montre comment la topo peut être dessinée. Les points rouges sont les fins de lignes. Il y a deux scraps, un pour le passage principal, l’autre pour la galerie latérale. Les lignes, dans le premier scrap, qui forment le bord de galerie avec le second scrap sont de type “pit” (puits). Il y a deux lignes de commande pour faire le join (connexion des scraps),

<code>
  join s1_l1:end s2_l1:0
  join s1_l2:end s2_l2:end
</code>  

 Exemple

3.2.2 Exemple 2

Dans cet exemple, un passage a un surplomb et il y a un autre passage en dessous. Les lignes de surplomb ne sont pas régulières, et si ce n'étaient pas une partie du contour qu'elle serait partiellement à l'intérieur et partiellement en dehors du contour de la galerie, et dessinées ainsi dans la figure du côté gauche ci-dessous. D'une part avec l'option “-outline out” pour le surplomb, celui-ci est dessiné correctement, mais le “join” des deux scraps a une partie non colorée tel que nous le voyons dans la figure du côté droit ci-dessous.

 Exemple 2

Pour avoir un résultat satisfaisant, nous devons répéter la ligne surplomb (overhang) dans le second scrap avec une ligne de type “wall” et avec l’option “-visibility off”. Si les deux scraps sont dans le même fichier, cela peut être fait graphiquement, ou en éditant le fichier avec un éditeur de texte, avec un copier-coller (suivit par un changement du type de ligne et des options de la nouvelle ligne).

Si les scraps appartiennent à différents fichiers, il est toujours possible de le faire, mais demande plus de travail. Vous ouvrez les deux fichiers avec l’éditeur de texte de “xtherion” et vous copiez la ligne “overhang” du premier fichier au second. Vous changez ensuite le type de la ligne et ses options. Pour le moment, vous positionnez l’option “-visibility on”, car c’est le moyen le plus simple pour voir le tracé de la ligne. Maintenant, vous devez déplacer les points de la nouvelle ligne, en changeant leurs coordonnées jusqu'à ce que dans fichier PDF la nouvelle ligne soit complètement masquée par la ligne “overhang” (avec au moins la précision de la ligne utilisée pour le dessin). C’est généralement une opération longue et fastidieuse car les deux scraps ont (souvent) des dimensions différentes. Il est généralement suffisant d’atteindre le niveau de précision du pixel sur la position des points. Le résultat est présenté dans la figure ci-dessous.

Résultat

Pour obtenir un résultat très précis dans la superposition, désactivez le dessin dans les centerline (option layout “symbol-hide group centerline”) et redéfinissez la largeur de la ligne de dessin (et changez également le type de la ligne de surplomb avec “wall”, temporarily), avec les commandes Metapost suivantes

<code>
 code metapost
   def PenA =
     pencircle scaled (0.001);
   enddef;
 endcode
</code>  

Dans ce cas, même de toutes petites anomalies sont clairement visible et vous pouvez affiner les deux lignes avec plus de précision dans la superposition.

3.2.3 L’algorithme

S. Mudrak a posté un mail sur l’algorithme qui calcul les lignes outline (bords extérieurs) (2005-12-21).

Voici le cas ou des murs (wall) invisible doivent être utilisés :-)
L’algorithme de génération du scrap outline fonctionne mal dans ce cas.
Quand l’algorithme crée les lignes de bordure pour le scrap, il va du bout d’une ligne, au bout le plus proche de la seconde ligne. Dans notre cas, quand il arrive au bout de la ligne de débris, il connecte la seconde ligne, mais sur le mauvais bout. C’est pourquoi un triangle apparaît.
Quand vous connectez le bout de la ligne de débris avec un mur invisible avec le bon bout sur l’autre coté de la galerie, le problème devrait être résolu (du moins sur ma machine il l’est). Metapost indique également une erreur : scrap outline intersect it self (les lignes des scraps se recoupent elles même.
Je sais que cet algorithme peut être amélioré … Mais je le ferais plus tard. Je le mets dans la liste A FAIRE.

visibility (option)
L’algorithme des lignes extérieures (outline) suit les lignes et quand il arrive au bout de la ligne, il la connecte avec le bout le plus proche d’une autre ligne. Il peut arriver que cet algorithme connecte la ligne avec le mauvais point (la mauvaise ligne). Dans ce cas, vous devez ajouter des lignes invisibles (option “-visibility off”) de type “wall”, pour corriger le dessin.



join (.th command)
Quand les scraps sont dessinés dans le même fichier map (et éventuellement avec la même image de fond) il est possible de débuter les lignes sur le scrap exactement où les autres terminent, ainsi il n’y a aucun problème quand les scraps sont assemblés pour réaliser la topographie de la grotte.

Cependant, les scraps sont souvent dessinés indépendamment et ils doivent être raccordés entre eux dans la topographie finale. La commande join de therion indique comment connecter les lignes de deux scraps.

La syntaxe de la commande a deux formes, elle peut prendre soit les noms des scraps soit le nom des points sur les lignes (généralement “line:0” pour le point de départ et “line:end” pour la fin de la ligne).

Astuce : essayez de découper la topographie en scraps qui se joignent en des points simple de la cavité, si possible étroits et sans caractéristiques particulières. C’est pourquoi il faut éviter de joindre les scraps à des carrefours et essayer de faire les jointures au milieu des galeries, dans des lieux où il n’y a pas de symboles. Par-dessus tout, éviter de faire une jonction qui découperait en deux une surface (ex : un plan d’eau). Malheureusement, les séances topographiques ont tendance à s’arrêter aux carrefours, et il nous sommes amener à dessiner des scraps qui se terminent (et devront jonctioner) aux carrefours.

L’exemple suivant montre l’utilisation de la commande join et montre le cas d’un join à un carrefour. Les données de la grotte sont fictives, les données topo sont composées de deux boucles, et il y a trois scraps, un scrap pour chaque branche de la boucle.

Join

La figure ci-dessus montre l’éditeur de carte avec le fichier “.th2” contenant les trois scraps. xtherion affiche les scraps inactifs (i.e. non sélectionnés) avec la couleur jaune [thbook 29].

Pour joindre correctement les scraps, le fichier topo doit avoir les commandes join pour les bouts de ligne des scraps. Les commandes join sont écrites dans un block survey, mais en dehors du bloc centerline.

<code>
 input test1.th2
 join s1_l1:end s3_l1:end
 join s1_l2:end s2_l2:0
 join s2_l1:0 s3_l2:0
 join s2_l1:end s3_l2:end
 join s2_l2:end s1_l4:end
 join s3_l1:0 s1_l3:0
</code>  

debug
Le résultat du calcul est affiche dans la figure ci-dessous. Les résultats intermédiaires du calcul sont affichés en utilisant l’option “debug” du “layout” (“-layout-debug on”). La position des scraps après la transformation linéaire qui prend les points “station” aussi près que possible des points topo est affichée en rouge. La position après la transformation non linéaire qui prend les points de type “station” sur les points topo est affichée en bleu. Voici la carte avant le join. Le résultat après le join est affiché en noir. Voici la carte finale.

Join

foreground
La carte finale semble bonne. Il y a cependant une erreur. Si nous colorons les bords de la grotte (par exemple avec l’option de layout “-layout-color mag-fg altitude”), les deux régions du join ont un trou formant un triangle blanc. En fait, therion complète les contours des lignes extérieures de chaque scrap avec un segment sur les deux bords. Pour remplir le trou en triangle, les lignes extérieur des scraps (outline) doivent être prolongées un peu au delà de ces segments quand les scraps sont assemblés entre eux. Malheureusement, therion ne le fait pas.

Une solution pour ce problème est d’éviter de joindre des scrap à des carrefour de trois passages ou plus. En d’autres mots, éviter de faire des jonctions en 'Y' et placer les jonctions dans des portions rectilignes de galeries.

Une autre solution est d’ajouter à un scrap une petite partie de galerie, située à son opposé (en face de cette même galerie). Ainsi, la jonction devient un 'T' (le scrap avec le morceau de mur rapporté correspond à la barre verticale du T, les deux autres scraps sont joints sur ses bords opposés, sans jonction entre eux).

outline
Une troisième solution est d’ajouter a un scrap un point de type “bedrock” (roche mère), entre le bout et une ligne de type “wall” (et de longueur nulle) (Ctrl-L et double-clique sur ce point). Enfin, vous devez ajouter l’id du point dans la liste des commandes join qui relient les lignes des deux autres scraps. Sans la ligne “wall” (même si elle a une longueur nulle) le trou triangulaire n’est pas supprimé. Si la ligne n’est pas de type “wall”, vous devrez ajouter l’option “-outline out” (ou “-outline in”) pour indiquer ce qui appartient au contour du scrap.



map (.th command)
La commande map permet d’organiser les scrap et les “surveys” (séances topo) en fonction de la structure de la grotte. C’est une commande multi ligne avec la syntaxe suivante :

<code>
  map id_mappa -proj projection_type
    scrap | survey | map
    ...
    break
    scrap | survey | map
    ...
    preview above map
  endmap
</code>  

break (.th command)
La commande break découpe la carte (map) en plusieurs niveaux. Il peut y avoir un ou plusieurs break. L’intérêt d’avoir plusieurs niveaux est de pouvoir voir en transparence le niveau inférieur lorsque 2 niveaux sont superposés. Chaque niveau contient un ou plusieurs objets de type “scrap” ou “survey” ou “map”. Chaque objet est écrit sur une ligne. Tous les objets dans une map (carte) doivent être du même type. Même si vous pouvez faire des “maps” de “scraps”, des “maps” de “surveys”, et des “maps” de “maps”. Si la map est composée de scraps, ceux-ci doivent être sur la même projection, sinon il y a une erreur de projection (“projection missmash”) [thwiki 6]. Le type de projection peut être “plan”, “elevation”, “extended”, ou “none”.

preview
La commande preview est optionnelle. Elle indique d’insérer le contour de la carte en dessus ou en dessous de la carte qui est définie. Cela est utile lorsqu’il y a une galerie en dessous d’une autre et que vous voulez dessiner ses contours. [thbook 26].

3.4.1 Puits avec des galeries inférieures

join (.th command)
Comme exemple, nous avons pris une galerie avec un puits au centre de la galerie et un passage au pied du puits. Le bloc centerline est donc le suivant :

<code>

survey test5 … survey s1

  ...
  input test5_s1.th2

endsurvey

survey s2

 ...
 input test5_s2.th2

endsurvey

… join s2_l1@s2:0 s1_pit@s1:2 join s2_l2@s2:end s1_pit@s1:6

map map22 -proj plan

 scrap2@s2

endmap

map map5 -proj plan

 scrap1@s1
 break
 scrap2@s2
 preview above map22

endmap

endsurvey test5

</code>  

preview
Le dessin est composé de deux scraps : le premier pour le passage principal, et le second pour le passage inférieur. Les murs du second scrap sont joins avec deux commandes join aux lignes du puits (pit) dans le premier scrap. Chaque scrap est contenu dans son propre survey. Le fichier topo (survey) global, définit les deux cartes (maps) : map22 avec le scrap scrap2 du survey s2, et map5 pour la présentation. Cette dernière carte à deux scraps sur deux niveaux différents et une commande preview above avec la carte map22.

select (thconfig command)
Enfin, il est important que le fichier de configuration contienne la commande de select de la carte map5,

<code>
  select map5@test5
</code>  

Le résultat est présenté dans la figure suivante. Avec la commande “break” les lignes extérieures des deux scrap apparaissent sur la carte. Avec le “break” placé entre des deux maps, celles-ci sont placées sur deux niveaux différents, et le premier masque le second sur la zone de superposition. Sans le “preview” (ou avec un “preview below”) les lignes (outline) du second scrap ne seraient pas dessinées, et le puits ne serait pas connecté au passage inférieur.

 Vue de galeries superposées

3.4.2 Galeries superposées

Cet exemple contient une galerie passant sous une autre. Le premier scrap a un carrefour, le second scrap est relié à la branche droite du carrefour et passe sous la branche gauche.

 Galerie passant sous une autre

3.4.3 Galeries latérales

Cet exemple montre une galerie latérale, démarrant dans la galerie principale et passant en dessous de cette galerie, en revenant en arrière.

outline
overhang (line type)
Il y a deux scraps. Le premier scrap représente la galerie principale, de gauche a droite. Le mur Nord est coupée au point de départ des deux bordures du passage latéral : un “contour” et un “overhang” (surplomb). La dernière a l’option “-outline out” pour indiquer a therion qu’elle appartient aux lignes de bordure du scrap.

Le second scrap contient le passage latéral. Il doit être join au premier en trois points : les deux point du mur Nord pour lequel le premier scrap est ouvert, et le point terminal de la ligne “overhang”. Le mur de ce scrap est découpé en deux lignes pour correspondre aux points terminaux des lignes de la commande “join”. Nous aurions également pus utiliser une seule ligne et référencer les deux points intermédiaires de la dite ligne dans les “join”s.

<code>
   join s1_over@s1:end s2_l1@s2:0
   (or "-outline in") to specify that it belongs to the scrap outline
   join s1_l1@s1:0 s2_l2@s2:end
   join s1_l2@s1:end s2_l2@s2:0 
</code>  

Le dessin suivant présent le résultat de cet exemple. Les couleurs ont été ajoutées pour accentuer les lignes référencées par la commande “join”.

 Passage latéral

offset (map)

3.4.4 Déplacer des scraps

Si le dessin de la topo est trop chargée (superposition de galeries), avec tous les scraps correctement positionnés, vous pouvez décaler des parties de la topo sur les cotés.

3.4.4.1 En créant des maps

Il faut découper la topo en plusieurs cartes (commande “map”) dont chaque partie décallée correspondra à une map spécifique. Les branches de topo situées avant et après le décallages devront être également regroupées en des maps distinctes). Ainsi, lorsque l'on créera la map globale, nous pourrons spécifier l’offset de la portion de topo par rapport à la topo gobale.

map m12
  m1
  m2 [0 8 m] below
endmap

Ce système peut se répéter à l'infini. Voir dans les exemples (en anglais) http://therion.speleo.sk/samples.doc/30.html. Pour les traits entre les bord des galeries décalées, nous pouvons utiliser le type de ligne “jonction de carte” (map-connexion).

Remarque : cette technique a le gros avantage de ne pas corrompre le modèle 3D, ni fausser les altitudes (point altitude) de la topo.

3.4.4.2 En créant des visées topo virtuelles

extend (.th command)
Cette solution est un peu périmée et moins avantageuse que la première. Elle a également pour inconvénient de fausser les altitudes des branches de galerie déplacées (ainsi que le modèle 3D). Je la laisse tout de même dans la doc, pour info.

Pour y parvenir, vous devez insérer des visées virtuelles dans les blocs centerline, découpant ainsi les station aux points de jonction des scraps avec la topo principale. Par exemple :

    data normal from to length compass clino left right up down
    ...
    flags duplicate
    extend ignore
    20 20a 10.00 90 0 0 0 0 0
    14 14a 10.00 0 -90 0 0 0 0

La commande “extend ignore” indique à therion d’ignorer les visées horizontales dans la coupe développée. Les visées verticales étant ignorées d’office dans le topo en plan.

join (.th command)
Dans le scrap de la portion de topo décalée, utilisez la station “20a” et insérez le point topo“20” à une distance convenable, correspondant à la visée virtuelle que vous avez définie. Ensuite, insérez une ligne de label avec pour valeur une séquence de traits, ex : “- - - - -”. Mais attention, pensez à commenter la commande “join” qui relit le scrap décalé et la topo principale. L’exemple ci-dessous présente une partie de la coupe développée décalée par rapport à la topo principale.

Décalage de topo

wall (line type)
Une autre solution est d’ajouter un scrap avec uniquement deux stations et une ligne de type “wall” entre eux. Ajoutez l’option “-subtype presumed” à la ligne wall pour qu’elle soit dessinée en pointillée sur la topo.

Attention : Cette solution fonctionne mais elle a pour effet de “corrompre” la topo en ajoutant de fausses visées ce qui entraine de fausses altitudes sur les suites de la topo (lors des visées verticales). Idéalement, nous voudrions également avoir les lignes extérieures du scrap (dessin) décalé dans la topo principale.

3.4.5 Les murs verticaux

Therion position les lignes de points suivant leur distance aux stations topo dans le scrap et la position 3D des stations (obtenue à partir des visées topo).

Il peut arriver qu’un mur vertical ne soit pas totalement vertical sur la topo générée par Therion, car le dessin sur le scrap n’est pas parfait, ou la mise à l’échelle du scrap imparfaite.

Vous pouvez indiquer à therion de dessiner une partie d’une ligne verticalement en ajoutant l’option “adjust vertical” (sans les tirets devant adjust) à un, ou plusieurs points d’une ligne. Chaque point ayant cette option est positionné verticalement au dessus du point précédant. Cette option doit être positionnée à la main dans le bloc line du fichier .th2, juste après la ligne déclarant le point en question.

Un problème similaire arrive avec les surfaces horizontales, comme la surface d’un plan d’eau. A nouveau, l’horizontalité peut être forcée en utilisant l’option “adjust horizontal” sur le point de la ligne.

3.4.6 Lucarnes sur une parois

Pour dessiner une lucarne sur une paroi dans une coupe développée, vous dessinez les parois de la galerie (provenant de la lucarne) en pointillées, pour la portion de galerie qui est placées derrière la coupe développée du passage principal.

Dans cet exemple, un puits a une lucarne, et le contour de la lucarne est dessinées dans le scrap du puits avec deux lignes de type “wall” (mur), une pour le coté gauche, l’autre pour le coté droit (une seule ligne aurait suffit, mais avec deux lignes, le join des scraps est plus facile). Les deux lignes ont l’option “-outline in” ainsi, la lucarne apparaîtra comme un trou dans le puits sur la topo.

Le contour de la lucarne (dans le second scrap) est relies au reste de la galerie (réseau de la lucarne) par une ligne avec l’option “-subtype presumed”. Cette ligne se termine au niveau du bord du puit (scrap 1). Ainsi, le trait sera en pointillé sur la topo (ceci n’est pas obligatoire : si le mur n’était pas marqué comme presumed, il serait dessiné en gris claire, ce qui est bien aussi : cela dépend de ce que vous voulez obtenir). De plus, les bouts de ces lignes sont utilisés dans le “join” des scrap. Pour obtenir ce résultat, il est nécessaire d’insérer une ligne de point dans le puits (sur la figure a droite) à la bonne position.

Enfin, le mur gauche de la lucarne doit être répliqué dans le second scrap ainsi, le fond de la topo est correctement coloré dans le résultat final, avec une zone hachurée placée uniquement sur la lucarne (dans la zone de recouvrement dans le puits).

La figure ci-dessous présente le résultat. La vue de xtherion, à gauche, a été colorée pour plus de clarté. Les murs “presumed” (supposés) sont présentés en vert, le mur gauche de la lucarne en rouge. Les noms des stations sont en rouge. Les chiffres en noire représentent les indices des points sur la ligne du mur droit du puit, utilisés dans la commande “join”. Sur la droite, vous voyez le résultat du document PDF. Vous pouvez voir les lignes en pointillées pour les passages derrière le puit dans la zone masquée.

 Lucarne

Remarque : Si le scrap de la galerie latérale a été dessiné à l'inverse de la présentation (option -flip horizontal), il est possible que le join entre le bout de ses lignes et la “fenêtre” sur le scrap du puits génère de grosses déformations alors que tout semble correct. Il faut alors inverser dans le join les flags de début et de fin de ligne du scrap de la galerie (remplacer le :0 par :end et inversement). Cela supprimera la déformation (problème rencontré dans la version 5.2 de thérion).

 # MéandreEst et GrandBlack sont des survey (topo découpée en branches)
 # haut/bas sont des lignes (nom de l'id)
 # et end/0 indique la fin et début de la ligne
 # lucarneEst est le nom de la ligne faisant la demi lucarne (ligne outline en rouge in dans l'exemple
join haut@MeandreEst:end        lucarneEst@GrandBlack:end        
join bas@MeandreEst:0           lucarneEst@GrandBlack:0           # 



cross section
Une section de galerie est un scrap, un point dans (le scrap de) la topo (plan/coupe) indique ou sera positionne le dessin de la section. Une ligne indique le positionnement de la section dans les galeries de la topo (et sa direction).

scrap

3.5.1 Le scrap

Le dessin d’une section ne diffère pas beaucoup du dessin d’un scrap de plan ou de coupe développée. Vous utilisez des points et des lignes.

La nouveauté est que (généralement), les sections ne contiennent pas plus d’un point topo “station” (et peuvent n’en avoir aucun). C’est pourquoi il est nécessaire de définir une échelle au scrap. Pour cela, vous utilisez les petits carrés rouges dans les coins en bas a gauche et à droite de la zone de dessin. Ces carrés ne sont visibles que lorsque la ligne “scrap” est sélectionnée (liste des composants du scrap en haut des objets). S’il vous est difficile de les faire glisser jusqu'à la position du scrap (pour donner l’échelle de celui-ci) ou si vous n’arrivez pas à les trouver, vous pouvez entrer les coordonnées x, y des point dans les zones de saisie de la partie 'picture scale points' (points donnant l’échelle du dessin). Une autre astuce est de faire un zoom à 25% du dessin (afin de retrouver les points) et ensuite de déplacer les points à la souris.

Les scrapsLes scraps 2

Améliorations depuis le 21 dec 2006 : Dans la section ‘Scrap control’ vous trouvez un bouton “Scale” (échelle). Apres avoir appuyé sur ce bouton, cliquez sur la zone de dessin pour insérer le premier point de l’échelle graphique. Le second clic insérera le second point de cette échelle graphique. La flèche rouge connecte toujours le premier au second point.

Mise à l'échelle Mise à l'échelle Mise à l'échelle

Vous commencez par insérer un nouveau scrap (menu “Edit | Insert - scrap”) et mettre le type de projection à “none”. Dessinez les lignes du scrap et positionnez les objets points. S’il y en a une, positionnez la station topo (type “station” et option “-name”). De toute façon le scrap sera toujours sans échelle automatique. Pour définir l’échelle du scrap, déplacez les deux petits carrés rouges qui apparaissent dans la partie basse de la zone de dessin autour du scrap (cliquez sur chacun d’eux avec la souris et faite un glisser-deplacer). Mettez le carré gauche en bas à gauche du scrap, et le droit en haut à droite du scrap (une flèche rouge barre alors en diagonale le dessin de votre section). Maintenant, dans le control du “Scraps”, entrez dans les zones de texte, les coordonnées (en mètres) de ces deux points virtuels : (0,0) pour le coin en bas à gauche, et (en positif) la bonne valeur pour le coin supérieur droit (ex : (2,3) pour une galerie de 2m de large par 3m de haut).

Les petits carrés rouges de mise à l’échelle du scrap peuvent être difficile à trouver et déplacer. Ces carrés ne sont visibles que lorsque la ligne du scrap est sélectionnée (dans la liste des objets du scrap, en haut). Si vous n’arrivez pas à la faire glisser (ou si vous ne la trouvez pas), entrez alors les coordonnées x,y d’un des points de cette section dans le champs 'picture scale points', et cliquez sur le bouton 'update scrap' pour le faire apparaître dans la section.

 Section de galerie

point (.th command)
section (type)
scrap (option)

3.5.2 Le point "section"

Pour positionner la section dans la topo, vous devez insérer un point de type “section” dans un scrap de la topo. Placez-le à la position ou vous voulez voir la section. Le point doit avoir l’option “-scrap” suivie par le nom du scap contenant la section.

line (.th command)

3.5.3 La ligne "section"

Enfin, vous avez besoin d’une ligne de type “section” dans le scrap de la topo (plan ou coupe) pour identifier la position de la section dans la galerie. Cette ligne est généralement tracée avec deux barres en L, la partie horizontale indiquant la direction de la vue de la section.

Dessinez une ligne (un segment) avec uniquement deux points en faisant un glisser-deplacer de la souris, ainsi les points terminaux ont des poignées, comme les traits des courbes arrondies. Allez dans le menu “Edit | Insert line” (ou Ctrl-L), cliquez sur le premier point de la ligne (situés en dehors du trait délimitant la topo : le mur) et faites glisser la souris à travers le mur de la grotte. Relâchez le bouton de la souris avant le mur. Puis cliquez sur le second pont (de l’autre cote du scrap) et faite un nouveau glisser-deplacer en direction de (l’autre) mur, relâchez le bouton avant d’atteindre le mur.

direction (option)
Positionnez le type de la ligne à “section”, et ajoutez l’option “-direction both” (les deux) pour indiquer la direction de la vue sur les deux points. Les autres valeurs de l’option sont “end” (fin) et “begin” (debut).

 Section de galerie 2



3.A.1 Actions souris
Ligne Point Surface
insertion sélection insertion sélection insertion
gauche point point existant a la position point exitant
Ctrl + gauche ferme un point existant ferme un point existant
droit + glisser avec des poignées déplace le point déplace le point
Ctrl + gauche + glisser ferme le point, avec des poignées déplace vers le point plus proche déplace vers le point plus proche
droit point précédent ajoute une ligne au contour
Esc fin fin fin
gauche sur le dernier fin
gauche sur le premier termine et ferme
Ctrl-L débute une nouvelle ligne
Ctrl-P nouveau points
Ctrl-A nouvelle surface
3.A.2 Raccourcis claviers

Les raccourcis claviers sont des combinaisons de touches qui offrent les mêmes fonctions que de cliquer sur les menus ou de faire un clic avec la souris sur l’interface graphique.

  • ESC bascule en mode sélection (sur l’éditeur de carte)
  • F9 compile le projet
  • F1 affiche la fenêtre de l’éditeur de texte ;
  • F2 affiche la fenêtre de l’éditeur de carte ;
  • F3 affiche la fenêtre du compilateur ;
  • Alt-F ouvre le menu “File” (fichier) ;
  • * Alt-N nouveau fichier;
  • * Alt-O ouvre un fichier;
  • * Alt-S sauvegarde le fichier;
  • * Alt-A sauvegarde le fichier sous un autre nom (éditeur de texte);
  • * Alt-U active/désactive la sauvegarde automatique (éditeur de texte);
  • * Alt-X affiche le fichier suivant
  • * Alt-P affiche le fichier précédent
  • * Alt-C ferme le fichier
  • * Alt-Q quitte le programme
  • Alt-E ouvre me menu “Edit”;
  • * Alt-S fonction sélectionner (éditeur de carte);
  • * Alt-I fonction insérer (éditeur de carte);
  • * Alt-D fonction supprimer (éditeur de carte);
  • * Alt-Z change le zoom (éditeur de carte);
  • * Alt-U annule la mise a l’échelle de la zone de dessin (éditeur de carte);
  • Alt-W ouvre le menu “Window”;
  • * Alt-A passe la fenêtre en grand écran
  • * Alt-O repasse la fenêtre en taille normale
  • * Alt-W inverse la position du panneau de contrôle
  • Alt-H ouvre le menu “Help”;
  • * Alt-A affiche le numéro de version de xtherion
  • * Alt-B ouvre le calculateur de BAC;
  • * Alt-C affiche la liste des commandes les plus utiles
  • Ctrl-N ouvre un nouveau fichier,
  • Ctrl-O ouvre un fichier existant
  • Ctrl-S sauvegarde le fichier courant
  • Ctrl-W ferme le fichier courant
  • Ctrl-Z annule la dernière action
  • Ctrl-Y refait la dernière action
  • Ctrl-N affiche le fichier suivant (éditeur de texte);
  • Ctrl-P affiche le fichier précèdent (éditeur de texte)
  • Ctrl-R insert un nouveau scrap (éditeur de carte);
  • Ctrl-P insert un nouveau point (éditeur de carte);
  • Ctrl-L insert une nouvelle ligne (éditeur de carte);
  • Ctrl-A insert une nouvelle surface (éditeur de carte); ou sélectionne tout (dans l’éditeur de texte)
  • Ctrl-X coupe;
  • Ctrl-C copie;
  • Ctrl-V colle;
  • Ctrl-I auto indente le texte (éditeur de texte)
  • Ctrl-D supprime la sélection (éditeur de carte)
  • Ctrl-Q quitte le programme.
  • fr/tbe/wiki3.txt
  • Last modified: 16 years ago
  • by 127.0.0.1