* 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