Download @relief.procedur

Back to the list

   1 : * @RELIEF   PROCEDUR  MAUGIS    04/10/08    21:16:42     4928           
   2 : *--------------------------------------------------------------------
   3 : 'DEBPROC' @RELIEF ;
   4 : *--------------------------------------------------------------------
   5 : *
   6 : *   AFfiche de façon interactive la composante d'un champ-point
   7 : *
   8 : *   Eventuellement, superpose les isovaleurs d'un autre champ
   9 : *
  10 : *--------------------------------------------------------------------
  11 : *
  12 : * auteur : ENEA GIANNUZZI-MILIOZZI
  13 : * modifié 6/10/04 par Pascal Maugis :
  14 : *          appel à la procédure MONTAGNE
  15 : *          option interactive seulement
  16 : *          supression option de discrétisation, position oeil et
  17 : *            amplification qui deviennent automatiques
  18 : *
  19 : *--------------------------------------------------------------------
  20 : *
  21 : * Pb : si on donne un chamelem, le modèle ne doit pas être un modèle
  22 : *      DARCY ou NAVIER-STOCKS qui se réfère à des maillages QUAF
  23 : *      et non au maillage simple.
  24 : *      faire alors un modèle THERMIQUE, par ex. 
  25 : *
  26 : *--------------------------------------------------------------------
  27 : 
  28 : * Sauvegarde de paramètres d'environnement
  29 : savcoul = 'VALEUR' 'COULEUR' ;
  30 : 
  31 : 'REPETER' BCLINTER  ;
  32 : 
  33 : *   MESS ' >>> Voulez-vous la liste des objets ? (OUI/NON)'  ;
  34 : *   'SI' (@LIRERIS) ;
  35 : *      'REPETER' LOP1 ;
  36 : *         MESS ' ----------------------------------------------- ' ;
  37 : *         MESS '  0  -  SORTIE ' ;
  38 : *         MESS '  1  -  MAILLAGE ' ;
  39 : *         MESS '  2  -  CHPOINT  ' ;
  40 : *         MESS '  3  -  MCHAML ' ;
  41 : *         XX  = @LIREENT 0 3  ;
  42 : *         'SI' ('EGA' XX 1) ;
  43 : *            LIST *'MMODEL'  ;
  44 : *         'FINSI'  ;
  45 : *         'SI' ('EGA' XX 2) ;
  46 : *            LIST *'CHPOINT' ;
  47 : *         'FINSI'  ;
  48 : *         'SI' ('EGA' XX 3) ;
  49 : *            LIST *'MCHAML'  ;
  50 : *         'FINSI'  ;
  51 : *         'SI' ('EGA' XX 0) ;
  52 : *            QUITTER LOP1  ;
  53 : *         'FINSI'  ;
  54 : *      'FIN' LOP1 ;
  55 : *   'FINSI'  ;
  56 : 
  57 : *- Détermination du 1er champ à tracer
  58 : *  ===================================
  59 :    'REPETER' bcl1 ;
  60 : *     on itère jusqu'à obtenir un champ
  61 :       MESS ' >>> Nom de l objet de type CHPOINT-sommet ou '
  62 :            'MCHAML-sommets (relief)';
  63 :       'OBTENIR' MCPCH  ;
  64 : 
  65 : *     suivant le type, on demande l'objet secondaire
  66 :       TCPCH = 'TYPE' MCPCH ;
  67 :       'SI' ( 'EGA' 'MCHAML' TCPCH )  ;
  68 :          'REPETER' bcl2 ;
  69 : *           on itère jusqu'à obtenir un modèle
  70 :             MESS ' >>> Nom de l objet MMODEL le sous-tendant'  ;
  71 :             'OBTENIR' MOD1  ;
  72 :             TMOD = 'TYPE' MOD1 ;
  73 :             'SI' ('EGA' TMOD 'MMODEL') ;
  74 :                'QUITTER' bcl2 ;
  75 :             'SINON' ;
  76 :                MESS ' Cet objet de type ' TMOD ' n est pas un modèle' ;
  77 :                'LISTE' *'MMODEL' ;
  78 :             'FINSI' ;
  79 :          'FIN' bcl2 ;
  80 :          CHPO1 = 'CHANGER' 'CHPO' MOD1 MCPCH ;
  81 :          MAIL1 = 'EXTR' MOD1 'MAIL' ;
  82 :          'QUITTER' bcl1 ;
  83 :       'SINON' ;
  84 :          'SI' ( 'EGA' TCPCH 'CHPOINT' ) ;
  85 :             CHPO1 = MCPCH  ;
  86 :             'REPETER' bcl2 ;
  87 : *              on itère jusqu'à obtenir un maillage
  88 :                MESS ' >>> Nom de l objet de type MAILLAGE de '
  89 :                     'connectivite';
  90 :                'OBTENIR' MAIL1  ;
  91 :                TMAIL = 'TYPE' MAIL1 ;
  92 :                'SI' ('EGA' TMAIL 'MAILLAGE') ;
  93 :                   'QUITTER' bcl2 ;
  94 :                'SINON' ;
  95 :                   MESS ' Cet objet de type ' TMAIL ' n est pas un '
  96 :                        'maillage' ;
  97 :                   'LISTE' *MAILLAGE ;
  98 :                'FINSI' ;
  99 :             'FIN' bcl2 ;
 100 :             'QUITTER' bcl1 ;
 101 :          'SINON'  ;
 102 :             MESS ' Cet objet de type ' TCPCH ' n est pas connu' ;
 103 :             'LISTE' *'CHPOINT' ;
 104 :             'LISTE' *'MCHAML' ;
 105 :          'FINSI'   ;
 106 :       'FINSI'  ;
 107 :    'FIN' bcl1 ;
 108 : 
 109 : *  choix de la composante d'intérêt
 110 :    LCOMP = 'EXTR' CHPO1 'COMP'  ;
 111 :    NCOMP = 'DIME' LCOMP ;
 112 :    'SI' ('EGA' NCOMP 1) ;
 113 :       NCHP1 = 1 ;
 114 :    'SINON' ;
 115 :       MESS ' >>> Donnez le numéro de la composante :' ;
 116 :       'REPETER'  LL11 ( 'DIME' LCOMP )  ;
 117 :          N  = &LL11 ;
 118 :          MESS ' ' N ' -  ' ( 'EXTR' LCOMP N )  ;
 119 :       'FIN' LL11  ;
 120 :       'REPETER' bcl2 ;
 121 : *        on itère jusqu'à obtenir une bonne valeur
 122 :          'OBTENIR' NCHP1*'ENTIER' ;
 123 :          'SI' ((NCHP1 < 1) 'OU' (NCHP1 > NCOMP)) ;
 124 :             MESS ' Donnez une valeur entre 1 et ' NCOMP ;
 125 :          'SINON' ;
 126 :             'QUITTER' bcl2 ;
 127 :          'FINSI' ;
 128 :       'FIN' bcl2 ;
 129 :    'FINSI' ;
 130 :    NCHP1  = 'EXTR' LCOMP NCHP1 ;
 131 :    CHPO1B = 'EXCO' CHPO1 NCHP1 'SCAL' ;
 132 : 
 133 : *- Détermination du 2e champ à tracer
 134 : *  ==================================
 135 :    MESS ' >>> Faut-il y superposer un deuxieme champ ? (OUI/NON) '  ;
 136 :    LSUPER = @LIRERIS ;
 137 : 
 138 :    'SI'  LSUPER ;
 139 :       'REPETER' bcl1 ;
 140 : *        on itère jusqu'à obtenir un champ
 141 :          MESS ' >>> Nom de l objet de type CHPOINT ou MCHAML'
 142 :               ' (isovaleurs - même support géométrique)';
 143 :          'OBTENIR' MCPCH2 ;
 144 : 
 145 : *        suivant le type, on convertit
 146 :          TCPCH = 'TYPE' MCPCH2  ;
 147 :          'SI' ('EGA' TCPCH 'MCHAML')  ;
 148 : *           et on en fait un champ-point
 149 :             CHPO2 = 'CHANGER' 'CHPO' MCPCH2 MOD1  ;
 150 :             'QUITTER' bcl1 ;
 151 :          'SINON' ;
 152 :             'SI' ('EGA' TCPCH 'CHPOINT') ;
 153 :                CHPO2 = MCPCH2 ;
 154 :                'QUITTER' bcl1 ;
 155 :             'SINON'  ;
 156 :                MESS ' Cet objet de type ' TCPCH 'n est pas connu' ;
 157 :                'LISTE' *'CHPOINT' ;
 158 :                'LISTE' *'MCHAML' ;
 159 :             'FINSI' ;
 160 :          'FINSI' ;
 161 :       'FIN' bcl1 ;
 162 : 
 163 : *     choix de la composante d'intérêt
 164 :       LCOMP = 'EXTR' CHPO2 'COMP'  ;
 165 :       NCOMP = 'DIME' LCOMP ;
 166 :       'SI' ('EGA' NCOMP 1) ;
 167 :          NCHP2 = 1 ;
 168 :       'SINON' ;
 169 :          MESS ' >>> Donnez le numéro de la composante :' ;
 170 :          'REPETER' LL12 NCOMP  ;
 171 :             N = &LL12 ;
 172 :             MESS ' ' N ' -  ' ( 'EXTR' LCOMP N )  ;
 173 :          FIN LL12  ;
 174 :          'REPETER' bcl2 ;
 175 : *           on itère jusqu'à obtenir une bonne valeur
 176 :             'OBTENIR' NCHP2*'ENTIER' ;
 177 :             'SI' ((NCHP2 < 1) 'OU' (NCHP2 > NCOMP)) ;
 178 :                MESS ' Donnez une valeur entre 1 et ' NCOMP ;
 179 :             'SINON' ;
 180 :                'QUITTER' bcl2 ;
 181 :             'FINSI' ;
 182 :          'FIN' bcl2 ;
 183 :       'FINSI' ;
 184 :       NCHP2  = 'EXTR' LCOMP NCHP2 ;
 185 :       CHPO2B = 'EXCO' CHPO2 NCHP2 'SCAL' ;
 186 :    'FINSI'  ;
 187 : 
 188 : *  Affichage des extrema
 189 : *  =====================
 190 :    VMIN1 = 'MINIMUM' CHPO1B  ;
 191 :    VMAX1 = 'MAXIMUM' CHPO1B  ;
 192 :    MESS '  '  ;
 193 :    MESS ' ************************************** '  ;
 194 :    MESS '  CHAMP 1 (RELIEF) : MINI:' VMIN1 'MAXI:' VMAX1 ;
 195 :    'SI'  LSUPER  ;
 196 :       VMIN2 = 'MINIMUM' CHPO2B ;
 197 :       VMAX2 = 'MAXIMUM' CHPO2B ;
 198 :       MESS '  '  ;
 199 :       MESS '  CHAMP 2 (ISOVALEURS) : MINI:' VMIN1 'MAXI:' VMAX1 ;
 200 :    'FINSI'  ;
 201 :    MESS ' ************************************** '  ;
 202 :    MESS '  '  ;
 203 : 
 204 : *  Tracé
 205 : *  =====
 206 :    'SI' ('NON' LSUPER)  ;
 207 :       MONTAGNE CHPO1B MAIL1 'CACHE' ;
 208 :    'SINON' ;
 209 :       MONTAGNE CHPO1B CHPO2B MAIL1 'CACHE' ;
 210 :    'FINSI'  ;
 211 : 
 212 : *  Sortie
 213 :    MESS ' >>> VOULEZ VOUS SORTIR ? (OUI/NON) ' ;
 214 :    'SI' (@LIRERIS) ;
 215 :       'QUITTER' @RELIEF ;
 216 :    'FINSI'  ;
 217 : 'FIN' BCLINTER ;
 218 : 
 219 : * restitution des paramètres d'environnement
 220 : 'OPTION' 'COULEUR' savcoul ;
 221 : 
 222 : 'FINPROC' ;
 223 :  

© Cast3M 2003 - All rights reserved.
Disclaimer