* TRACMECA PROCEDUR AM 96/12/23 22:09:13 2448
coeff/'FLOTTANT';
*
* trace des mecanismes generes pas l'operateur MESM
*
* P.Pegon, Aout 90
*
*
'SI' ('NON' ('EXISTE' coeff));
coeff=1.d0;
'FINSI';
*
'SINON'; lok=vrai; 'FINSI';
dtab1=dtab1-1;
*
'SI' lok;
lok=faux;
'SI' ('EXISTE' tab1 'SOUSTYPE');
'SI' ('EGA' tab1.'SOUSTYPE' 'MECANISMES_PAR_NOEUDS');
lok=vrai;
'FINSI';
'FINSI';
'SI' ('EXISTE' tab2 'SOUSTYPE');
'SI' ('EGA' tab1.'SOUSTYPE' 'MECANISMES_PAR_ELEMENTS');
lok=lok 'ET' vrai;
'FINSI';
'FINSI';
'SINON';
'FINSI';
*
'SI' lok;
chlm1=tab2 . 1;
laxi1=faux;
laxi1=vrai;
'FINSI';
'FINSI';
'OUBLIER' chlm1; 'OUBLIER' comp1;
'SINON';
'FINSI';
*
* cercle unite centre en 0 et champ de contraction/dilatation
*
'SI' lok;
p0=0 0;
p1=1 0; p2=0 1; p3=-1 0; p4=0 -1;
'OUBLIER' xce0; 'OUBLIER' yce0;
*
* etoile unite centree en 0 et champ de contraction/dilatation
*
p5=1 1; p6=-1 1; p7=-1 -1; p8=1 -1;
'OUBLIER' xst0; 'OUBLIER' yst0;
*
* taille mini des elements
*
lemes9m1=-1+(ta0/9);
ta0=ta0/8;
*
* boucle sur les modes
*
tab3='TABLE';
'REPE' labmod dtab1;
*
* objet de type deformee de base
*
chpmo1=coeff*tab1 . &labmod;
*
chmod1=tab2 . &labmod;
*
* loop sur les elements
*
'REPE' labmes nel1;
*
* coordonee des points de l'element deforme et longueur
*
lemes1=(((xel2-xel1)**2)+((yel2-yel1)**2) )**0.5;
tb0=ta0/lemes1; tb1=1.-tb0;
*
* ajout eventuel des cercles et de l'etoile
*
*
'SI' laxi1;
'SI' (('ABS' (up2/maxmo1)) > 1.d-9);
'UY' ((yel1+yel2)/2);
'SI' (up2 '>' 0.);
defmo1=defmo1 'ET'
'SINON';
defmo1=defmo1 'ET'
'FINSI';
'FINSI';
'FINSI';
*
'SI' (('ABS' (rzp1/maxmo1)) > 1.d-9);
'UY' ((tb1*yel1)+(tb0*yel2));
'SI' (rzp1 '>' 0.);
defmo1=defmo1 'ET'
'SINON';
defmo1=defmo1 'ET'
'FINSI';
'FINSI';
*
'SI' (('ABS' (rzp2/maxmo1)) > 1.d-9);
'UY' ((tb1*yel2)+(tb0*yel1));
'SI' (rzp2 '>' 0.);
defmo1=defmo1 'ET'
'SINON';
defmo1=defmo1 'ET'
'FINSI';
'FINSI';
*
'FIN' labmes;
*
'DEPL' 'MOINS' mes1 chpmo1;
tab3 . &labmod=defmo1;
'FIN' labmod;
'FINSI';
'FINPROC' tab3;
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales