$$$$ TRAC3D * TRAC3D PROCEDUR CHAT 96/03/05 21:15:02 2071 *---------------------------------------------------------------------- * * PROCEDURE TRAC3D * * * CONSTRUCTION D UN MAILLAGE 3D DEFORME A PARTIR D UN MAILLAGE 2D * ET D UN CHAMP DE DEPLACEMENT AXI OU FOURIER * *---------------------------------------------------------------------- * * ENTREE DANS L'ORDRE * * + ZMAIL OBJET MAILLAGE 2D * + ZCHPU CHPOINT DE DEPLACEMENTS ISSU DU CALCUL AXI OU FOURIER * + ZAM AMPLIFICATION DES DEPLACEMENTS * + ZANGL ANGLE DE ROTATION EN DEGRES POUR LA CONSTRUCTION * DU MAILLAGE 3D * + ZM NOMBRE DE DECOUPAGES SUR CET ANGLE * + ZN NUMERO DE L HARMONIQUE ( 0 SI CALCUL AXI) * + ZXVISU ABSCISSE DE L'OEIL * + ZYVISU ORDONNEE DE L'OEIL * + ZZVISU COTE DE L'OEIL * + ZINTER UTILISATION DE LA ROUTINE EN INTERACTIF OU NON * *---------------------------------------------------------------------- DEBPROC TRAC3D ZMAIL*MAILLAGE ZCHPU*CHPOINT ZAM*FLOTTANT ZANGL*FLOTTANT ZM*ENTIER ZN*ENTIER ZXVISU*FLOTTANT ZYVISU*FLOTTANT ZZVISU*FLOTTANT ZINTER*LOGIQUE; *----------------------------------------------------------------------- * * SAUVEGARDE DU CHAMP DE COORDONNEES AVANT LE PASSAGE EN DIMENSION * 3 ET AVANT LES DIVERSES ROTATIONS * CONF1= FORM; SI ( NEG ZN 0 ) ; OPTI MODE FOUR ZN ; SINON ; OPTI MODE AXIS ; FINSI; CHPUR0=EXCO 'UR' ZCHPU; CHPUZ0=EXCO 'UZ' ZCHPU; SI (ZN > 0); CHPUT0=EXCO 'UT' ZCHPU; FINSI; * PASSAGE EN DIMENSION 3 OPTI DIME 3 ELEM QUA4; ZA0=0. 0. 0.;ZAX=1. 0. 0.;ZAZ=0. 0. 1.; DEPLA ZMAIL TOUR 90 ZA0 ZAX; SI(NON (ZN > 0) ) ; CHPUT0=MANU CHPO ZMAIL 1 'UT' (PROG 0.) NATURE 'DISCRET'; FINSI; CHPUR0=NOMC SCAL (CHPUR0 * ZAM) NATURE 'DISCRET'; CHPUZ0=NOMC SCAL (CHPUZ0 * ZAM) NATURE 'DISCRET'; CHPUT0=NOMC SCAL (CHPUT0 * ZAM) NATURE 'DISCRET'; K=0; TDF3D=TABLE; DTHETA=ZANGL / ZM; REPETER DEP3D ZM; K= K + 1; THETA= K * (DTHETA); COSNT= COS ( ZN *THETA ); SINNT= SIN ( ZN *THETA ); COST = COS THETA ; SINT = SIN THETA ; CHPUXK = COLI CHPUR0 (COSNT*COST) CHPUT0 (SINNT*SINT*-1); CHPUYK = COLI CHPUR0 (COSNT*SINT) CHPUT0 (SINNT*COST); CHPUZK = CHPUZ0*COSNT; CHPUXKK= NOMC 'UX' CHPUXK NATURE 'DISCRET'; CHPUYKK= NOMC 'UY' CHPUYK NATURE 'DISCRET'; CHPUZKK= NOMC 'UZ' CHPUZK NATURE 'DISCRET'; CHPUK = CHPUXKK ET CHPUYKK ET CHPUZKK; DETR CHPUXKK;DETR CHPUYKK;DETR CHPUZKK; DEPLA ZMAIL TOUR DTHETA ZA0 ZAZ; TDF3D.K=ZMAIL PLUS CHPUK; SI (K EGA 2); ZDF3D=(TDF3D.1) REGL 1 (TDF3D.2); FINSI; SI (K > 2); ZDF3D=ZDF3D ET ((TDF3D.(K - 1)) REGL 1 (TDF3D.K)); FINSI; FIN DEP3D; * CE TEST PERMET DE COMPLETER L'OBJET * LORSQUE L'ANGLE EST EGAL A 360 SI ((1-(ZANGL/360)) < 0.005 ); ZDF3D=ZDF3D ET ((TDF3D.K) REGL 1 (TDF3D.1)); FINSI; * BOUCLE PERMETTANT DE VISUALISER SUIVANT DIVERS YEUX REPETER VISIO; VISU = ZXVISU ZYVISU ZZVISU; TRAC CACH ZDF3D VISU; SI ( ZINTER EGA VRAI ); MESS ' VOULEZ VOUS FAIRE UNE AUTRE VISUALISATION (VRAI/FAUX)'; OBTE OUI*LOGIQUE; SI (OUI EGA VRAI) ; MESS 'DONNEZ LES CORDONNEES UNE @ UNE'; OBTE ZXVISU*FLOTTANT; OBTE ZYVISU*FLOTTANT; OBTE ZZVISU*FLOTTANT; SINON; QUITTER VISIO; FINSI; SINON; QUITTER VISIO; FINSI; FIN VISIO; DETR ZDF3D; *RETOUR EN DIMENSION 2 ,RESTAURATION DES COORDONNEES INITIALES DE ZMAIL OPTION DIME 2; FORM CONF1; *------------------------------------------------------------ FINPROC ;