Download tracmeca.procedur

Back to the list

   1 : * TRACMECA  PROCEDUR  AM        96/12/23    22:09:13     2448           
   2 : 'DEBPROC' tracmeca mod1*'MMODEL' tab1*'TABLE' tab2*'TABLE'
   3 :                                               coeff/'FLOTTANT';
   4 : *
   5 : * trace des mecanismes generes pas l'operateur MESM
   6 : *
   7 : * P.Pegon, Aout 90
   8 : *
   9 : *
  10 : 'SI' ('NON' ('EXISTE' coeff));
  11 :   coeff=1.d0;
  12 : 'FINSI';
  13 : *
  14 : dtab1='DIME' tab1;
  15 : 'SI' ('NEG' dtab1 ('DIME' tab2)); lok=faux;
  16 : 'SINON';                          lok=vrai; 'FINSI';
  17 : dtab1=dtab1-1;
  18 : *
  19 : 'SI' lok;
  20 :   lok=faux;
  21 :   'SI' ('EXISTE' tab1 'SOUSTYPE');
  22 :     'SI' ('EGA' tab1.'SOUSTYPE' 'MECANISMES_PAR_NOEUDS');
  23 :       lok=vrai;
  24 :     'FINSI';
  25 :   'FINSI';
  26 :   'SI' ('EXISTE' tab2 'SOUSTYPE');
  27 :     'SI' ('EGA' tab1.'SOUSTYPE' 'MECANISMES_PAR_ELEMENTS');
  28 :       lok=lok 'ET' vrai;
  29 :     'FINSI';
  30 :   'FINSI';
  31 : 'SINON';
  32 :   'MESS' 'TRACMECA: input tables without the same dimension';
  33 : 'FINSI';
  34 : *
  35 : 'SI' lok;
  36 :   chlm1=tab2 . 1;
  37 :   comp1='EXTR' chlm1 'COMP';
  38 :   laxi1=faux;
  39 :   'SI' (('DIME' comp1) > 2);
  40 :     'SI' ('EGA' ('EXTR' comp1 3) 'UP2 ');
  41 :       laxi1=vrai;
  42 :     'FINSI';
  43 :   'FINSI';
  44 :   'OUBLIER' chlm1; 'OUBLIER' comp1;
  45 : 'SINON';
  46 :   'MESS' 'TRACMECA: input table without the right "SOUSTYPE"';
  47 : 'FINSI';
  48 : *
  49 : * cercle unite centre en 0 et champ de contraction/dilatation
  50 : *
  51 : 'SI' lok;
  52 :   p0=0 0;
  53 :   p1=1 0; p2=0 1; p3=-1 0; p4=0 -1;
  54 :   ce0=('CERC' 10 p1 p0 p2) 'ET' ('CERC' 10 p2 p0 p3) 'ET'
  55 :       ('CERC' 10 p3 p0 p4) 'ET' ('CERC' 10 p4 p0 p1);
  56 :   xce0 yce0='COOR' ce0;
  57 :   uce0=('EXCO' xce0 'SCAL' 'UX') 'ET' ('EXCO' yce0 'SCAL' 'UY');
  58 :   'OUBLIER' xce0; 'OUBLIER' yce0;
  59 : *
  60 : * etoile unite centree en 0 et champ de contraction/dilatation
  61 : *
  62 :   p5=1 1; p6=-1 1; p7=-1 -1; p8=1 -1;
  63 :   st0=('DROI' 1 p1 p3) 'ET' ('DROI' 1 p2 p4) 'ET' 
  64 :       ('DROI' 1 p5 p7) 'ET' ('DROI' 1 p6 p8);
  65 :   xst0 yst0='COOR' st0;
  66 :   ust0=('EXCO' xst0 'SCAL' 'UX') 'ET' ('EXCO' yst0 'SCAL' 'UY');
  67 :   'OUBLIER' xst0; 'OUBLIER' yst0;
  68 : *
  69 : * taille mini des elements
  70 : *
  71 :   ta0='MANU' 'CHML' mod1 'LONG' 1. 'TYPE' 'CARACTERISTIQUES' 'RIGIDITE';
  72 :   ta0='INTG' 'ELEM' mod1 ta0;
  73 :   ta0='MINI' ta0;
  74 :   lemes9m1=-1+(ta0/9);
  75 :   ta0=ta0/8;
  76 : *
  77 : * boucle sur les modes
  78 : *
  79 :   tab3='TABLE';
  80 :   mes1='EXTR' mod1 'MAIL'; nel1='NBEL' mes1;
  81 :   mmes1=mes1 'ET' (('CHAN' mes1 'POI1') 'COUL' 'JAUN');
  82 :   'REPE' labmod dtab1;
  83 : *
  84 : * objet de type deformee de base
  85 : *
  86 :     chpmo1=coeff*tab1 . &labmod;
  87 :     defmo1='DEFO' mmes1 chpmo1 1.;
  88 :     'DEPL' 'PLUS' mes1 chpmo1;
  89 : *
  90 :     chmod1=tab2 . &labmod;
  91 :     maxmo1='MAXI' chmod1 'ABS';
  92 : *
  93 : * loop sur les elements
  94 : *
  95 :     'REPE' labmes nel1;
  96 : *
  97 : *   coordonee des points de l'element deforme et longueur
  98 : *
  99 :       elmes1='ELEM' mes1 &labmes;
 100 :       xel1 yel1='COOR' (elmes1 'POINT' 1);
 101 :       xel2 yel2='COOR' (elmes1 'POINT' 2);
 102 :       lemes1=(((xel2-xel1)**2)+((yel2-yel1)**2) )**0.5;
 103 :       tb0=ta0/lemes1; tb1=1.-tb0;
 104 : *
 105 : *   ajout eventuel des cercles et de l'etoile
 106 : *
 107 :       chelm1='REDU' chmod1 elmes1;
 108 : *
 109 :       'SI' laxi1;
 110 :         up2 ='EXTR' chelm1 1 1 1 'UP2 ';
 111 :         'SI' (('ABS' (up2/maxmo1)) > 1.d-9);
 112 :           tst0='MANU' chpo st0 2 'UX' ((xel1+xel2)/2) 
 113 :                                  'UY' ((yel1+yel2)/2);
 114 :           'SI' (up2 '>' 0.);
 115 :             defmo1=defmo1 'ET' 
 116 :                   ('DEFO' st0 (tst0+(lemes9m1*ust0)) 1 'TURQ');
 117 :           'SINON';
 118 :             defmo1=defmo1 'ET'
 119 :                   ('DEFO' st0 (tst0+(lemes9m1*ust0)) 1 'BLEU');
 120 :           'FINSI';
 121 :         'FINSI';
 122 :       'FINSI';
 123 : *
 124 :       rzp1='EXTR' chelm1 1 1 1 'RZP1';
 125 :       'SI' (('ABS' (rzp1/maxmo1)) > 1.d-9);
 126 :         tce0='MANU' chpo ce0 2 'UX' ((tb1*xel1)+(tb0*xel2))
 127 :                                'UY' ((tb1*yel1)+(tb0*yel2));
 128 :         'SI' (rzp1 '>' 0.);
 129 :           defmo1=defmo1 'ET'
 130 :                 ('DEFO' ce0 (tce0+(lemes9m1*uce0)) 1 'ROUG');
 131 :         'SINON';
 132 :           defmo1=defmo1 'ET'
 133 :                 ('DEFO' ce0 (tce0+(lemes9m1*uce0)) 1 'ROSE');
 134 :         'FINSI';
 135 :       'FINSI';
 136 : *
 137 :       rzp2='EXTR' chelm1 1 1 1 'RZP2';
 138 :       'SI' (('ABS' (rzp2/maxmo1)) > 1.d-9);
 139 :         tce0='MANU' chpo ce0 2 'UX' ((tb1*xel2)+(tb0*xel1))
 140 :                                'UY' ((tb1*yel2)+(tb0*yel1));
 141 :         'SI' (rzp2 '>' 0.);
 142 :           defmo1=defmo1 'ET'
 143 :                 ('DEFO' ce0 (tce0+(lemes9m1*uce0)) 1 'ROUG');
 144 :         'SINON';
 145 :           defmo1=defmo1 'ET'
 146 :                 ('DEFO' ce0 (tce0+(lemes9m1*uce0)) 1 'ROSE');
 147 :         'FINSI';
 148 :       'FINSI';
 149 : *
 150 :     'FIN' labmes;
 151 : *
 152 :     'DEPL' 'MOINS' mes1 chpmo1;
 153 :     tab3 . &labmod=defmo1;
 154 :   'FIN' labmod;
 155 : 'FINSI';
 156 : 'FINPROC' tab3;
 157 :  

© Cast3M 2003 - All rights reserved.
Disclaimer