Télécharger usure.procedur

Retour à la liste

Numérotation des lignes :

  1. * USURE PROCEDUR MB234859 24/02/06 21:15:05 11833
  2. ***********************************************************************
  3. * PROCEDURE USURE
  4. *
  5. * Procedure principale pour les calculs d'usure qui determine :
  6. * - les grandeurs necessaires au calcul de la profondeur usee
  7. * - le profil d'usure a appliquer et deplace les maillages des
  8. * surface susees (AppUsure = VRAI).
  9. *
  10. * Entrees :
  11. * T1 : Table de PASAPAS
  12. *
  13. * Sortie :
  14. * T1 : Table de PASAPAS avec les resultats propres a l'usure
  15. *
  16. * A Appeler dans PERSO1
  17. *
  18. ************************************************************************
  19. 'DEBP' USURE T1*'TABLE' ;
  20. *
  21. BOITE_US = T1.'BOITES_USURE' ;
  22. *-----------------------------------------------------------------------
  23. * - PREMIER APPEL - INITIALISATIONS TABLE ET PAS DE TEMPS
  24. *-----------------------------------------------------------------------
  25. 'SI' ('EGA' T1.'PERSO1_APPEL' 1) ;
  26. USINIB T1 ;
  27. 'SI' BOITE_US.'INFOS'.'CALCUL_PAS' ;
  28. USTMPS T1 ;
  29. 'FINSI' ;
  30. 'FINSI' ;
  31. *-----------------------------------------------------------------------
  32. * - DOIT-ON CALCULER OU APPLIQUER L'USURE
  33. *-----------------------------------------------------------------------
  34. T_inc = T1.'ESTIMATION'.'TEMPS' ;
  35. 'SI' ('<EG' (T_inc '-' BOITE_US.'DONNEES'.'T_DEBUT_USURE') 1.E-15) ;
  36. 'QUIT' USURE ;
  37. 'FINSI' ;
  38. *
  39. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  40. IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ;
  41. NbIncCy = BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' ;
  42. *
  43. IndPas = T1.'WTABLE'.'NSOR' ;
  44. 'SI' (('EGA' CycActu 1) 'ET' ('EGA' IncActu 1)) ;
  45. BOITE_US.'POST'.'INDICES_CYCLE'. CycActu = 'LECT' IndPas ;
  46. 'FINSI' ;
  47. *
  48. AppUsure = 'EGA' IncActu NbIncCy ;
  49. *
  50. * Affichage (sous forme d'entier)
  51. NCycle = BOITE_US.'DONNEES'.'NB_CYCLES' ;
  52. NCycRe = BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' ;
  53. 'MESS' ' ' ;
  54. 'MESS' 'Cycles a calculer :' ' 'NCycle' / Cycles restants :' ' 'NCycRe;
  55. 'MESS' ' -> Increment' ' 'IncActu' sur' ' 'NbIncCy ;
  56. *-----------------------------------------------------------------------
  57. * - GLISSEMENT, CISAILLEMENT, PRESSION DE CONTACT ET ENERGIE DISSIPEE
  58. *-----------------------------------------------------------------------
  59. USCALC T1 ;
  60. *-----------------------------------------------------------------------
  61. * - APPLICATION DU PROFIL D'USURE
  62. *-----------------------------------------------------------------------
  63. 'SI' AppUsure ;
  64. * --------------------------------------------------------------------
  65. * Schema (explicite/implicite) pour appliquer le profil d'usure
  66. 'SI' BOITE_US.'INFOS'.'SCH_EXPL';
  67. USEXPL T1 ;
  68. 'SINON' ;
  69. USIMPL T1 ;
  70. 'FINSI' ;
  71. * --------------------------------------------------------------------
  72. * Reste-t-il des cycles a calculer (Booleen pour quitter PASAPAS)
  73. T1.'ARRET' = 'EGA' BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' 0 ;
  74. * --------------------------------------------------------------------
  75. * Construire et actualiser (eventuellement) les pas de temps
  76. 'SI' BOITE_US.'INFOS'.'CALCUL_PAS' ;
  77. USTMPS T1 ;
  78. ISAUV = VRAI ;
  79. 'SINON' ;
  80. ISAUV = 'DANS' T1.'WTABLE'.'IPRESU' T1.'WTABLE'.'TEMPS0' ;
  81. 'FINSI' ;
  82. * --------------------------------------------------------------------
  83. 'SI' ISAUV ;
  84. * NSOR+1 car la sauvegarde s'effectue apres (on anticipe le numero)
  85. IProc = IndPas + 1 ;
  86. BOITE_US.'POST'.'INDICES_CYCLE'. CycActu =
  87. BOITE_US.'POST'.'INDICES_CYCLE'. CycActu 'ET' IProc ;
  88. 'FINSI' ;
  89. * --------------------------------------------------------------------
  90. * Actualiser les compteurs/faire le menage
  91. 'SI' ('NON' T1.'ARRET') ;
  92. * Actualiser les compteurs
  93. BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = 1;
  94. 'SI' (BOITE_US.'INFOS'.'SCH_EXPL' 'OU' BOITE_US.'INFOS'.'SCH_CONV') ;
  95. CycSuiv = CycActu '+' 1 ;
  96. BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' = CycSuiv ;
  97. BOITE_US.'INFOS'.'SCH_CONV' = FAUX ;
  98. * Le dernier instant de CycActu est le premier instant de CycSuiv
  99. 'SI' ISAUV ;
  100. BOITE_US.'POST'.'INDICES_CYCLE'. CycSuiv = 'LECT' IProc;
  101. 'FINSI' ;
  102. 'FINSI' ;
  103. 'SINON' ;
  104. * Menage de fin de calcul - Suppression d'indices
  105. 'REPE' BU BOITE_US.'INFOS'.'N_BOITES' ;
  106. 'OTER' (BOITE_US. &BU) 'GLISSEMENT' ;
  107. 'OTER' (BOITE_US. &BU) 'CISAILLEMENT' ;
  108. 'OTER' (BOITE_US. &BU) 'PRESSION_CONTACT' ;
  109. 'OTER' (BOITE_US. &BU) 'DENS_ENER_DISS_CYCLE' ;
  110. 'OTER' (BOITE_US. &BU) 'DELTAS' ;
  111. 'OTER' (BOITE_US. &BU) 'FORCES_TANGENTIELLES' ;
  112. 'OTER' (BOITE_US. &BU) 'MAIL_PSIP' ;
  113. 'FIN' BU;
  114. 'MESS'; 'MESS' '=====> FIN DE CALCUL DES' ' 'NCycle' CYCLES.';
  115. 'FINSI' ;
  116. * --------------------------------------------------------------------
  117. * Affichage du temps de calcul
  118. RunTimeE = 'TEMPS' 'HORL' ; 'TEMP' 'ZERO' ;
  119. CyclTime = 'FLOT' RunTimeE '/' 1000. ;
  120. 'SI' ('EXIS' T1 'RUN_TIME') ;
  121. DILRT = 'DIME' T1.'RUN_TIME' ;
  122. RunTimeP = 'EXTR' T1.'RUN_TIME' DILRT ;
  123. RunTimeF = RunTimeP '+' CyclTime ;
  124. T1.'RUN_TIME' = T1.'RUN_TIME' 'ET' RunTimeF ;
  125. T1.'CYCLE_TIME' = T1.'CYCLE_TIME' 'ET' CyclTime;
  126. 'SINON' ;
  127. RunTimeF = CyclTime ;
  128. T1.'RUN_TIME' = 'PROG' RunTimeF ;
  129. T1.'CYCLE_TIME' = 'PROG' CyclTime ;
  130. 'FINSI' ;
  131. HH = 'ENTI' 'INFE' (CyclTime '/' 3600.) ; HC = HH '*' 3600. ;
  132. MM = 'ENTI' 'INFE' ((CyclTime '-' HC) '/' 60) ; MC = MM '*' 60. ;
  133. SS = 'ENTI' 'PROC' (CyclTime '-' HC '-' MC) ;
  134. CHA1 = 'CHAI' HH' h' ' 'MM' min' ' 'SS's.' ;
  135. HH = 'ENTI' 'INFE' (RunTimeF '/' 3600.) ; HC = HH '*' 3600. ;
  136. MM = 'ENTI' 'INFE' ((RunTimeF '-' HC) '/' 60) ; MC = MM '*' 60. ;
  137. SS = 'ENTI' 'PROC' (RunTimeF '-' HC '-' MC) ;
  138. CHA2 = 'CHAI' HH' h' ' 'MM' min' ' 'SS's.' ;
  139. MESS ' ' ; MESS ' - Cycle Time =' ' 'CHA1;
  140. MESS ' ' ; MESS ' - Total Time =' ' 'CHA2;
  141. 'SINON' ;
  142. BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = IncActu '+' 1 ;
  143. 'FINSI' ;
  144. *-----------------------------------------------------------------------
  145. 'FINP' T1;
  146.  
  147.  

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