Download cinemb.procedur

Back to the list

   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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer