1 : * TRAC3D PROCEDUR CHAT 96/03/05 21:15:02 2071 2 : *---------------------------------------------------------------------- 3 : * 4 : * PROCEDURE TRAC3D 5 : * 6 : * 7 : * CONSTRUCTION D UN MAILLAGE 3D DEFORME A PARTIR D UN MAILLAGE 2D 8 : * ET D UN CHAMP DE DEPLACEMENT AXI OU FOURIER 9 : * 10 : *---------------------------------------------------------------------- 11 : * 12 : * ENTREE DANS L'ORDRE 13 : * 14 : * + ZMAIL OBJET MAILLAGE 2D 15 : * + ZCHPU CHPOINT DE DEPLACEMENTS ISSU DU CALCUL AXI OU FOURIER 16 : * + ZAM AMPLIFICATION DES DEPLACEMENTS 17 : * + ZANGL ANGLE DE ROTATION EN DEGRES POUR LA CONSTRUCTION 18 : * DU MAILLAGE 3D 19 : * + ZM NOMBRE DE DECOUPAGES SUR CET ANGLE 20 : * + ZN NUMERO DE L HARMONIQUE ( 0 SI CALCUL AXI) 21 : * + ZXVISU ABSCISSE DE L'OEIL 22 : * + ZYVISU ORDONNEE DE L'OEIL 23 : * + ZZVISU COTE DE L'OEIL 24 : * + ZINTER UTILISATION DE LA ROUTINE EN INTERACTIF OU NON 25 : * 26 : *---------------------------------------------------------------------- 27 : DEBPROC TRAC3D 28 : ZMAIL*MAILLAGE ZCHPU*CHPOINT ZAM*FLOTTANT ZANGL*FLOTTANT ZM*ENTIER 29 : ZN*ENTIER ZXVISU*FLOTTANT ZYVISU*FLOTTANT ZZVISU*FLOTTANT 30 : ZINTER*LOGIQUE; 31 : *----------------------------------------------------------------------- 32 : * 33 : * SAUVEGARDE DU CHAMP DE COORDONNEES AVANT LE PASSAGE EN DIMENSION 34 : * 3 ET AVANT LES DIVERSES ROTATIONS 35 : * 36 : CONF1= FORM; 37 : SI ( NEG ZN 0 ) ; 38 : OPTI MODE FOUR ZN ; 39 : SINON ; 40 : OPTI MODE AXIS ; 41 : FINSI; 42 : CHPUR0=EXCO 'UR' ZCHPU; 43 : CHPUZ0=EXCO 'UZ' ZCHPU; 44 : SI (ZN > 0); 45 : CHPUT0=EXCO 'UT' ZCHPU; 46 : FINSI; 47 : * PASSAGE EN DIMENSION 3 48 : OPTI DIME 3 ELEM QUA4; 49 : ZA0=0. 0. 0.;ZAX=1. 0. 0.;ZAZ=0. 0. 1.; 50 : DEPLA ZMAIL TOUR 90 ZA0 ZAX; 51 : SI(NON (ZN > 0) ) ; 52 : CHPUT0=MANU CHPO ZMAIL 1 'UT' (PROG 0.) NATURE 'DISCRET'; 53 : FINSI; 54 : CHPUR0=NOMC SCAL (CHPUR0 * ZAM) NATURE 'DISCRET'; 55 : CHPUZ0=NOMC SCAL (CHPUZ0 * ZAM) NATURE 'DISCRET'; 56 : CHPUT0=NOMC SCAL (CHPUT0 * ZAM) NATURE 'DISCRET'; 57 : K=0; 58 : TDF3D=TABLE; 59 : DTHETA=ZANGL / ZM; 60 : REPETER DEP3D ZM; 61 : K= K + 1; 62 : THETA= K * (DTHETA); 63 : COSNT= COS ( ZN *THETA ); 64 : SINNT= SIN ( ZN *THETA ); 65 : COST = COS THETA ; 66 : SINT = SIN THETA ; 67 : CHPUXK = COLI CHPUR0 (COSNT*COST) CHPUT0 (SINNT*SINT*-1); 68 : CHPUYK = COLI CHPUR0 (COSNT*SINT) CHPUT0 (SINNT*COST); 69 : CHPUZK = CHPUZ0*COSNT; 70 : CHPUXKK= NOMC 'UX' CHPUXK NATURE 'DISCRET'; 71 : CHPUYKK= NOMC 'UY' CHPUYK NATURE 'DISCRET'; 72 : CHPUZKK= NOMC 'UZ' CHPUZK NATURE 'DISCRET'; 73 : CHPUK = CHPUXKK ET CHPUYKK ET CHPUZKK; 74 : DETR CHPUXKK;DETR CHPUYKK;DETR CHPUZKK; 75 : DEPLA ZMAIL TOUR DTHETA ZA0 ZAZ; 76 : TDF3D.K=ZMAIL PLUS CHPUK; 77 : SI (K EGA 2); 78 : ZDF3D=(TDF3D.1) REGL 1 (TDF3D.2); 79 : FINSI; 80 : SI (K > 2); 81 : ZDF3D=ZDF3D ET ((TDF3D.(K - 1)) REGL 1 (TDF3D.K)); 82 : FINSI; 83 : FIN DEP3D; 84 : * CE TEST PERMET DE COMPLETER L'OBJET 85 : * LORSQUE L'ANGLE EST EGAL A 360 86 : SI ((1-(ZANGL/360)) < 0.005 ); 87 : ZDF3D=ZDF3D ET ((TDF3D.K) REGL 1 (TDF3D.1)); 88 : FINSI; 89 : * BOUCLE PERMETTANT DE VISUALISER SUIVANT DIVERS YEUX 90 : REPETER VISIO; 91 : VISU = ZXVISU ZYVISU ZZVISU; 92 : TRAC CACH ZDF3D VISU; 93 : SI ( ZINTER EGA VRAI ); 94 : MESS ' VOULEZ VOUS FAIRE UNE AUTRE VISUALISATION (VRAI/FAUX)'; 95 : OBTE OUI*LOGIQUE; 96 : SI (OUI EGA VRAI) ; 97 : MESS 'DONNEZ LES CORDONNEES UNE @ UNE'; 98 : OBTE ZXVISU*FLOTTANT; 99 : OBTE ZYVISU*FLOTTANT; 100 : OBTE ZZVISU*FLOTTANT; 101 : SINON; 102 : QUITTER VISIO; 103 : FINSI; 104 : SINON; 105 : QUITTER VISIO; 106 : FINSI; 107 : FIN VISIO; 108 : DETR ZDF3D; 109 : *RETOUR EN DIMENSION 2 ,RESTAURATION DES COORDONNEES INITIALES DE ZMAIL 110 : OPTION DIME 2; 111 : FORM CONF1; 112 : *------------------------------------------------------------ 113 : FINPROC ; 114 :
© Cast3M 2003 - All rights reserved.
Disclaimer