$$$$ @RELIEF * @RELIEF PROCEDUR MAUGIS 04/10/08 21:16:42 4928 *-------------------------------------------------------------------- 'DEBPROC' @RELIEF ; *-------------------------------------------------------------------- * * AFfiche de façon interactive la composante d'un champ-point * * Eventuellement, superpose les isovaleurs d'un autre champ * *-------------------------------------------------------------------- * * auteur : ENEA GIANNUZZI-MILIOZZI * modifié 6/10/04 par Pascal Maugis : * appel à la procédure MONTAGNE * option interactive seulement * supression option de discrétisation, position oeil et * amplification qui deviennent automatiques * *-------------------------------------------------------------------- * * Pb : si on donne un chamelem, le modèle ne doit pas être un modèle * DARCY ou NAVIER-STOCKS qui se réfère à des maillages QUAF * et non au maillage simple. * faire alors un modèle THERMIQUE, par ex. * *-------------------------------------------------------------------- * Sauvegarde de paramètres d'environnement savcoul = 'VALEUR' 'COULEUR' ; 'REPETER' BCLINTER ; * MESS ' >>> Voulez-vous la liste des objets ? (OUI/NON)' ; * 'SI' (@LIRERIS) ; * 'REPETER' LOP1 ; * MESS ' ----------------------------------------------- ' ; * MESS ' 0 - SORTIE ' ; * MESS ' 1 - MAILLAGE ' ; * MESS ' 2 - CHPOINT ' ; * MESS ' 3 - MCHAML ' ; * XX = @LIREENT 0 3 ; * 'SI' ('EGA' XX 1) ; * LIST *'MMODEL' ; * 'FINSI' ; * 'SI' ('EGA' XX 2) ; * LIST *'CHPOINT' ; * 'FINSI' ; * 'SI' ('EGA' XX 3) ; * LIST *'MCHAML' ; * 'FINSI' ; * 'SI' ('EGA' XX 0) ; * QUITTER LOP1 ; * 'FINSI' ; * 'FIN' LOP1 ; * 'FINSI' ; *- Détermination du 1er champ à tracer * =================================== 'REPETER' bcl1 ; * on itère jusqu'à obtenir un champ MESS ' >>> Nom de l objet de type CHPOINT-sommet ou ' 'MCHAML-sommets (relief)'; 'OBTENIR' MCPCH ; * suivant le type, on demande l'objet secondaire TCPCH = 'TYPE' MCPCH ; 'SI' ( 'EGA' 'MCHAML' TCPCH ) ; 'REPETER' bcl2 ; * on itère jusqu'à obtenir un modèle MESS ' >>> Nom de l objet MMODEL le sous-tendant' ; 'OBTENIR' MOD1 ; TMOD = 'TYPE' MOD1 ; 'SI' ('EGA' TMOD 'MMODEL') ; 'QUITTER' bcl2 ; 'SINON' ; MESS ' Cet objet de type ' TMOD ' n est pas un modèle' ; 'LISTE' *'MMODEL' ; 'FINSI' ; 'FIN' bcl2 ; CHPO1 = 'CHANGER' 'CHPO' MOD1 MCPCH ; MAIL1 = 'EXTR' MOD1 'MAIL' ; 'QUITTER' bcl1 ; 'SINON' ; 'SI' ( 'EGA' TCPCH 'CHPOINT' ) ; CHPO1 = MCPCH ; 'REPETER' bcl2 ; * on itère jusqu'à obtenir un maillage MESS ' >>> Nom de l objet de type MAILLAGE de ' 'connectivite'; 'OBTENIR' MAIL1 ; TMAIL = 'TYPE' MAIL1 ; 'SI' ('EGA' TMAIL 'MAILLAGE') ; 'QUITTER' bcl2 ; 'SINON' ; MESS ' Cet objet de type ' TMAIL ' n est pas un ' 'maillage' ; 'LISTE' *MAILLAGE ; 'FINSI' ; 'FIN' bcl2 ; 'QUITTER' bcl1 ; 'SINON' ; MESS ' Cet objet de type ' TCPCH ' n est pas connu' ; 'LISTE' *'CHPOINT' ; 'LISTE' *'MCHAML' ; 'FINSI' ; 'FINSI' ; 'FIN' bcl1 ; * choix de la composante d'intérêt LCOMP = 'EXTR' CHPO1 'COMP' ; NCOMP = 'DIME' LCOMP ; 'SI' ('EGA' NCOMP 1) ; NCHP1 = 1 ; 'SINON' ; MESS ' >>> Donnez le numéro de la composante :' ; 'REPETER' LL11 ( 'DIME' LCOMP ) ; N = &LL11 ; MESS ' ' N ' - ' ( 'EXTR' LCOMP N ) ; 'FIN' LL11 ; 'REPETER' bcl2 ; * on itère jusqu'à obtenir une bonne valeur 'OBTENIR' NCHP1*'ENTIER' ; 'SI' ((NCHP1 < 1) 'OU' (NCHP1 > NCOMP)) ; MESS ' Donnez une valeur entre 1 et ' NCOMP ; 'SINON' ; 'QUITTER' bcl2 ; 'FINSI' ; 'FIN' bcl2 ; 'FINSI' ; NCHP1 = 'EXTR' LCOMP NCHP1 ; CHPO1B = 'EXCO' CHPO1 NCHP1 'SCAL' ; *- Détermination du 2e champ à tracer * ================================== MESS ' >>> Faut-il y superposer un deuxieme champ ? (OUI/NON) ' ; LSUPER = @LIRERIS ; 'SI' LSUPER ; 'REPETER' bcl1 ; * on itère jusqu'à obtenir un champ MESS ' >>> Nom de l objet de type CHPOINT ou MCHAML' ' (isovaleurs - même support géométrique)'; 'OBTENIR' MCPCH2 ; * suivant le type, on convertit TCPCH = 'TYPE' MCPCH2 ; 'SI' ('EGA' TCPCH 'MCHAML') ; * et on en fait un champ-point CHPO2 = 'CHANGER' 'CHPO' MCPCH2 MOD1 ; 'QUITTER' bcl1 ; 'SINON' ; 'SI' ('EGA' TCPCH 'CHPOINT') ; CHPO2 = MCPCH2 ; 'QUITTER' bcl1 ; 'SINON' ; MESS ' Cet objet de type ' TCPCH 'n est pas connu' ; 'LISTE' *'CHPOINT' ; 'LISTE' *'MCHAML' ; 'FINSI' ; 'FINSI' ; 'FIN' bcl1 ; * choix de la composante d'intérêt LCOMP = 'EXTR' CHPO2 'COMP' ; NCOMP = 'DIME' LCOMP ; 'SI' ('EGA' NCOMP 1) ; NCHP2 = 1 ; 'SINON' ; MESS ' >>> Donnez le numéro de la composante :' ; 'REPETER' LL12 NCOMP ; N = &LL12 ; MESS ' ' N ' - ' ( 'EXTR' LCOMP N ) ; FIN LL12 ; 'REPETER' bcl2 ; * on itère jusqu'à obtenir une bonne valeur 'OBTENIR' NCHP2*'ENTIER' ; 'SI' ((NCHP2 < 1) 'OU' (NCHP2 > NCOMP)) ; MESS ' Donnez une valeur entre 1 et ' NCOMP ; 'SINON' ; 'QUITTER' bcl2 ; 'FINSI' ; 'FIN' bcl2 ; 'FINSI' ; NCHP2 = 'EXTR' LCOMP NCHP2 ; CHPO2B = 'EXCO' CHPO2 NCHP2 'SCAL' ; 'FINSI' ; * Affichage des extrema * ===================== VMIN1 = 'MINIMUM' CHPO1B ; VMAX1 = 'MAXIMUM' CHPO1B ; MESS ' ' ; MESS ' ************************************** ' ; MESS ' CHAMP 1 (RELIEF) : MINI:' VMIN1 'MAXI:' VMAX1 ; 'SI' LSUPER ; VMIN2 = 'MINIMUM' CHPO2B ; VMAX2 = 'MAXIMUM' CHPO2B ; MESS ' ' ; MESS ' CHAMP 2 (ISOVALEURS) : MINI:' VMIN1 'MAXI:' VMAX1 ; 'FINSI' ; MESS ' ************************************** ' ; MESS ' ' ; * Tracé * ===== 'SI' ('NON' LSUPER) ; MONTAGNE CHPO1B MAIL1 'CACHE' ; 'SINON' ; MONTAGNE CHPO1B CHPO2B MAIL1 'CACHE' ; 'FINSI' ; * Sortie MESS ' >>> VOULEZ VOUS SORTIR ? (OUI/NON) ' ; 'SI' (@LIRERIS) ; 'QUITTER' @RELIEF ; 'FINSI' ; 'FIN' BCLINTER ; * restitution des paramètres d'environnement 'OPTION' 'COULEUR' savcoul ; 'FINPROC' ;