Télécharger trac3d.procedur

Retour à la liste

Numérotation des lignes :

  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. FORM CONF1;
  111. *------------------------------------------------------------
  112. FINPROC ;
  113.  
  114.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales