Télécharger @usinib.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USINIB PROCEDUR MB234859 23/12/21 21:15:04 11815
  2. ***********************************************************************
  3. * PROCEDURE @USINIB
  4. *
  5. * Procedure qui initialise les indices de la table 'BOITES_USURE' ou
  6. * seront stockes les resultats de calcul
  7. *
  8. * Entrees :
  9. * T1 : Table de PASAPAS
  10. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  11. *
  12. * Appelee par @USURE
  13. *
  14. ***********************************************************************
  15. 'DEBP' @USINIB T1*'TABLE' ID_BU*'ENTIER' ;
  16. *
  17. BOITE_US = T1.'BOITES_USURE' ;
  18. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  19. 'SI' ('NON' ('EXIS' (BOITE_US. ID_BU) 'CYCLE_DE_FRETTING')) ;
  20. *
  21. *----------------------------------------------------------------------*
  22. * - INITIALISATIONS DE DEBUT DE CALCUL *
  23. *----------------------------------------------------------------------*
  24. * Informations communes aux boites d'usure
  25. 'SI' ('EGA' ID_BU 1) ;
  26. *
  27. * Verification qu'il y a un nombre pair d'increments a calculer
  28. NbIncCy = 'ENTI' (BOITE_US.'DONNEES'.'INCREMENTS_CYCLE') ;
  29. 'SI' ('NEG' (@MOD NbIncCy 2) 0) ;
  30. 'MESS' 'Nombre d increment par cycle incorrect' ;
  31. 'ERRE' 21 ;
  32. 'FINSI' ;
  33. *
  34. * Compteur cycle, increment par cycle, traces debug
  35. BOITE_US.'INFOS' = 'TABLE' ;
  36. BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' = 1 ;
  37. BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = 1 ;
  38. BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' = NbIncCy ;
  39. BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' =
  40. 'ENTI' (BOITE_US.'DONNEES'.'NB_CYCLES');
  41. BOITE_US.'INFOS'.'TRACE_DEBUG' = FAUX ;
  42. BOITE_US.'INFOS'.'UNSURT' = 1. '/' BOITE_US.'DONNEES'.'PERIODE' ;
  43. *
  44. * Doit-on recalculer les pas de temps
  45. BOITE_US.'INFOS'.'CALCUL_PAS' = VRAI ;
  46. 'SI' ('EXIS' BOITE_US.'DONNEES' 'CALCUL_TEMPS') ;
  47. BOITE_US.'INFOS'.'CALCUL_PAS' = BOITE_US.'DONNEES'.'CALCUL_TEMPS';
  48. 'FINSI' ;
  49. *
  50. * Dimension du calcul effectue
  51. BOITE_US.'INFOS'.'ITRID' = 'EGA' ('VALE' 'DIME') 3 ;
  52. *
  53. * Listes de composantes et de valeurs (pour @USCALC)
  54. MODEME = 'EXTR' T1.'MODELE' 'FORM' 'MECANIQUE' ;
  55. LCOMPF = 'EXTR' MODEME 'FORC' ;
  56. BOITE_US.'INFOS'.'LFORCE' = LCOMPF ;
  57. BOITE_US.'INFOS'.'LDEPLA' = 'EXTR' MODEME 'DEPL' ;
  58. BOITE_US.'INFOS'.'LVALE0' = 'PROG' ('DIME' LCOMPF) * 0. ;
  59. BOITE_US.'INFOS'.'LVALE1' = 'PROG' ('DIME' LCOMPF) * 1. ;
  60. BOITE_US.'INFOS'.'LSCAL' = 'MOTS' ('DIME' LCOMPF) * 'SCAL' ;
  61. *
  62. * Informations sur le chargement en deplacement impose
  63. CGDEPI = 'EXTR' TAB1.'CHARGEMENT' 'DIMP' ;
  64. CHDEPI = 'EXTR' CGDEPI 'CHAM' ;
  65. EVDEPI = 'EXTR' CGDEPI 'EVOL' ;
  66. * --- Instant de debut du chargement
  67. ORDEPI = 'EXTR' EVDEPI 'ORDO' ;
  68. MASQUZ = 'MASQ' ORDEPI 'DIFFERENT' 0. ;
  69. POSIUN = 'POSI' 1. 'DANS' MASQUZ ;
  70. TDEDEP = 'EXTR' ('EXTR' EVDEPI 'ABSC') (POSIUN - 1) ;
  71. BOITE_US.'INFOS'.'T_DEBUT_DEPI' = TDEDEP ;
  72. * --- Valeur max. du chargement
  73. ORDMAX = 'MAXI' ORDEPI ;
  74. FLXVAL = 'EXTR' ('EXTR' CHDEPI 'VALE') 1 ;
  75. BOITE_US.'INFOS'.'DEPLA_IMPOSE' = ORDMAX '*' FLXVAL ;
  76. * --- Composante concernee
  77. MDEP = 'EXTR' CHDEPI 'MAIL' ;
  78. MBLO = 'EXTR' TAB1.'BLOCAGES_MECANIQUES' 'MAIL' ;
  79. ELTR = MBLO 'ELEM' 'CONTENANT' (MDEP 'POIN' 1) ;
  80. RIGD = 'REDU' TAB1.'BLOCAGES_MECANIQUES' ELTR ;
  81. BOITE_US.'INFOS'.'COMP_DEPI' = 'EXTR' ('EXTR' RIGD 'COMP') 2 ;
  82. BOITE_US.'INFOS'.'PTSZ_DEPI' = ('EXTR' RIGD 'MAIL' 'NOMU')
  83. 'POIN' 1 ;
  84. *
  85. * Indices et temps des cycles
  86. BOITE_US.'POST' = 'TABLE' ;
  87. BOITE_US.'POST'.'INDICES_CYCLE' = 'TABLE' ;
  88. BOITE_US.'POST'.'CYCLES_CALCULES' = 'PROG' ;
  89. BOITE_US.'POST'.'CYCLES_REELS' = 'PROG' ;
  90. BOITE_US.'POST'.'FACTEUR_ACCELERATION' = 'LECT' ;
  91. *
  92. * Nom du fichier de sauvegarde
  93. BOITE_US.'INFOS'.'ISAVE' = FAUX ;
  94. 'SI' ('EXIS' BOITE_US.'DONNEES' 'ISAVE') ;
  95. BOITE_US.'INFOS'.'ISAVE' = BOITE_US.'DONNEES'.'ISAVE' ;
  96. 'SI' (BOITE_US.'INFOS'.'ISAVE') ;
  97. NOMFIC = 'CHAI' 'calcul_usure.sauv' ;
  98. 'SI' ('EXIS' BOITE_US.'DONNEES' 'NOM_SVGD') ;
  99. NOMFIC = BOITE_US.'DONNEES'.'NOM_SVGD' ;
  100. 'FINSI' ;
  101. BOITE_US.'INFOS'.'NOM_SVGD' = NOMFIC;
  102. 'FINSI' ;
  103. 'FINSI' ;
  104. *
  105. 'FINSI' ;
  106. *
  107. CZERO = 'MANU' 'CHPO' SUR_APPL 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  108. BOITE_US. ID_BU .'CZERO' = CZERO;
  109. *
  110. * Indices remplis dans @USCALC
  111. BOITE_US. ID_BU .'GLISSEMENT' = 'TABLE' 'ESCLAVE' ;
  112. BOITE_US. ID_BU .'CISAILLEMENT' = 'TABLE' 'ESCLAVE' ;
  113. BOITE_US. ID_BU .'PRESSION_CONTACT' = 'TABLE' 'ESCLAVE' ;
  114. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = 'CHAN' 'COMP' CZERO 'ED';
  115. BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' = 'CHAN' 'COMP' CZERO 'ED';
  116. BOITE_US. ID_BU .'DELTAS' = 'PROG' ;
  117. BOITE_US. ID_BU .'FORCES_TANGENTIELLES' = 'PROG' ;
  118. BOITE_US. ID_BU .'CYCLE_DE_FRETTING' = 'TABLE' ;
  119. BOITE_US. ID_BU .'PRESSION_MAX_INC' = 'PROG' ;
  120. BOITE_US. ID_BU .'CISAILLEMENT_MAX_INC' = 'PROG' ;
  121. *
  122. * Indices remplis dans @USPROF
  123. BOITE_US. ID_BU .'USURE_TOTALE' = CZERO ;
  124. BOITE_US. ID_BU .'EVO_USURE_TOTALE' = 'TABLE' ;
  125. *
  126. * Indices remplis dans @USPOST
  127. BOITE_US. ID_BU .'PRESSION_MAX_CYCLE' = 'PROG' ;
  128. BOITE_US. ID_BU .'CISAILLEMENT_MAX_CYCLE' = 'PROG' ;
  129. BOITE_US. ID_BU .'DELTA_G' = 'PROG' ;
  130. BOITE_US. ID_BU .'DELTA_T' = 'PROG' ;
  131. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' = 'PROG' ;
  132. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' = 'PROG' 0. ;
  133. BOITE_US. ID_BU .'VOLUME_USE_CYCLE' = 'PROG' ;
  134. BOITE_US. ID_BU .'VOLUME_USE_TOTAL' = 'PROG' 0. ;
  135. BOITE_US. ID_BU .'PROF_USEE_MAX_CYCLE' = 'PROG' ;
  136. BOITE_US. ID_BU .'PROF_USEE_MAX_TOTALE' = 'PROG' ;
  137. BOITE_US. ID_BU .'LARGEUR_CONTACT_CYCLE' = 'PROG' ;
  138. BOITE_US. ID_BU .'PRESSION_MOYENNE_CYCLE' = 'TABLE' ;
  139. BOITE_US. ID_BU .'CISAILLEMENT_MOYEN_CYCLE' = 'TABLE' ;
  140. BOITE_US. ID_BU .'GLISSEMENT_CYCLE' = 'TABLE' ;
  141. *
  142. * Creation de maillages utilises dans @USDEPL
  143. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  144. TATMP = 'PART' 'SEPA' ('CONT' SUR_APPL) 'ANGL' 10. ;
  145. MESHZ = TATMP. 1 ;
  146. 'SINON' ;
  147. MESHZ = SUR_APPL 'POIN' 'INIT' ;
  148. 'FINSI' ;
  149. BOITE_US. ID_BU .'MAIL_PSIP' = MESHZ ;
  150. *
  151. * Modele utilise pour les calculs avec INTG
  152. MODINTG = 'MODE' SUR_APPL 'MECANIQUE' 'ELASTIQUE' ;
  153. BOITE_US. ID_BU .'MODINTG' = MODINTG ;
  154. *
  155. * Direction selon laquelle est appliquee l'usure
  156. MODREPA = 'REDU' T1.'MODELE' BOITE_US. ID_BU .'VOLUME_REPARTITION';
  157. CHVNINT = 'PRES' 'MASS' SUR_APPL MODREPA 1. ;
  158. LCOMPF = BOITE_US.'INFOS'.'LFORCE' ;
  159. NORVINT = 'PSCA' CHVNINT CHVNINT LCOMPF LCOMPF ;
  160. NORVINT = NORVINT ** 0.5 ;
  161. CHVNINT = CHVNINT '/' NORVINT ;
  162. CHVNINT = 'CHAN' 'ATTRIBUT' CHVNINT 'NATURE' 'DISCRET' ;
  163. BOITE_US. ID_BU .'VNORM_INTE' = CHVNINT ;
  164. *
  165. * Direction(s) tangentielle(s) pour le cycle d'usure
  166. * VTANGENT n'est pas utilise mais on le conserve pour le moment
  167. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  168. CHPTTMP = 'MANU' 'CHPO' SUR_APPL LCOMPF ('PROG' 0. 0. 1.) ;
  169. CHVTGT1 = 'PVEC' CHVNINT CHPTTMP LCOMPF LCOMPF LCOMPF ;
  170. NORVTG1 = 'PSCA' CHVTGT1 CHVTGT1 LCOMPF LCOMPF ;
  171. NORMAXI = ('MAXI' NORVTG1) ** 0.5 ;
  172. NORMINI = ('MINI' NORVTG1) ** 0.5 ;
  173. 'SI' (('<EG' NORMAXI 1.E-6) 'OU' ('<EG' NORMINI 1.E-6)) ;
  174. CHPTTMP = 'MANU' 'CHPO' SUR_APPL LCOMPF ('PROG' 0. 1. 0.) ;
  175. CHVTGT1 = 'PVEC' CHVNINT CHPTTMP LCOMPF LCOMPF LCOMPF ;
  176. NORVTG1 = 'PSCA' CHVTGT1 CHVTGT1 LCOMPF LCOMPF ;
  177. 'FINSI' ;
  178. NORVTG1 = NORVTG1 ** 0.5 ;
  179. CHVTGT1 = CHVTGT1 '/' NORVTG1 ;
  180. CHVTGT1 = 'CHAN' 'ATTRIBUT' CHVTGT1 'NATURE' 'DISCRET' ;
  181. CHVTGT2 = 'PVEC' CHVNINT CHVTGT1 LCOMPF LCOMPF LCOMPF ;
  182. NORVTG2 = 'PSCA' CHVTGT2 CHVTGT2 LCOMPF LCOMPF ;
  183. NORVTG2 = NORVTG2 ** 0.5 ;
  184. CHVTGT2 = CHVTGT2 '/' NORVTG2 ;
  185. CHVTGT2 = 'CHAN' 'ATTRIBUT' CHVTGT2 'NATURE' 'DISCRET' ;
  186. BOITE_US. ID_BU .'VTANGEN1' = CHVTGT1 ;
  187. BOITE_US. ID_BU .'VTANGEN2' = CHVTGT2 ;
  188. 'SINON' ;
  189. CHTANGT = 'PVEC' CHVNINT LCOMPF LCOMPF ;
  190. BOITE_US. ID_BU .'VTANGENT' = CHTANGT ;
  191. 'FINSI' ;
  192. *
  193. * Direction pour calculer la reaction tangentielle du cycle d'usure
  194. LCOMPU = BOITE_US.'INFOS'.'LDEPLA' ;
  195. POSIND = 'POSI' BOITE_US.'INFOS'.'COMP_DEPI' 'DANS' LCOMPU ;
  196. LVALEU = 'PROG' ('DIME' LCMPF) 0. ;
  197. 'REMP' LVALEU POSIND 1. ;
  198. CHREACT = 'MANU' 'CHPO' SUR_APPL LCOMPF LVALEU ;
  199. BOITE_US. ID_BU .'DIRE_REACTION' = CHREACT ;
  200. *
  201. 'SINON' ;
  202. *
  203. *----------------------------------------------------------------------*
  204. * - REINITIALISATIONS A LA FIN DE CHAQUE CYCLE *
  205. *----------------------------------------------------------------------*
  206. 'SI' (BOITE_US.'INFOS'.'FINCYCLE') ;
  207. BOITE_US. ID_BU .'GLISSEMENT' = 'TABLE' 'ESCLAVE' ;
  208. BOITE_US. ID_BU .'CISAILLEMENT' = 'TABLE' 'ESCLAVE' ;
  209. BOITE_US. ID_BU .'PRESSION_CONTACT' = 'TABLE' 'ESCLAVE' ;
  210. BOITE_US. ID_BU .'PRESSION_MAX_INC' = 'PROG' ;
  211. BOITE_US. ID_BU .'CISAILLEMENT_MAX_INC' = 'PROG' ;
  212. CHPINI = 'CHAN' 'COMP' BOITE_US. ID_BU .'CZERO' 'ED' ;
  213. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = CHPINI ;
  214. 'FINSI' ;
  215. 'FINSI' ;
  216. *
  217. 'FINP' ;
  218.  
  219.  
  220.  
  221.  

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