Télécharger tracpart.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRACPART PROCEDUR JC220346 16/11/22 21:39:19 9198
  2. ************************************************************************
  3. * NOM : TRACPART
  4. * DESCRIPTION : Visualisation des partitions d'un maillage telles que
  5. * creees avec l'operateur PART
  6. ************************************************************************
  7. * ENTREES : TAB [TABLE] = TABLE RENVOYEE PAR L'OPERATEUR PART
  8. * MCL1 [MOT] = MOT-CLE VALANT 'TOUT', 'ANIM' OU 'NCLK'
  9. * MCL2 [MOT] = MOT-CLE VALANT 'NCLK'
  10. * ENT1 [ENTIER] = ENTIER ENTRE 1 ET LA DIMENSION DE TAB
  11. * SORTIES : AUCUNE
  12. ************************************************************************
  13. * SYNTAXE :
  14. *
  15. * TRACPART TAB ( | 'TOUT' | ) 'NCLK' ;
  16. * | 'ANIM' |
  17. * | ENTI1 |
  18. *
  19. ************************************************************************
  20. DEBP TRACPART TAB*'TABLE' MCL1/'MOT' ;
  21.  
  22. * CHANGER LA VALEUR DE __ANIM__ DIRECTEMENT DANS LE JEU DE DONNEES
  23. * AVANT D'APPELER TRACPART POUR MODIFIER LA VITESSE DE L'ANIMATION
  24. * ****************************************************************
  25. SI (NON (EGA (TYPE __ANIM__) 'ENTIER')) ;
  26. __ANIM__ = 1000000 ;
  27. FINS ;
  28. __ANIM__ = (ABS __ANIM__) + 1 ;
  29. * ****************************************************************
  30.  
  31. * NOMBRE DE ZONES DANS LA PARTITION
  32. NZ = DIME TAB ;
  33. SI (EXIS TAB 'SOUSTYPE') ;
  34. NZ = NZ - 1 ;
  35. FINS ;
  36. SI (EXIS TAB 'CREATEUR') ;
  37. NZ = NZ - 1 ;
  38. FINS ;
  39. SI (NZ EGA 0) ;
  40. ERRE 215 ;
  41. FINS ;
  42.  
  43. * LECTURE OPTIONNELLE D'UN PREMIER MOT-CLE (OPTION DU MENU OU 'NCLK')
  44. TX = ' ' ;
  45. M = -1 ;
  46. SI (EXIS MCL1) ;
  47. SI ((EGA MCL1 'TOUT') OU (EGA MCL1 'ANIM')) ;
  48. R = MOT MCL1 ;
  49. M = 1 ;
  50. * LECTURE OPTIONNELLE DU SECOND MOT-CLE (FORCEMENT 'NCLK')
  51. ARGU MCL2/'MOT' ;
  52. SI (EXIS MCL2) ;
  53. SI (EGA MCL2 'NCLK') ;
  54. TX = ' NCLK' ;
  55. SINON ;
  56. ERRE 1052 'AVEC' (CHAI MCL1 ' TOUT ANIM NCLK') ;
  57. FINS ;
  58. FINS ;
  59. SINON ; SI (EGA MCL1 'NCLK') ;
  60. TX = ' NCLK' ;
  61. SINON ;
  62. ERRE 1052 'AVEC' (CHAI MCL1 ' TOUT ANIM NCLK') ;
  63. FINS ; FINS ;
  64. FINS ;
  65. TX = TEXT TX ;
  66.  
  67. * LECTURE OPTIONNELLE DU NUMERO DE LA PARTITION A TRACER
  68. SI (M EGA -1) ;
  69. ARGU ENT1/'ENTIER' ;
  70. SI (EXIS ENT1) ;
  71. SI ((ENT1 < 1) OU (ENT1 > NZ)) ;
  72. ERRE 36 'AVEC' ENT1 ;
  73. FINS ;
  74. R = CHAI ENT1 ;
  75. M = 1 ;
  76. FINS ;
  77. FINS ;
  78.  
  79. * ON FORCE UN FOND BLANC (PLUS ESTHETIQUE POUR AFFICHER SIMULTANEMENT
  80. * DES PARTIES EN FILAIRE ET DES PARTIES REMPLIES)
  81. BK = VALE 'COSC' ;
  82. OPTI 'COSC' 'BLAN' ;
  83.  
  84. * LISTE DES COULEURS UTILISEES
  85. LCLR = MOTS 'BLEU' 'ROUG' 'ROSE' 'VERT' 'TURQ' 'JAUN' 'VIOL' 'ORAN'
  86. 'AZUR' 'OCEA' 'CYAN' 'OLIV' 'GRIS' 'POUR' 'BRUN' 'BRIQ'
  87. 'CORA' 'BEIG' 'OR ' 'MARI' 'BOUT' 'LIME' 'LAVA' 'BRON'
  88. 'KAKI' 'PEAU' 'CARA' 'INDI' ;
  89. * LCLR = MOTS 'BLEU' 'ROUG' 'ROSE' 'VERT' 'TURQ' 'JAUN' 'VIOL' 'ORAN'
  90. * 'AZUR' 'OCEA' 'CYAN' 'OLIV' 'GRIS' ;
  91. NCLR = DIME LCLR ;
  92.  
  93. * ASSEMBLAGE DES DIFFERENTES ZONES DE LA PARTITION
  94. MA = VIDE 'MAILLAGE' ;
  95. LB = MOTS (NZ+2)*'TOUT' ;
  96. REMP LB 2 'ANIM' ;
  97. REPE K NZ ;
  98. CO = EXTR LCLR ((@MOD (&K - 1) NCLR) + 1) ;
  99. MA = MA ET (COUL CO (TAB.&K)) ;
  100. REMP LB (&K+2) (CHAI &K) ;
  101. FIN K ;
  102. MA = UNIQ MA ;
  103.  
  104. * CREATION DU MAILLAGE FILAIRE (SI POSSIBLE, SINON ON SE RABATTRA
  105. * SUR UN AFFICHAGE UN PEU MOINS ESTHETIQUE...)
  106. OER = VALE 'ERRE' ;
  107. OPTI 'ERRE' 'CONTINUER' ;
  108. ML = COUL 'NOIR' (CHAN 'LIGN' MA) ;
  109. OPTI 'ERRE' OER ;
  110. SI (NEG (TYPE ML) 'MAILLAGE') ;
  111. ML = COUL 'GRIS' MA ;
  112. FINS ;
  113.  
  114. * BOUCLE SUR L'AFFICHAGE DES PARTITIONS
  115. TIT1 = CHAI 'ENSEMBLE DES ' NZ ' PARTITION(S)' ;
  116. SI (M < 0) ;
  117. TRAC MA 'FACE' TX 'TITR' TIT1 ;
  118. FINS ;
  119. REPE BMENU M ;
  120. SI (M < 0) ;
  121. R = MENU LB ;
  122. FINS ;
  123.  
  124. * Fin de la procedure
  125. SI (EGA R 'Quitter') ;
  126. QUIT BMENU ;
  127.  
  128. * Affichage de toutes les partitions en meme temps
  129. SINON ; SI (EGA R 'TOUT') ;
  130. TRAC MA 'FACE' TX 'TITR' TIT1 ;
  131.  
  132. * Mise en evidence des partitions les unes apres les autres
  133. SINON ; SI (EGA R 'ANIM') ;
  134. REPE K NZ ;
  135. CO = EXTR LCLR ((@MOD (&K - 1) NCLR) + 1) ;
  136. TI = CHAI 'PARTITION ' &K ' SUR ' NZ ;
  137. TRAC (ML ET (COUL CO (TAB.&K))) 'FACE' 'NCLK' 'TITR' TI ;
  138. REPE BLOC1 __ANIM__ ;
  139. * ON NE FAIT RIEN, ON VEUT JUSTE RALENTIR L'ANIMATION !
  140. FIN BLOC1 ;
  141. FIN K ;
  142.  
  143. * Mise en evidence d'une partition specifique
  144. SINON ;
  145. KK = ENTI R ;
  146. CO = EXTR LCLR ((@MOD (KK - 1) NCLR) + 1) ;
  147. TI = CHAI 'PARTITION ' KK ' SUR ' NZ ;
  148. TRAC (ML ET (COUL CO (TAB.KK))) 'FACE' TX 'TITR' TI ;
  149. FINS ; FINS ; FINS ;
  150. FIN BMENU ;
  151.  
  152. * RETABLISSEMENT DE LA COULEUR DU FOND
  153. OPTI 'COSC' BK ;
  154.  
  155. FINP ;
  156.  
  157.  
  158.  
  159.  

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