Télécharger cinemb.procedur

Retour à la liste

Numérotation des lignes :

  1. * CINEMB PROCEDUR PYROS1 96/01/03 21:16:05 1968
  2. 'DEBPROC' CINEMB MESH0*'MAILLAGE' MESH1*'MAILLAGE' MESH2*'MAILLAGE'
  3. MESH3*'MAILLAGE';
  4. *********************************************************************
  5. * INPUT:
  6. * MESH0=MESH TO BE PLOTTED
  7. * MESH1=MESH OF POI1 INDICATING THE SUCESSIVE POSITION OF THE POINT
  8. * OF VIEW OF THE OBSERVER
  9. * MESH2=MESH OF POI1 INDICATING THE SUCCESSIVE DIRECTION POINTED BY
  10. * THE EYES OF THE OBSERVER
  11. * MESH3=MESH OF POI1 INDICATING THE SUCCESSIVE DIRECTION OF THE AXE
  12. * OF THE HEAD OF THE OBSERVER
  13. * OUTPUT:
  14. * DEFOT=SUCCESSIVE DEFORME OF THE MESH REFERENCED TO THE FIRST POSITION
  15. * OF THE OBSERVER
  16. *********************************************************************
  17. * P.PEGON/JRC ISPRA/10.95
  18. *********************************************************************
  19. *
  20. LOK=VRAI;
  21. *
  22. * verification des donnees
  23. *
  24. LMOT1=MESH1 'ELEM' 'TYPE' ;
  25. 'SI' ('NEG' ('DIME' LMOT1) 1);
  26. LOK=FAUX;
  27. 'MESS' 'CINEMA: MESH1 contient plusieurs types d"element';
  28. 'SINON';
  29. 'SI' ('NEG' ('EXTR' LMOT1 1) 'POI1');
  30. LOK=FAUX;
  31. 'MESS' 'CINEMA: MESH1 n"est pas un maillage de POI1';
  32. 'FINSI';
  33. 'FINSI';
  34. *
  35. LMOT2=MESH2 'ELEM' 'TYPE' ;
  36. 'SI' ('NEG' ('DIME' LMOT2) 1);
  37. LOK=FAUX;
  38. 'MESS' 'CINEMA: MESH2 contient plusieurs types d"element';
  39. 'SINON';
  40. 'SI' ('NEG' ('EXTR' LMOT2 1) 'POI1');
  41. LOK=FAUX;
  42. 'MESS' 'CINEMA: MESH2 n"est pas un maillage de POI1';
  43. 'FINSI';
  44. 'FINSI';
  45. *
  46. LMOT3=MESH3 'ELEM' 'TYPE' ;
  47. 'SI' ('NEG' ('DIME' LMOT3) 1);
  48. LOK=FAUX;
  49. 'MESS' 'CINEMA: MESH3 contient plusieurs types d"element';
  50. 'SINON';
  51. 'SI' ('NEG' ('EXTR' LMOT3 1) 'POI1');
  52. LOK=FAUX;
  53. 'MESS' 'CINEMA: MESH3 n"est pas un maillage de POI1';
  54. 'FINSI';
  55. 'FINSI';
  56. *
  57. NBEL1='NBEL' MESH1;
  58. NBEL2='NBEL' MESH2;
  59. NBEL3='NBEL' MESH3;
  60. 'SI' ('NEG' NBEL1 NBEL2);
  61. LOK=FAUX;
  62. 'MESS' 'CINEMA: MESH1 et MESH2 n"ont pas le meme nb d"elements';
  63. 'FINSI';
  64. 'SI' ('NEG' NBEL1 NBEL3);
  65. LOK=FAUX;
  66. 'MESS' 'CINEMA: MESH1 et MESH3 n"ont pas le meme nb d"elements';
  67. 'FINSI';
  68. 'SI' ('EGA' NBEL1 1);
  69. LOK=FAUX;
  70. 'MESS' 'CINEMA: MESH1 ne contient que un element';
  71. 'FINSI';
  72. *
  73. 'SI' LOK;
  74. 'MESS' 'CINEMA: traitement deformee numero' 1 'sur' NBEL1;
  75. O0=0. 0. 0.;
  76. *
  77. * traitement du premier point
  78. *
  79. OEIL1='POINT' ('ELEM' MESH1 1) 1;
  80. DIRE1='POINT' ('ELEM' MESH2 1) 1;
  81. VECT1='POINT' ('ELEM' MESH3 1) 1;
  82. VECT1=VECT1/('NORM' VECT1);
  83. DIRE1=DIRE1 'MOIN' ( (DIRE1 'PSCAL' VECT1) * VECT1 );
  84. DIRE1=DIRE1/('NORM' DIRE1);
  85. UUUU1='MANU' 'CHPO' MESH0 3 'UX' 0 'UY' 0 'UZ' 0;
  86. DEFO1='DEFO' MESH0 UUUU1 1;
  87. DEFOT=DEFO1;
  88. XX1 YY1 ZZ1='COOR' MESH0;
  89. *
  90. * traitement des autres points
  91. *
  92. J=1; 'REPE' LAB1 (NBEL1-1); J=J+1;
  93. 'MESS' 'CINEMA: traitement deformee numero' J 'sur' NBEL1;
  94. *
  95. OEILJ='POINT' ('ELEM' MESH1 J) 1;
  96. DIREJ='POINT' ('ELEM' MESH2 J) 1;
  97. VECTJ='POINT' ('ELEM' MESH3 J) 1;
  98. *
  99. VECTJ=VECTJ/('NORM' VECTJ);
  100. OMEJ0=VECTJ 'PVEC' VECT1;
  101. SINJ0='NORM' OMEJ0;
  102. COSJ0=VECT1 'PSCA' VECTJ;
  103. 'SI' (SINJ0 '>' 1.E-4);
  104. 'SI' (('ABS' COSJ0) '>' 1.E-4);
  105. ANGJ0='ATG' SINJ0 COSJ0;
  106. 'SINON';
  107. ANGJ0=90.;
  108. 'FINSI';
  109. 'SINON';
  110. OMEJ0=VECTJ 'PVECT' DIREJ;
  111. 'SI' (COSJ0 '>' 0.);
  112. ANGJ0=0.;
  113. 'SINON';
  114. ANGJ0=180.;
  115. 'FINSI';
  116. 'FINSI';
  117. *
  118. DIREJ=DIREJ 'MOIN' ( (DIREJ 'PSCAL' VECTJ) * VECTJ );
  119. DIREJ=DIREJ/('NORM' DIREJ);
  120. *
  121. 'SI' ('NEG' ANGJ0 0.);
  122. 'DEPL' DIREJ 'TOUR' ANGJ0 O0 OMEJ0;
  123. 'FINSI';
  124. *
  125. TRAJ1=OEIL1 'MOINS' OEILJ;
  126. XTRAJ1 YTRAJ1 ZTRAJ1='COOR' TRAJ1;
  127. UUUJ1='MANU' 'CHPO' MESH0 3 'UX' XTRAJ1 'UY' YTRAJ1 'UZ' ZTRAJ1;
  128. *
  129. OMEJ1=DIREJ 'PVEC' DIRE1;
  130. SINJ1='NORM' OMEJ1;
  131. *
  132. COSJ1=DIREJ 'PSCA' DIRE1;
  133. 'SI' (SINJ1 '>' 1.E-4);
  134. 'SI' (('ABS' COSJ1) '>' 1.E-4);
  135. ANGJ1='ATG' SINJ1 COSJ1;
  136. 'SINON';
  137. ANGJ1=90.;
  138. 'FINSI';
  139. 'SINON';
  140. OMEJ1=VECT1;
  141. 'SI' (COSJ1 '>' 0.);
  142. ANGJ1=0.;
  143. 'SINON';
  144. ANGJ1=180.;
  145. 'FINSI';
  146. 'FINSI';
  147. * mess 'ANGJ0,ANGJ1' ANGJ0 ANGJ1;
  148. 'SI' ('NEG' ANGJ0 0.);
  149. 'DEPL' MESH0 'TOUR' ANGJ0 OEILJ (OEILJ 'PLUS' OMEJ0);
  150. 'FINSI';
  151. 'SI' ('NEG' ANGJ1 0.);
  152. 'DEPL' MESH0 'TOUR' ANGJ1 OEILJ (OEILJ 'PLUS' OMEJ1);
  153. 'FINSI';
  154. XXJ YYJ ZZJ='COOR' MESH0;
  155. 'SI' ('NEG' ANGJ1 0.);
  156. 'DEPL' MESH0 'TOUR' ((-1)*ANGJ1) OEILJ (OEILJ 'PLUS' OMEJ1);
  157. 'FINSI';
  158. 'SI' ('NEG' ANGJ0 0.);
  159. 'DEPL' MESH0 'TOUR' ((-1)*ANGJ0) OEILJ (OEILJ 'PLUS' OMEJ0);
  160. 'FINSI';
  161.  
  162. UUUJ1=UUUJ1 + ('EXCO' (XXJ-XX1) 'SCAL' 'UX')
  163. + ('EXCO' (YYJ-YY1) 'SCAL' 'UY')
  164. + ('EXCO' (ZZJ-ZZ1) 'SCAL' 'UZ');
  165. DEFJ1='DEFO' MESH0 UUUJ1 1;
  166. DEFOT=DEFOT 'ET' DEFJ1;
  167. *
  168. 'FIN' LAB1;
  169. *
  170. 'SINON';
  171. DEFOT=LOK;
  172. 'FINSI';
  173. *
  174. 'FINPROC' DEFOT;
  175.  
  176.  

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