* IMAGES PROCEDUR VALETA 95/01/06 21:29:15 1416 *------------------------------------------------- * D'apres une idee originale de l'ISPRA, cette procédure * permet d'obtenir lors d'un calcul pas a pas : * - les deformees a differents instants de calculs * supperposees ou non avec la structure non deformee * - le champ de contraintes sur la deformee a differents * instants de calculs * - le champ de temperatures sur la structure non deformee * dans le cas d'un calcul thermique pur et a differents * instants de calculs. * - le champ de temperatures sur la structure deformee dans * le cas d'un calcul couple thermique/mecanique a differents * instants de calculs . * * Commentaire : * _____________ * * En entrée, TAB1 sert à définir les options et les paramètres du calcul. * Les indices de l'objet TAB1 sont des mots (a écrire en toutes lettres) * dont voici la liste : * * TABLACAST : table sortie de PASAPAS * * MAILLAGE : maillage * * TYPE : type de trace que l'on desire obtenir * = DDEFORMEE pour obtenir le trace des deformees * = DCONTRAINTES pour obtenir le trace du champ de contraintes * sur la deformee * = DTEMPERATURES pour obtenir le trace du champ de temperatures * sur la deformee dans le cas d'un calcul couple thermique/ * mecanique, sur la structure non deformee dans le cas d'un * calcul thermique pur * * LISTEMP : liste des temps a visualiser * * SIGCOMP : pour le trace du champ de contraintes, type de contraintes * que l'on desire visualiser sur la deformee * = SIGVMIS pour visualiser les contraintes de VON MISES * = nom de la composante du champ de contraintes * * DEFO_SUPP : pour le trace des deformees * = VRAI si l'on desire supperposer la deformee avec la structure * non deformee * = FAUX si l'on desire uniquement la deformee * * TITRE : titre du dessin * * OEIL : oeil pour un trace 3D * * COULEUR : couleur de la deformee (rouge par defaut) * * AMPLD : amplitude de la deformee (donnee facultative) * * * * En sortie on obtient un postscript. * * * Remarques : * ___________ * * Pour une presentation plus claire il est preferable de se limiter * a 6 dessins par page. * * * *--------------------------------------------------------------------- coefelim = 0.001; si (existe taba 'MAILLAGE'); objt = taba.'MAILLAGE'; sinon; finsi; moj = taba.'TABLECAST'.'MODELE'; idefo = faux; icont = faux; itemp = faux; ither = faux; ********************************************** * tests sur les données ********************************************** si (existe taba 'OEIL'); oeil = taba.'OEIL'; finsi; si (existe taba 'TABLECAST' 'DEPLACEMENTS'); * calcul thermo-mecanique ither = faux; sinon; * calcul thermique pur ither = vrai; finsi; * ********* determination du coefficient d'amplitude * si ither; ampld = 0; sinon; si (existe taba 'AMPLD'); ampld = taba.'AMPLD'; depmax = table; k = 1; repeter bou1 ngra; tj = taba.'TABLECAST'.'DEPLACEMENTS'; notps = enti notps; uj = tj.notps; depmax.k = ujmax; si (k > 1); si ((depmax.(k - 1)) > depmax.k); edge = (depmax.(k - 1))/(ampld); sinon; edge = (depmax.k)/(ampld); finsi; sinon; edge = (depmax.k)/(ampld); finsi; k = k + 1; fin bou1; sinon; k = 1; tampld = table; depmax = table; dif1 = 1max - 1min; dif2 = 2max - 2min; sinon; dif1 = 1max - 1min; dif2 = 2max - 2min; dif3 = 3max - 3min; finsi; si (dif1 >eg dif2); lmax = dif1; sinon; lmax = dif2; finsi; si (lmax >eg dif3); lmax = lmax; sinon; lmax = dif3; finsi; finsi; repeter bou1 ngra; tj = taba.'TABLECAST'.'DEPLACEMENTS'; notps = enti notps; uj = tj.notps; depmax.k = ujmax; si (ega ujmax 0); tampld.k = 0; sinon; tampld.k = lmax/(10*ujmax); finsi; si (k > 1); si ((tampld.(k - 1)) > tampld.k); ampld = tampld.(k - 1); sinon ; ampld = tampld.k; finsi; si ((depmax.(k - 1)) > depmax.k); edge = (depmax.(k - 1))/(ampld); sinon; edge = (depmax.k)/(ampld); finsi; sinon; ampld = tampld.k; edge = (depmax.k)/(ampld); finsi; k = k + 1; fin bou1; finsi; si (edge < 0.1); EDGE = EDGE * 10; finsi; finsi; si (exist taba 'COULEUR'); color = taba.'COULEUR'; sinon; color = rouge; finsi; idefo = vrai; finsi; icont = vrai; finsi; itemp = vrai; finsi; sinon; finsi; ********************************************** * determination des dimensions maxi * des objets (lx ly lz) ********************************************** lx = 0.0 ;ly = 0.0; lz = 0.0; finsi; *--- cas de la thermique pure si ither; edge = 10; sinon; finsi; lxj = (xjmax - xjmin) * (1.0 + edge); lyj = (yjmax - yjmin) * (1.0 + edge); si (> lxj lx); lx = lxj; finsi; si (> lyj ly); ly = lyj; finsi; lzj = (zjmax - zjmin) * (1.0 + edge); si (> lzj lz); lz = lzj; finsi; finsi; *--- cas de la thermo-mecanique sinon; *--------------------------------------------------- * Boucle 1 sur toutes les deformees pour determiner * les lx ly lz maximum *--------------------------------------------------- j=0; repe loop1 ngra; j=j + 1; tj = taba.'TABLECAST'.'DEPLACEMENTS'; notps = enti notps; uj = tj.notps; sinon; finsi; lxj = (xjmax - xjmin) * (1.0 + edge); lyj = (yjmax - yjmin) * (1.0 + edge); si (> lxj lx); lx = lxj; finsi; si (> lyj ly); ly = lyj; finsi; lzj = (zjmax - zjmin) * (1.0 + edge); si (> lzj lz); lz = lzj; finsi; finsi; fin loop1; finsi; *--- *--- cas 3D ----- * Determination de t1 et t2 vecteurs orthogonaux * unitaires perpendiculaires au plan normal au * vecteur indiquant l'angle de vue n = n / no; si ((ega xn 0.0) et (ega yn 0.0)); si (> zn 0.0); * n=+k, t1=i, t2=j t1=1 0 0; t2=0 1 0; sinon; * n=-k, t1=i, t2=-j t1=1 0 0; t2=0 -1 0; finsi; sinon; * n not along z, * t1=(k x n)/||k x n|| * t2=n x t1 finsi; * stockage des huit faces du cube (lx ly lz) dans une table pp = table 'POINT'; pp.1 = 0 0 0; pp.2 = lx 0 0; pp.3 = lx ly 0; pp.4 = 0 ly 0; pp.5 = 0 0 lz; pp.6 = lx 0 lz; pp.7 = lx ly lz; pp.8 = 0 ly lz; * Situation de ces huit points dans l'espace (t1,t2) et * recherche des coordonnees maximales et minimales * Pour un point P donne sa situation dans le plan t1,t2 est * nu = (p . n) n * ro = p - nu * tau1 = ro . t1 * tau2 = ro . t2 * p1=pp.1; t1min = xp1; t1max = xp1; t2min = yp1; t2max = yp1; j=1; repe loop 7; j = j + 1; pj = pp.j; si (< tau1 t1min); t1min = tau1; finsi; si (< tau2 t2min); t2min = tau2; finsi; si (> tau1 t1max); t1max = tau1; finsi; si (> tau2 t2max); t2max = tau2; finsi; fin loop; * lx=t1max - t1min; ly=t2max - t2min; finsi; *--- fin du cas 3D finsi; *--- fin de la determination du type de calcul ********************************************** * calcul du nombre de lignes et de colonnes ********************************************** cover = lx * ly * ngra; effm = 0.0; * ir = 0; repe loop1 ngra; ir = ir + 1; * ic = 0; repe loop2 ngra; ic = ic + 1; si ( >eg (ir * ic) ngra); quit loop2; finsi; fin loop2; * lxt = ic * lx; lyt = ir * ly; lm = lxt; si ( > lyt lm); lm = lyt; finsi; cadr = lm * lm; effi = cover / cadr; si ( >eg effi effm); nrow = ir; ncol = ic; effm = effi; sinon; quit loop1; finsi; fin loop1; *************************************************** * Boucle 2 (lignes & colonnes) sur tous les objets * afin de les placer (seulement pour les deformees) *************************************************** j=0; jr=0; repe loopr nrow; jr=jr + 1; ty=(1 - jr) * ly; jc=0; repe loopc ncol; jc=jc + 1; j=j + 1; si (> j ngra); quit loopc; finsi; tx=(jc - 1) * lx; *--- cas 3D * * transformation des deplacements tx,ty (dans le repere * t1,t2) en dx,dy,dz (dans le repere global) * * finsi; *--- fin du cas 3D notps = enti notps; si ither; sinon; tj = taba.'TABLECAST'.'DEPLACEMENTS'; uj = tj.notps; finsi; si (idefo et (non ither)); sinon; finsi; si (ega j 1); dd = dj; sinon; dd = dd et dj; finsi; finsi; si (icont et (non ither)); ejj = taba.'TABLECAST'.'CONTRAINTES'; ej = ejj.notps; * determination du type de contraintes a calculer si (existe taba 'SIGCOMP'); si (ega (taba.'SIGCOMP') 'SIGVMIS'); sinon; finsi; sinon; mess 'IL MANQUE LE NOM DE LA CONTRAINTE A TRACER'; finsi; vect1 = (tx ty); elim objt1 objt2 coefelim; elim objt3 objt2 coefelim; sinon; elim objt1 objt2 coefelim; elim objt3 objt2 coefelim; finsi; si (ega j 1); dd = objt1; pp = pj1; sinon; dd = dd et objt1; pp = pp et pj1; finsi; finsi; si itemp; ejj = taba.'TABLECAST'.'TEMPERATURES'; ej = ejj.notps; vect1 = (tx ty); elim objt1 objt2 coefelim; elim objt3 objt2 coefelim; sinon; elim objt1 objt2 coefelim; elim objt3 objt2 coefelim; finsi; si (ega j 1); dd = objt1; pp = pj1; sinon; dd = dd et objt1; pp = pp et pj1; finsi; finsi; fin loopc; fin loopr; * *--- cas du trace de la deformee supperposee avec la * geometrie initiale si idefo; * * Boucle 3 (lignes & colonnes) sur tous les objets * afin de les placer (deformee et geometrie initiale * supperposees) * j=0; jr=0; repe loopr2 nrow; jr = jr + 1; ty = (1 - jr) * ly; jc = 0; repe loopc2 ncol; jc=jc + 1; j=j + 1; si (> j ngra); quit loopc2; finsi; tx=(jc - 1) * lx; finsi; tj = taba.'TABLECAST'.'DEPLACEMENTS'; notps = enti notps; uj = tj.notps; d0 = objt; sinon; finsi; si (ega j 1); sinon; finsi; sinon; sinon; finsi; finsi; fin loopc2; fin loopr2; finsi; *--- fin du cas de supperposition ********************************************** * trace du dessin desire ********************************************** si idefo; titre (taba.'TITRE') 'amplification = ' ampld; si (ega (taba.'DEFO_SUPP') VRAI); trac ddi ; sinon; trac dd ; finsi; sinon; si (ega (taba.'DEFO_SUPP') VRAI); trac cach ddi ; sinon; trac cach dd ; finsi; finsi; finsi; si icont; titre (taba.'TITRE') 'amplification = ' ampld; trac dd pp ; sinon; trac dd pp cach oeil; finsi; finsi; si itemp ; titre (taba.'TITRE') ; trac dd pp ; finsi; FINPROC ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales