Download cinema.procedur

Back to the list

   1 : * CINEMA    PROCEDUR  PYROS1    96/01/03    21:16:00     1968           
   2 : 'DEBPROC' CINEMA MESH0*'MAILLAGE' MESH1*'MAILLAGE' MESH2*'MAILLAGE'
   3 :                                   VECT1*'POINT';
   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 : *  VECT1=DIRECTION DEFINING THE (FIXED) VERTICAL AXE OF THE HEAD OF THE
  12 : *        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/05.95
  18 : *********************************************************************
  19 : *
  20 : VECT1=VECT1/('NORM' VECT1);
  21 : *
  22 : LOK=VRAI;
  23 : *
  24 : * verification des donnees
  25 : *
  26 : LMOT1=MESH1 'ELEM' 'TYPE' ;
  27 : 'SI' ('NEG' ('DIME' LMOT1) 1);
  28 :   LOK=FAUX;
  29 :   'MESS' 'CINEMA: MESH1 contient plusieurs types d"element';
  30 : 'SINON';
  31 :   'SI' ('NEG' ('EXTR' LMOT1 1) 'POI1');
  32 :     LOK=FAUX;
  33 :     'MESS' 'CINEMA: MESH1 n"est pas un maillage de POI1';
  34 :   'FINSI';
  35 : 'FINSI';
  36 : *
  37 : LMOT2=MESH2 'ELEM' 'TYPE' ;
  38 : 'SI' ('NEG' ('DIME' LMOT2) 1);
  39 :   LOK=FAUX;
  40 :   'MESS' 'CINEMA: MESH2 contient plusieurs types d"element';
  41 : 'SINON';
  42 :   'SI' ('NEG' ('EXTR' LMOT2 1) 'POI1');
  43 :     LOK=FAUX;
  44 :     'MESS' 'CINEMA: MESH2 n"est pas un maillage de POI1';
  45 :   'FINSI';
  46 : 'FINSI';
  47 : *
  48 : NBEL1='NBEL' MESH1;
  49 : NBEL2='NBEL' MESH2;
  50 : 'SI' ('NEG' NBEL1 NBEL2);
  51 :   LOK=FAUX;
  52 :   'MESS' 'CINEMA: MESH1 et MESH2 n"ont pas le meme nb d"elements';
  53 : 'FINSI';
  54 : 'SI' ('EGA' NBEL1 1);
  55 :   LOK=FAUX;
  56 :   'MESS' 'CINEMA: MESH1 ne contient que un element';
  57 : 'FINSI';
  58 : *
  59 : 'SI' LOK;
  60 :   'MESS' 'CINEMA: traitement deformee numero' 1 'sur' NBEL1;
  61 : *
  62 : * traitement du premier point
  63 : *
  64 :   OEIL1='POINT' ('ELEM' MESH1 1) 1;
  65 :   DIRE1='POINT' ('ELEM' MESH2 1) 1;
  66 :   DIRE1=DIRE1 'MOIN' ( (DIRE1 'PSCAL' VECT1) * VECT1 );
  67 :   DIRE1=DIRE1/('NORM' DIRE1);
  68 :   UUUU1='MANU' 'CHPO' MESH0 3 'UX' 0 'UY' 0 'UZ' 0;
  69 :   DEFO1='DEFO' MESH0 UUUU1 1;
  70 :   DEFOT=DEFO1;
  71 :   XX1 YY1 ZZ1='COOR' MESH0;
  72 : *
  73 : * traitement des autres points
  74 : *
  75 :   J=1; 'REPE' LAB1 (NBEL1-1); J=J+1;
  76 :     'MESS' 'CINEMA: traitement deformee numero' J 'sur' NBEL1;
  77 : *
  78 :     OEILJ='POINT' ('ELEM' MESH1 J) 1;
  79 :     DIREJ='POINT' ('ELEM' MESH2 J) 1;
  80 :     DIREJ=DIREJ 'MOIN' ( (DIREJ 'PSCAL' VECT1) * VECT1 );
  81 :     DIREJ=DIREJ/('NORM' DIREJ);
  82 : *
  83 :     TRAJ1=OEIL1 'MOINS' OEILJ;
  84 :     XTRAJ1 YTRAJ1 ZTRAJ1='COOR' TRAJ1;
  85 :     UUUJ1='MANU' 'CHPO' MESH0 3 'UX' XTRAJ1 'UY' YTRAJ1 'UZ' ZTRAJ1;
  86 : *
  87 :     OMEJ1=DIREJ 'PVEC' DIRE1;
  88 :     SINJ1='NORM' OMEJ1;
  89 : *
  90 :     COSJ1=DIREJ 'PSCA' DIRE1;
  91 :     'SI' (SINJ1 '>' 1.E-4);
  92 :       'SI' (('ABS' COSJ1) '>' 1.E-4);
  93 :         ANGJ1='ATG' SINJ1 COSJ1;
  94 :       'SINON';
  95 :         ANGJ1=90.;
  96 :       'FINSI';
  97 :     'SINON';
  98 :       OMEJ1=VECT1;
  99 :       'SI' (COSJ1 '>' 0.);
 100 :         ANGJ1=0.;
 101 :       'SINON';
 102 :         ANGJ1=180.;
 103 :       'FINSI';
 104 :     'FINSI';
 105 :     'SI' ('NEG' ANGJ1 0.);
 106 :       'DEPL' MESH0 'TOUR' ANGJ1 OEILJ (OEILJ 'PLUS' OMEJ1);
 107 :       XXJ YYJ ZZJ='COOR' MESH0;
 108 :       'DEPL' MESH0 'TOUR' ((-1)*ANGJ1) OEILJ (OEILJ 'PLUS' OMEJ1);
 109 :       UUUJ1=UUUJ1 + ('EXCO' (XXJ-XX1) 'SCAL' 'UX')
 110 :                   + ('EXCO' (YYJ-YY1) 'SCAL' 'UY')
 111 :                   + ('EXCO' (ZZJ-ZZ1) 'SCAL' 'UZ');
 112 :     'FINSI';
 113 :     DEFJ1='DEFO' MESH0 UUUJ1 1;
 114 :     DEFOT=DEFOT 'ET' DEFJ1;
 115 : *
 116 :   'FIN' LAB1;
 117 : *
 118 : 'SINON';
 119 :   DEFOT=LOK;
 120 : 'FINSI';
 121 : *
 122 : 'FINPROC' DEFOT;
 123 :  

© Cast3M 2003 - All rights reserved.
Disclaimer