Télécharger TABLO3D.procedur

Retour à la liste

Numérotation des lignes :

  1. * TABLO3D PROCEDUR JC220346 16/05/10 21:15:00 8926
  2. ************************************************************************
  3. * NOM : TABLO3D
  4. * DESCRIPTION : Affiche sous forme graphique 3D (matrice de barres
  5. * colorees) un tableau de valeurs numeriques.
  6. ************************************************************************
  7. * ENTREES : LO [MOT] = MOT-CLE VALANT LINE, LOGA, CLOG OU ZLOG
  8. * SMALL [FLOTTANT] = VALEUR EN-DESSOUS DE LAQUELLE LV VAUT 0.
  9. * TR [LOGIQUE] = TRACER UNE TRIANGLE SUR LA 1ERE BARRE ?
  10. * NL [ENTIER] = NOMBRE DE LIGNES
  11. * NC [ENTIER] = NOMBRE DE COLONNES
  12. * LV [LISTREEL] = LISTE DES NL*NC VALEURS
  13. * TIT [MOT] = TITRE DU GRAPHIQUE
  14. * SORTIES : AUCUNE
  15. ************************************************************************
  16. * SYNTAXE :
  17. *
  18. * TABLO3D | ('LINE') | (ZERO) NLIG NCOL LVAL (TIT) ;
  19. * | 'LOGA' |
  20. * | 'CLOG' |
  21. * | 'ZLOG' |
  22. *
  23. ************************************************************************
  24. DEBP TABLO3D LO/'MOT' SMALL*'FLOTTANT' TR/'LOGIQUE'
  25. NL*'ENTIER' NC*'ENTIER' LV*'LISTREEL' TIT/'MOT' ;
  26.  
  27. * MODIFICATION DES OPTIONS
  28. NDIM1 = VALE 'DIME' ;
  29. ELTY1 = VALE 'ELEM' ;
  30. ECHO1 = VALE 'ECHO' ;
  31. SI (NDIM1 EGA 1) ;
  32. ERRE 709 'AVEC' NDIM1 ;
  33. FINS ;
  34. OPTI 'DIME' 3 'ELEM' 'CUB8' 'ECHO' -1 ;
  35.  
  36. * ===================
  37. * PARAMETRES D'ENTREE
  38. * ===================
  39.  
  40. * GESTION DE L'ECHELLE
  41. KCLOG = FAUX ;
  42. KZLOG = FAUX ;
  43. MCOMP = 'X' ;
  44. MOECH = MOTS 'LINE' 'LOGA' 'CLOG' 'ZLOG' ;
  45. SI (EXIS LO) ;
  46. ILO = POSI LO 'DANS' MOECH ;
  47. SI (ILO > 0) ;
  48. SI ((ILO EGA 2) OU (ILO EGA 3)) ;
  49. KCLOG = VRAI ;
  50. MCOMP = '10^X' ;
  51. FINS ;
  52. SI ((ILO EGA 2) OU (ILO EGA 4)) ;
  53. KZLOG = VRAI ;
  54. FINS ;
  55. SINON ;
  56. SI (EXIS TIT) ;
  57. ERRE 1052 'AVEC' 'LINELOGACLOGZLOG' ;
  58. SINON ;
  59. TIT = LO ;
  60. FINS ;
  61. FINS ;
  62. FINS ;
  63.  
  64. * GESTION DE LA VALEUR MINI
  65. MIN1 = 0.1 * (MINI (ABS LV)) ;
  66. SI (KCLOG OU KZLOG) ;
  67. SI (EXIS SMALL) ;
  68. SMLOG = (LOG SMALL) / (LOG 10.) ;
  69. SINON ;
  70. SMLOG = ENTI 'INFE' ((LOG MIN1) / (LOG 10.)) ;
  71. SMALL = 10.**SMLOG ;
  72. FINS ;
  73. SINON ;
  74. SI (NON (EXIS SMALL)) ;
  75. SMALL = MIN1 ;
  76. FINS ;
  77. FINS ;
  78.  
  79. * TRACE DU MARQUEUR DE LA POSITION (1,1) ?
  80. SI (NON (EXIS TR)) ;
  81. TR = VRAI ;
  82. FINS ;
  83.  
  84. * GESTION DE LA LISTE DES VALEURS
  85. NV = DIME LV ;
  86. SI (NV EGA 0) ;
  87. ERRE 1027 'AVEC' 'LISTREEL' ;
  88. FINS ;
  89. SI (NL <EG 0) ;
  90. ERRE 36 'AVEC' NL ;
  91. FINS ;
  92. SI (NC <EG 0) ;
  93. ERRE 36 'AVEC' NC ;
  94. FINS ;
  95. SI (NV NEG (NL*NC)) ;
  96. ERRE 199 ;
  97. FINS ;
  98.  
  99. * TITRE DU GRAPHIQUE
  100. SI (NON (EXIS TIT)) ;
  101. TIT = ' ' ;
  102. FINS ;
  103.  
  104.  
  105. * =====================
  106. * CREATION DU GRAPHIQUE
  107. * =====================
  108.  
  109. MAIL1 = (0. NL 0.) DROI NC (NC NL 0.) TRAN NL (0. (-1*NL) 0.) ;
  110. MAIL2 = MAIL1 ELEM 1 ;
  111. MAIL2 = CHAN 'POI1' (HOMO MAIL2 0.9 (BARY MAIL2)) ;
  112. MAIL2 = MANU 'TRI3' (MAIL2 POIN 1) (MAIL2 POIN 4) (BARY MAIL2) ;
  113. MACU8 MAQU4 = VIDE 'MAILLAGE'/'CUB8' 'MAILLAGE'/'QUA4' ;
  114. LVCU8 LVQU4 = VIDE 'LISTREEL'*2 ;
  115. REPE K NV ;
  116. VV = EXTR LV &K ;
  117. SS = SIGN VV ;
  118. VA = ABS VV ;
  119. EL = MAIL1 ELEM &K ;
  120. SI KCLOG ;
  121. VC = (LOG VA) / (LOG 10.) ;
  122. SINON ;
  123. VC = VV ;
  124. FINS ;
  125. SI (VA > SMALL) ;
  126. SI KZLOG ;
  127. VA = ((LOG VA) / (LOG 10.)) - SMLOG ;
  128. SINON ;
  129. VA = VA / SMALL ;
  130. FINS ;
  131. MACU8 = MACU8 ET (EL VOLU 'TRAN' 1 (0. 0. (SS*VA))) ;
  132. LVCU8 = LVCU8 ET VC ;
  133. SI (&K EGA 1) ;
  134. MAIL2 = MAIL2 ET (MAIL2 PLUS (0. 0. (SS*VA))) ;
  135. VMA2 = VC ;
  136. FINS ;
  137. SINON ;
  138. MAQU4 = MAQU4 ET EL ;
  139. LVQU4 = LVQU4 ET VC ;
  140. SI (&K EGA 1) ;
  141. VMA2 = VC ;
  142. FINS ;
  143. FINS ;
  144. FIN K ;
  145. ELIM MACU8 SMALL ;
  146.  
  147. * AFFICHAGE DES DONNEES
  148. $MACU8 = MODE MACU8 'THERMIQUE' 'ISOTROPE' ;
  149. $MAQU4 = MODE MAQU4 'THERMIQUE' 'ISOTROPE' ;
  150.  
  151. CHCU8 = MANU 'CHML' $MACU8 'REPA' MCOMP LVCU8 'GRAVITE' ;
  152. CHQU4 = MANU 'CHML' $MAQU4 'REPA' MCOMP LVQU4 'GRAVITE' ;
  153.  
  154. $MAIL = $MACU8 ET $MAQU4 ;
  155. CHML2 = CHCU8 ET CHQU4 ;
  156.  
  157. SI TR ;
  158. $MAIL2 = MODE MAIL2 'THERMIQUE' 'ISOTROPE' ;
  159. LVMA2 = PROG (NBEL MAIL2)*VMA2 ;
  160. CHMA2 = MANU 'CHML' $MAIL2 'REPA' MCOMP LVMA2 'GRAVITE' ;
  161.  
  162. $MAIL = $MAIL ET $MAIL2 ;
  163. CHML2 = CHML2 ET CHMA2 ;
  164. FINS ;
  165.  
  166. TRAC $MAIL CHML2 (1.E6 -1.2E6 0.9E6) 'TITR' TIT ;
  167.  
  168. * RETABLISSEMENT DES OPTIONS D'ORIGINE
  169. SI (NEG ELTY1 ' ') ;
  170. OPTI 'ELEM' ELTY1 ;
  171. FINS ;
  172. OPTI 'DIME' NDIM1 'ECHO' ECHO1 ;
  173.  
  174. FINP ;
  175.  
  176.  
  177.  

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