Télécharger tracmeca.procedur

Retour à la liste

Numérotation des lignes :

  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.  
  158.  

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