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