Download @chflec.procedur

Back to the list

   1 : * @CHFLEC   PROCEDUR  AM        95/05/02    21:15:10     1649           
   2 : DEBPROC @CHFLEC ECH1*'FLOTTANT'
   3 :                CHPO1*'CHPOINT'  ARG1/'MOT' TAIL1/'FLOTTANT'; 
   4 : * [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
   5 : *     D. DUREISSEIX       L.M.T. STRUCTURES & C.M.A.O.       le 15/03/93
   6 : *       ajout taille optionnelle et echelle le 28/08/93
   7 : *
   8 : * Procedure pour construire un CHamp de FLEChes
   9 : *
  10 : * on envoie
  11 : *         ECH1   FLOTTANT echelle pour le trace des efforts
  12 : *         CHPO1  CHPOINT  champ par point a representer
  13 : *        /ARG1   MOT      si egal a 'G   ' seul le cote gauche est trace
  14 : *                                   'D   ' seul le cote droit est trace
  15 : *        /TAIL1  FLOTTANT taille des tetes de fleche
  16 : *                         si non precise : 1/5 de la valeur maxi
  17 : * on recupere
  18 : *         PTF1   MAILLAGE definissant les fleches
  19 : * ======================================================================
  20 :   CHPO1 = ECH1 * CHPO1;
  21 :   'SI' ('NON' ('EXISTE' TAIL1));
  22 :     TAIL1 = ('MAXI' CHPO1 'ABS') / 5.;
  23 :   'FINSI';
  24 :   'SI' ('NON' ('EXISTE' ARG1));
  25 :     ARG1 = 'RIEN';
  26 :   'FINSI';
  27 :   MAIL1 = 'EXTR' CHPO1 'MAIL';
  28 :   NMAIL1 = 'CHAN' 'POI1' MAIL1;
  29 :   NBNO1 = 'NBNO' NMAIL1;
  30 :   LSC1 = 'EXTR' CHPO1 'COMP';
  31 :   NBC1 = 'DIMENSION' LSC1;
  32 :   'SI' (NBC1 'NEG' 2); 
  33 :     'ERREUR' 'DDCAL_FLEC : PAS LES BONNES COMPOSANTES';
  34 :   'FINSI';
  35 :   'OUBLIE' PTF1;
  36 :   N1 = 0;
  37 :   'REPETE' BLO1 NBNO1;
  38 :     N1 = N1 + 1;
  39 :     P1 = NMAIL1 'POINT' N1;
  40 :     CHX1 = 'EXTR' CHPO1 ('EXTR' LSC1 1) P1;
  41 :     CHY1 = 'EXTR' CHPO1 ('EXTR' LSC1 2) P1;
  42 :     'SI' (('EGA' ('EXTR' LSC1 1) 'UY  ') 'OU'
  43 :           ('EGA' ('EXTR' LSC1 1) 'FY  '));
  44 :       CH2 = CHY1; CHY1 = CHX1; CHX1 = CH2;
  45 :     'FINSI';
  46 :     VECT1 = CHX1 CHY1; VEC1 = VECT1 / ('NORME' VECT1);
  47 :     VEC2 = (-1. * ('COOR' 2 VEC1)) ('COOR' 1 VEC1);
  48 : * pointe
  49 :     'SI' ('EGA' ARG1 'G  ');
  50 :       P2 = (P1 'MOINS' (TAIL1 * VEC1))
  51 :                'MOINS' (0. * VEC2);
  52 :     'SINON';
  53 :       P2 = (P1 'MOINS' (TAIL1 * VEC1))
  54 :                'MOINS' ((TAIL1 * 0.25) * VEC2);
  55 :     'FINSI';
  56 :     'SI' ('EGA' ARG1 'D  ');
  57 :       P3 = (P1 'MOINS' (TAIL1 * VEC1))
  58 :                'PLUS'  (0 * VEC2);
  59 :     'SINON';
  60 :       P3 = (P1 'MOINS' (TAIL1 * VEC1))
  61 :                'PLUS'  ((TAIL1 * 0.25) * VEC2);
  62 :     'FINSI';
  63 :     FLECH1 = 'MANU' 'TRI3' P1 P2 P3;
  64 : * corps
  65 :     P4 = (P1 'MOINS' (TAIL1 * VEC1));
  66 :     P5 = (P4 'MOINS' VECT1) 'PLUS' (TAIL1 * VEC1);
  67 :     'SI' ('EXISTE' PTF1);
  68 :       PTF1 = PTF1 'ET' (FLECH1 'ET' ('MANU' 'SEG2' P4 P5));
  69 :     'SINON';
  70 :       PTF1 = (FLECH1 'ET' ('MANU' 'SEG2' P4 P5));
  71 :     'FINSI';
  72 :   'FIN' BLO1;
  73 : *
  74 : 'FINPROC' PTF1;

© Cast3M 2003 - All rights reserved.
Disclaimer