Télécharger @relief.procedur

Retour à la liste

Numérotation des lignes :

  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.  
  224.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales